using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /* 游戏规则界面 */ public class GameRuleView : MonoBehaviour { public int[] rule1; public int[] rule2; int ruleLookIndex = 0; static bool createLock = false; float _lastShootTime = 0; public static void Create() { if (createLock || GameMgr.gameType == 0) return; createLock = true; GameObject.Instantiate(Resources.Load("Prefabs/Views/GameRuleView")); } void Start() { if (GlobalData.pkMatchType != PKMatchType.OnlinePK) { GameMgr.ins.addLockerForGamePause(this); } this.Click(); } void OnDestroy() { createLock = false; if (GlobalData.pkMatchType != PKMatchType.OnlinePK) { if (GameMgr.ins) GameMgr.ins.removeLockerForGamePause(this); } } public void Click() { if (Time.time == 0) return; if (Time.realtimeSinceStartup - _lastShootTime < 1) return; _lastShootTime = Time.realtimeSinceStartup; int[] rule = null; if (GameMgr.gameType == 1) { rule = rule1; } else if (GameMgr.gameType == 2 || GameMgr.gameType == 9) { rule = rule2; } Debug.Log("rule[ruleLookIndex]: = " +ruleLookIndex); if (ruleLookIndex >= rule.Length) { Destroy(this.gameObject); GameMgr.ins.FinishGameRuleGuide(); Debug.Log("rule[ruleLookIndex] end: = " + ruleLookIndex); } else { this.transform.Find("BG/Panel/Content").GetComponent().SetText(rule[ruleLookIndex]); ruleLookIndex++; //重置一下bg raycast target,不然Mouse Confirm检测不到下一步按钮 StartCoroutine(switchBgRaycastTarget()); } } IEnumerator switchBgRaycastTarget() { this.transform.Find("BG").GetComponent().raycastTarget = false; yield return new WaitForEndOfFrame(); this.transform.Find("BG").GetComponent().raycastTarget = true; } }