Tutorial.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine.UI;
  6. public class Tutorial : Regist, IPointerClickHandler
  7. {
  8. #region 变量
  9. public static string SelectPlayer
  10. {
  11. get
  12. {
  13. if (string.IsNullOrEmpty(_SelectPlayer))
  14. {
  15. _SelectPlayer = "PlayerBlond";
  16. }
  17. return _SelectPlayer;
  18. }
  19. set { _SelectPlayer = value; }
  20. }
  21. public static Transform Player
  22. {
  23. get
  24. {
  25. if (_Player == null)
  26. {
  27. _Player = PlayerBlond;
  28. }
  29. return _Player;
  30. }
  31. set { _Player = value; }
  32. }
  33. public static string _SelectPlayer;
  34. public static Transform _Player;
  35. public static bool UIMask;
  36. public static Material Material;
  37. public static Transform Arrow;
  38. public static Transform PlayerPink;
  39. public static Transform PlayerBlond;
  40. public static Transform PlayerBrown;
  41. public static List<Canvas> HighLightList = new List<Canvas>();
  42. #endregion
  43. public override void TutorialInstantiate()
  44. {
  45. PlayerBrown = ManaReso.Get("PlayerBrown", Folder.Character, false, ManaReso.Get("PlayerBk1"), ManaReso.Get("PlayerBk1").position);
  46. PlayerBlond = ManaReso.Get("PlayerBlond", Folder.Character, false, ManaReso.Get("PlayerBk2"), ManaReso.Get("PlayerBk2").position);
  47. PlayerPink = ManaReso.Get("PlayerPink", Folder.Character, false, ManaReso.Get("PlayerBk3"), ManaReso.Get("PlayerBk3").position);
  48. }
  49. public override void TutorialRegistValue()
  50. {
  51. ManaReso.Get("Tutorial").CreateTweenSr(0, 1, 5f, true, true, true, Curve.EaseOutQuad);
  52. ManaReso.Get("PlayerBk1").CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(0.95f, 0.95f, 0.95f), 0.25f, true, true, Curve.EaseOutQuad);
  53. ManaReso.Get("PlayerBk2").CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(0.95f, 0.95f, 0.95f), 0.25f, true, true, Curve.EaseOutQuad);
  54. ManaReso.Get("PlayerBk3").CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(0.95f, 0.95f, 0.95f), 0.25f, true, true, Curve.EaseOutQuad);
  55. ManaReso.Get("TutorialMask").CreateTweenSr(0, 180/255f, 0.25f, false, false, true, Curve.EaseOutQuad);
  56. ManaReso.Get("TutorialMask").AddComponent<SceneMask>().Regist();
  57. Arrow = ManaReso.Get("N_Arrow");
  58. Material = ManaReso.Get<Image>("N_Mask").material;
  59. }
  60. public static void HightScene(float radiusX, float radiusY, Transform posTra, Transform targetTra)
  61. {
  62. SceneMask.SetArea(targetTra, radiusX, radiusY);
  63. PointScene(Camera.main.WorldToScreenPoint(posTra.position), targetTra);
  64. }
  65. public static void HightScene(float radiusX, float radiusY, Transform posTra, Transform targetPos, Transform targetTra)
  66. {
  67. SceneMask.SetArea(targetTra, radiusX, radiusY);
  68. PointScene(Camera.main.WorldToScreenPoint(posTra.position), targetPos);
  69. }
  70. public static void HightScreen(Transform posTra, Transform targetTra)
  71. {
  72. targetTra.GetComponent<Canvas>().overrideSorting = true;
  73. targetTra.GetComponent<GraphicRaycaster>().enabled = true;
  74. PointScreen(posTra.position, targetTra);
  75. HighLightList.Add(targetTra.GetComponent<Canvas>());
  76. }
  77. public static void HightScreen(Transform posTra, Transform targetPos, Transform targetTra)
  78. {
  79. targetTra.GetComponent<Canvas>().overrideSorting = true;
  80. targetTra.GetComponent<GraphicRaycaster>().enabled = true;
  81. PointScreen(posTra.position, targetPos);
  82. HighLightList.Add(targetTra.GetComponent<Canvas>());
  83. }
  84. public static void HightDisable()
  85. {
  86. Arrow.SetActive(false);
  87. SceneMask.ClearArea();
  88. for (int i = 0; i < HighLightList.Count; i++)
  89. {
  90. HighLightList[i].overrideSorting = false;
  91. HighLightList[i].GetComponent<GraphicRaycaster>().enabled = false;
  92. }
  93. HighLightList = new List<Canvas>();
  94. UIMask = false;
  95. ManaReso.Get("N_Mask").TweenConBacGra();
  96. ManaReso.Get("N_Arrow").TweenConBacCG();
  97. }
  98. public static void HightDisable(int index, bool hideArrow)
  99. {
  100. HighLightList[index].GetComponent<Canvas>().overrideSorting = false;
  101. HighLightList[index].GetComponent<GraphicRaycaster>().enabled = false;
  102. HighLightList.RemoveAt(index);
  103. if (hideArrow)
  104. {
  105. ManaReso.Get("N_Arrow").TweenConBacCG();
  106. }
  107. }
  108. public static void HightDisable(Transform tra, bool hideArrow)
  109. {
  110. tra.GetComponent<Canvas>().overrideSorting = false;
  111. tra.GetComponent<GraphicRaycaster>().enabled = false;
  112. HighLightList.Remove(tra.GetComponent<Canvas>());
  113. if (hideArrow)
  114. {
  115. ManaReso.Get("N_Arrow").TweenConBacCG();
  116. }
  117. }
  118. private static void PointScene(Vector3 pos, Transform tra)
  119. {
  120. Vector3 pointPos = Camera.main.WorldToScreenPoint(tra.position);
  121. Arrow.position = pos;
  122. Arrow.right = pointPos - Arrow.position;
  123. Arrow.TweenForCG();
  124. }
  125. private static void PointScreen(Vector3 pos, Transform tra)
  126. {
  127. Arrow.position = pos;
  128. Arrow.right = tra.position - Arrow.position;
  129. Arrow.TweenForCG();
  130. UIMask = true;
  131. ManaReso.Get("N_Mask").TweenConForGra();
  132. }
  133. public void OnPointerClick(PointerEventData eventData)
  134. {
  135. if (eventData.rawPointerPress.name == "PlayerBk1")
  136. {
  137. ManaReso.Get("PlayerBk1").TweenConForScale();
  138. ManaReso.Get("PlayerBk2").TweenConBacScale();
  139. ManaReso.Get("PlayerBk3").TweenConBacScale();
  140. Player = PlayerBrown;
  141. SelectPlayer = "PlayerBrown";
  142. }
  143. else if (eventData.rawPointerPress.name == "PlayerBk2")
  144. {
  145. ManaReso.Get("PlayerBk2").TweenConForScale();
  146. ManaReso.Get("PlayerBk1").TweenConBacScale();
  147. ManaReso.Get("PlayerBk3").TweenConBacScale();
  148. Player = PlayerBlond;
  149. SelectPlayer = "PlayerBlond";
  150. }
  151. else if (eventData.rawPointerPress.name == "PlayerBk3")
  152. {
  153. ManaReso.Get("PlayerBk3").TweenConForScale();
  154. ManaReso.Get("PlayerBk1").TweenConBacScale();
  155. ManaReso.Get("PlayerBk2").TweenConBacScale();
  156. Player = PlayerPink;
  157. SelectPlayer = "PlayerPink";
  158. }
  159. }
  160. }