123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- using DragonBones;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.EventSystems;
- using System.Collections;
- using System.Collections.Generic;
- using Transform = UnityEngine.Transform;
- public class Tutorial : Regist, IPointerClickHandler
- {
- #region 变量
- public static bool MaskLock;
- public static Material Material;
- public static Transform Arrow;
- public static List<Transform> HighLightList = new List<Transform>();
- #endregion
- public static void HightScene(float radiusX, float radiusY, Transform arrowPos, Transform target)
- {
- SetArea(target, radiusX, radiusY);
- PointScene(arrowPos.position, target);
- }
- public static void HightScene(float radiusX, float radiusY, Transform arrowPos, Transform targetPos, Transform target)
- {
- SetArea(target, radiusX, radiusY);
-
- PointScene(arrowPos.position, targetPos);
- }
- public static void HightScreen(Transform arrowPos, Transform target)
- {
- target.AddComponent<GraphicRaycaster>();
- Canvas canvas = target.GetComponent<Canvas>();
- canvas.overrideSorting = true;
- canvas.sortingOrder = 1;
- MaskLock = true;
- PointScreen(arrowPos.position, target);
- ManaReso.Get("N_Mask").TweenForGra();
- HighLightList.Add(target);
- }
- public static void HightScreen(Transform arrowPos, Transform targetPos, Transform target)
- {
- target.AddComponent<GraphicRaycaster>();
- Canvas canvas = target.GetComponent<Canvas>();
- canvas.overrideSorting = true;
- canvas.sortingOrder = 1;
- MaskLock = true;
- PointScreen(arrowPos.position, targetPos);
- ManaReso.Get("N_Mask").TweenForGra();
- HighLightList.Add(target);
- }
- public static void HightDisable()
- {
- for (int i = 0; i < HighLightList.Count; i++)
- {
- HighLightList[i].GetComponent<Canvas>().overrideSorting = false;
-
- Destroy(HighLightList[i].GetComponent<GraphicRaycaster>());
- Destroy(HighLightList[i].GetComponent<Canvas>());
- }
- HighLightList = new List<Transform>();
- ManaReso.Get("N_Mask").TweenBacGra();
- ManaReso.Get("N_Arrow").TweenBacCG();
- ClearArea();
- MaskLock = false;
- }
- public static void HightDisable(int index, bool hideArrow)
- {
- HighLightList[index].GetComponent<Canvas>().overrideSorting = false;
- Destroy(HighLightList[index].GetComponent<GraphicRaycaster>());
- Destroy(HighLightList[index].GetComponent<Canvas>());
-
- HighLightList.RemoveAt(index);
- if (hideArrow)
- {
- ManaReso.Get("N_Arrow").TweenBacCG();
- }
- }
- public static void SetArea(Transform tra, float radiusX, float radiusY)
- {
- Vector3 screenPos = Camera.main.WorldToScreenPoint(tra.position);
- screenPos = new Vector3(screenPos.x / Screen.width, screenPos.y / Screen.height, 0);
- if (MaskLock)
- {
- Material.SetFloat("_RadiusX", radiusX);
- Material.SetFloat("_RadiusY", radiusY);
- Material.SetVector("_Center", screenPos);
- }
- else
- {
- SceneMask.SetArea(tra, screenPos, radiusX, radiusY);
- }
- }
- public static void ClearArea()
- {
- if (MaskLock)
- {
- Material.SetFloat("_RadiusX", 0);
- Material.SetFloat("_RadiusY", 0);
- Material.SetVector("_Center", new Vector2(0, 0));
- }
- else
- {
- SceneMask.ClearArea();
- }
- }
- public static void PointScene(Vector3 pos, Transform tra)
- {
- Vector3 pointPos = Camera.main.WorldToScreenPoint(tra.position);
- pos = Camera.main.WorldToScreenPoint(pos);
- Arrow.position = pos;
- Arrow.right = pointPos - Arrow.position;
- Arrow.TweenForCG();
- }
- public static void PointScreen(Vector3 pos, Transform tra)
- {
- Arrow.position = pos;
- Arrow.right = tra.position - Arrow.position;
- Arrow.TweenForCG();
- }
- public void OnPointerClick(PointerEventData eventData)
- {
- ManaAudio.PlayClip(Clip.BtnClip);
- if (eventData.rawPointerPress.name == "PlayerBk1")
- {
- Vector3 offset = ManaReso.Get("PlayerBk1").position;
- offset.x = -offset.x;
- offset.y = 0;
- ManaReso.Get("PlayerBk1").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk2").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk3").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk1").TweenForScale();
- ManaReso.Get("PlayerBk2").TweenBacScale();
- ManaReso.Get("PlayerBk3").TweenBacScale();
- ManaPlayer.PlayerPink.TweenBacScale();
- ManaPlayer.PlayerBlond.TweenBacScale();
- ManaPlayer.PlayerBrown.TweenForScale();
- ManaPlayer.SeleTra = ManaPlayer.PlayerBrown;
- }
- else if (eventData.rawPointerPress.name == "PlayerBk2")
- {
- Vector3 offset = ManaReso.Get("PlayerBk2").position;
- offset.x = -offset.x;
- offset.y = 0;
- ManaReso.Get("PlayerBk1").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk2").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk3").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk2").TweenForScale();
- ManaReso.Get("PlayerBk1").TweenBacScale();
- ManaReso.Get("PlayerBk3").TweenBacScale();
- ManaPlayer.PlayerPink.TweenBacScale();
- ManaPlayer.PlayerBlond.TweenForScale();
- ManaPlayer.PlayerBrown.TweenBacScale();
- ManaPlayer.SeleTra = ManaPlayer.PlayerBlond;
- }
- else if (eventData.rawPointerPress.name == "PlayerBk3")
- {
- Vector3 offset = ManaReso.Get("PlayerBk3").position;
- offset.x = -offset.x;
- offset.y = 0;
- ManaReso.Get("PlayerBk1").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk2").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk3").MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad);
- ManaReso.Get("PlayerBk3").TweenForScale();
- ManaReso.Get("PlayerBk1").TweenBacScale();
- ManaReso.Get("PlayerBk2").TweenBacScale();
- ManaPlayer.PlayerPink.TweenForScale();
- ManaPlayer.PlayerBlond.TweenBacScale();
- ManaPlayer.PlayerBrown.TweenBacScale();
- ManaPlayer.SeleTra = ManaPlayer.PlayerPink;
- }
- else if (eventData.rawPointerPress.name == "TutorialCollider")
- {
- if (ManaTutorial.TutorialIndexA == 4)
- {
- ManaTutorial.EndA4();
- }
- }
- }
- }
|