Tutorial.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using DragonBones;
  6. using UnityEngine.UI;
  7. using Transform = UnityEngine.Transform;
  8. public class Tutorial : Regist, IPointerClickHandler
  9. {
  10. #region 变量
  11. public static string SelectPlayer
  12. {
  13. get
  14. {
  15. if (string.IsNullOrEmpty(_SelectPlayer))
  16. {
  17. _SelectPlayer = "PlayerBlond";
  18. }
  19. return _SelectPlayer;
  20. }
  21. set { _SelectPlayer = value; }
  22. }
  23. public static Transform Player
  24. {
  25. get
  26. {
  27. if (_Player == null)
  28. {
  29. _Player = PlayerBlond;
  30. }
  31. return _Player;
  32. }
  33. set { _Player = value; }
  34. }
  35. public static string _SelectPlayer;
  36. public static Transform _Player;
  37. public static bool UIMask;
  38. public static Material Material;
  39. public static Transform Arrow;
  40. public static Transform PlayerPink;
  41. public static Transform PlayerBlond;
  42. public static Transform PlayerBrown;
  43. public static List<Transform> HighLightList = new List<Transform>();
  44. public static DragonBonesData data;
  45. #endregion
  46. public override void Instantiate()
  47. {
  48. if (ManaTutorial.TutorialA && ManaTutorial.TutorialIndexA == 1)
  49. {
  50. UnityFactory.factory.LoadTextureAtlasData(Bundle.Config.LoadAsset<TextAsset>("Closet_tex"), "Closet_tex");
  51. UnityFactory.factory.LoadDragonBonesData(Bundle.Config.LoadAsset<TextAsset>("Closet_ske"));
  52. PlayerBrown = ManaReso.Get("PlayerBrown", Folder.Scene, false, ManaReso.Get("PlayerBk1"), false);
  53. PlayerBlond = ManaReso.Get("PlayerBlond", Folder.Scene, false, ManaReso.Get("PlayerBk2"), false);
  54. PlayerPink = ManaReso.Get("PlayerPink", Folder.Scene, false, ManaReso.Get("PlayerBk3"), false);
  55. PlayerBrown.AddScript<Player>().BuildBrown();
  56. PlayerBlond.AddScript<Player>().BuildBlond();
  57. PlayerPink.AddScript<Player>().BuildPink();
  58. }
  59. }
  60. public override void RegistValueA()
  61. {
  62. if (ManaTutorial.TutorialA || ManaTutorial.TutorialB)
  63. {
  64. ManaReso.Get("Tutorial").CreateTweenSr(0, 1, 1f, true, true, Curve.EaseOutQuad, false, true);
  65. ManaReso.Get("PlayerBk1").CreateTweenScale(new Vector3(0.75f, 0.75f, 0.75f), new Vector3(0.9f, 0.9f, 0.9f), 0.25f, true, true, Curve.EaseOutQuad);
  66. ManaReso.Get("PlayerBk2").CreateTweenScale(new Vector3(0.75f, 0.75f, 0.75f), new Vector3(0.9f, 0.9f, 0.9f), 0.25f, true, true, Curve.EaseOutQuad);
  67. ManaReso.Get("PlayerBk3").CreateTweenScale(new Vector3(0.75f, 0.75f, 0.75f), new Vector3(0.9f, 0.9f, 0.9f), 0.25f, true, true, Curve.EaseOutQuad);
  68. ManaReso.Get("TutorialMask").CreateTweenSr(0, 180 / 255f, 0.25f, false, true, Curve.EaseOutQuad);
  69. ManaReso.Get("TutorialMask").AddScript<SceneMask>();
  70. Arrow = ManaReso.Get("N_Arrow");
  71. Material = ManaReso.Get<Image>("N_Mask").material;
  72. if (ManaTutorial.TutorialA && ManaTutorial.TutorialIndexA == 1)
  73. {
  74. ManaReso.Get("PlayerBk2").TweenForScale();
  75. ManaReso.SetActive("PlayerBk1", true);
  76. ManaReso.SetActive("PlayerBk2", true);
  77. ManaReso.SetActive("PlayerBk3", true);
  78. ManaReso.SetActive("TutorialMask", true);
  79. ManaReso.SetActive("TutorialCollider", true);
  80. }
  81. else
  82. {
  83. ManaReso.Get("Tutorial").SetCollider(false);
  84. }
  85. }
  86. }
  87. public static void HightScene(float radiusX, float radiusY, Transform posTra, Transform targetTra)
  88. {
  89. SceneMask.SetArea(targetTra, radiusX, radiusY);
  90. PointScene(Camera.main.WorldToScreenPoint(posTra.position), targetTra);
  91. Arrow.TweenForCG();
  92. }
  93. public static void HightScene(float radiusX, float radiusY, Transform posTra, Transform targetPos, Transform targetTra)
  94. {
  95. SceneMask.SetArea(targetTra, radiusX, radiusY);
  96. PointScene(Camera.main.WorldToScreenPoint(posTra.position), targetPos);
  97. Arrow.TweenForCG();
  98. }
  99. public static void HightScreen(Transform posTra, Transform targetTra)
  100. {
  101. targetTra.AddComponent<GraphicRaycaster>();
  102. Canvas canvas = targetTra.GetComponent<Canvas>();
  103. canvas.overrideSorting = true;
  104. canvas.sortingOrder = 1;
  105. PointScreen(posTra.position, targetTra);
  106. UIMask = true;
  107. Arrow.TweenForCG();
  108. ManaReso.Get("N_Mask").TweenConForGra();
  109. HighLightList.Add(targetTra);
  110. }
  111. public static void HightScreen(Transform posTra, Transform targetPos, Transform targetTra)
  112. {
  113. targetTra.AddComponent<GraphicRaycaster>();
  114. Canvas canvas = targetTra.GetComponent<Canvas>();
  115. canvas.overrideSorting = true;
  116. canvas.sortingOrder = 1;
  117. PointScreen(posTra.position, targetPos);
  118. UIMask = true;
  119. Arrow.TweenForCG();
  120. ManaReso.Get("N_Mask").TweenConForGra();
  121. HighLightList.Add(targetTra);
  122. }
  123. public static void HightDisable()
  124. {
  125. for (int i = 0; i < HighLightList.Count; i++)
  126. {
  127. HighLightList[i].GetComponent<Canvas>().overrideSorting = false;
  128. Destroy(HighLightList[i].GetComponent<GraphicRaycaster>());
  129. Destroy(HighLightList[i].GetComponent<Canvas>());
  130. }
  131. HighLightList = new List<Transform>();
  132. ManaReso.Get("N_Mask").TweenConBacGra();
  133. ManaReso.Get("N_Arrow").TweenConBacCG();
  134. SceneMask.ClearArea();
  135. UIMask = false;
  136. }
  137. public static void HightDisable(int index, bool hideArrow)
  138. {
  139. HighLightList[index].GetComponent<Canvas>().overrideSorting = false;
  140. Destroy(HighLightList[index].GetComponent<GraphicRaycaster>());
  141. Destroy(HighLightList[index].GetComponent<Canvas>());
  142. HighLightList.RemoveAt(index);
  143. if (hideArrow)
  144. {
  145. ManaReso.Get("N_Arrow").TweenConBacCG();
  146. }
  147. }
  148. public static void HightDisable(Transform tra, bool hideArrow)
  149. {
  150. tra.GetComponent<Canvas>().overrideSorting = false;
  151. Destroy(tra.GetComponent<GraphicRaycaster>());
  152. Destroy(tra.GetComponent<Canvas>());
  153. HighLightList.Remove(tra);
  154. if (hideArrow)
  155. {
  156. ManaReso.Get("N_Arrow").TweenConBacCG();
  157. }
  158. }
  159. private static void PointScene(Vector3 pos, Transform tra)
  160. {
  161. Vector3 pointPos = Camera.main.WorldToScreenPoint(tra.position);
  162. Arrow.position = pos;
  163. Arrow.right = pointPos - Arrow.position;
  164. }
  165. private static void PointScreen(Vector3 pos, Transform tra)
  166. {
  167. Arrow.position = pos;
  168. Arrow.right = tra.position - Arrow.position;
  169. }
  170. public void OnPointerClick(PointerEventData eventData)
  171. {
  172. if (eventData.rawPointerPress.name == "PlayerBk1")
  173. {
  174. ManaReso.Get("PlayerBk1").TweenConForScale();
  175. ManaReso.Get("PlayerBk2").TweenConBacScale();
  176. ManaReso.Get("PlayerBk3").TweenConBacScale();
  177. Player = PlayerBrown;
  178. SelectPlayer = "PlayerBrown";
  179. }
  180. else if (eventData.rawPointerPress.name == "PlayerBk2")
  181. {
  182. ManaReso.Get("PlayerBk2").TweenConForScale();
  183. ManaReso.Get("PlayerBk1").TweenConBacScale();
  184. ManaReso.Get("PlayerBk3").TweenConBacScale();
  185. Player = PlayerBlond;
  186. SelectPlayer = "PlayerBlond";
  187. }
  188. else if (eventData.rawPointerPress.name == "PlayerBk3")
  189. {
  190. ManaReso.Get("PlayerBk3").TweenConForScale();
  191. ManaReso.Get("PlayerBk1").TweenConBacScale();
  192. ManaReso.Get("PlayerBk2").TweenConBacScale();
  193. Player = PlayerPink;
  194. SelectPlayer = "PlayerPink";
  195. }
  196. else if (eventData.rawPointerPress.name == "TutorialCollider")
  197. {
  198. if (ManaTutorial.TutorialIndexA == 4)
  199. {
  200. ManaTutorial.EndStep4();
  201. }
  202. }
  203. }
  204. }