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 UIMask; public static Material Material; public static Transform Arrow; public static List HighLightList = new List(); #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(); Canvas canvas = target.GetComponent(); canvas.overrideSorting = true; canvas.sortingOrder = 1; UIMask = true; PointScreen(arrowPos.position, target); ManaReso.Get("N_Mask").TweenConForGra(); HighLightList.Add(target); } public static void HightScreen(Transform arrowPos, Transform targetPos, Transform target) { target.AddComponent(); Canvas canvas = target.GetComponent(); canvas.overrideSorting = true; canvas.sortingOrder = 1; UIMask = true; PointScreen(arrowPos.position, targetPos); ManaReso.Get("N_Mask").TweenConForGra(); HighLightList.Add(target); } public static void HightDisable() { for (int i = 0; i < HighLightList.Count; i++) { HighLightList[i].GetComponent().overrideSorting = false; Destroy(HighLightList[i].GetComponent()); Destroy(HighLightList[i].GetComponent()); } HighLightList = new List(); ManaReso.Get("N_Mask").TweenConBacGra(); ManaReso.Get("N_Arrow").TweenConBacCG(); ClearArea(); UIMask = false; } public static void HightDisable(int index, bool hideArrow) { HighLightList[index].GetComponent().overrideSorting = false; Destroy(HighLightList[index].GetComponent()); Destroy(HighLightList[index].GetComponent()); HighLightList.RemoveAt(index); if (hideArrow) { ManaReso.Get("N_Arrow").TweenConBacCG(); } } 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 (UIMask) { Material.SetFloat("_RadiusX", radiusX); Material.SetFloat("_RadiusY", radiusY); Material.SetVector("_Center", screenPos); } else { SceneMask.SetArea(tra, screenPos, radiusX, radiusY); } } public static void ClearArea() { if (UIMask) { 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.TweenConForCG(); } public static void PointScreen(Vector3 pos, Transform tra) { Arrow.position = pos; Arrow.right = tra.position - Arrow.position; Arrow.TweenConForCG(); } 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").GetMove2D().Pause(); ManaReso.Get("PlayerBk2").GetMove2D().Pause(); ManaReso.Get("PlayerBk3").GetMove2D().Pause(); 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").TweenConForScale(); ManaReso.Get("PlayerBk2").TweenConBacScale(); ManaReso.Get("PlayerBk3").TweenConBacScale(); ManaPlayer.PlayerPink.TweenConBacScale(); ManaPlayer.PlayerBlond.TweenConBacScale(); ManaPlayer.PlayerBrown.TweenConForScale(); ManaPlayer.SelePlayer = "PlayerBrown"; ManaPlayer.SelePlayerTra = ManaPlayer.PlayerBrown; } else if (eventData.rawPointerPress.name == "PlayerBk2") { Vector3 offset = ManaReso.Get("PlayerBk2").position; offset.x = -offset.x; offset.y = 0; ManaReso.Get("PlayerBk1").GetMove2D().Pause(); ManaReso.Get("PlayerBk2").GetMove2D().Pause(); ManaReso.Get("PlayerBk3").GetMove2D().Pause(); 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").TweenConForScale(); ManaReso.Get("PlayerBk1").TweenConBacScale(); ManaReso.Get("PlayerBk3").TweenConBacScale(); ManaPlayer.PlayerPink.TweenConBacScale(); ManaPlayer.PlayerBlond.TweenConForScale(); ManaPlayer.PlayerBrown.TweenConBacScale(); ManaPlayer.SelePlayer = "PlayerBlond"; ManaPlayer.SelePlayerTra = ManaPlayer.PlayerBlond; } else if (eventData.rawPointerPress.name == "PlayerBk3") { Vector3 offset = ManaReso.Get("PlayerBk3").position; offset.x = -offset.x; offset.y = 0; ManaReso.Get("PlayerBk1").GetMove2D().Pause(); ManaReso.Get("PlayerBk2").GetMove2D().Pause(); ManaReso.Get("PlayerBk3").GetMove2D().Pause(); 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").TweenConForScale(); ManaReso.Get("PlayerBk1").TweenConBacScale(); ManaReso.Get("PlayerBk2").TweenConBacScale(); ManaPlayer.PlayerPink.TweenConForScale(); ManaPlayer.PlayerBlond.TweenConBacScale(); ManaPlayer.PlayerBrown.TweenConBacScale(); ManaPlayer.SelePlayer = "PlayerPink"; ManaPlayer.SelePlayerTra = ManaPlayer.PlayerPink; } else if (eventData.rawPointerPress.name == "TutorialCollider") { if (ManaTutorial.TutorialIndexA == 4) { ManaTutorial.EndStep4(); } } } }