GameRuleView.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. /* 游戏规则界面 */
  6. public class GameRuleView : MonoBehaviour
  7. {
  8. public int[] rule1;
  9. public int[] rule2;
  10. int ruleLookIndex = 0;
  11. static bool createLock = false;
  12. float _lastShootTime = 0;
  13. public static void Create()
  14. {
  15. if (createLock || GameMgr.gameType == 0) return;
  16. createLock = true;
  17. GameObject.Instantiate(Resources.Load<GameObject>("Prefabs/Views/GameRuleView"));
  18. }
  19. void Start()
  20. {
  21. if (GlobalData.pkMatchType != PKMatchType.OnlinePK) {
  22. GameMgr.ins.addLockerForGamePause(this);
  23. }
  24. this.Click();
  25. }
  26. void OnDestroy()
  27. {
  28. createLock = false;
  29. if (GlobalData.pkMatchType != PKMatchType.OnlinePK) {
  30. if (GameMgr.ins) GameMgr.ins.removeLockerForGamePause(this);
  31. }
  32. }
  33. public void Click() {
  34. if (Time.time == 0) return;
  35. if (Time.realtimeSinceStartup - _lastShootTime < 1) return;
  36. _lastShootTime = Time.realtimeSinceStartup;
  37. int[] rule = null;
  38. if (GameMgr.gameType == 1) {
  39. rule = rule1;
  40. } else if (GameMgr.gameType == 2 || GameMgr.gameType == 9) {
  41. rule = rule2;
  42. }
  43. Debug.Log("rule[ruleLookIndex]: = " +ruleLookIndex);
  44. if (ruleLookIndex >= rule.Length) {
  45. Destroy(this.gameObject);
  46. GameMgr.ins.FinishGameRuleGuide();
  47. Debug.Log("rule[ruleLookIndex] end: = " + ruleLookIndex);
  48. } else {
  49. this.transform.Find("BG/Panel/Content").GetComponent<TextAutoLanguage>().SetText(rule[ruleLookIndex]);
  50. ruleLookIndex++;
  51. //重置一下bg raycast target,不然Mouse Confirm检测不到下一步按钮
  52. StartCoroutine(switchBgRaycastTarget());
  53. }
  54. }
  55. IEnumerator switchBgRaycastTarget() {
  56. this.transform.Find("BG").GetComponent<Image>().raycastTarget = false;
  57. yield return new WaitForEndOfFrame();
  58. this.transform.Find("BG").GetComponent<Image>().raycastTarget = true;
  59. }
  60. }