using UnityEngine; using UnityEngine.EventSystems; using System.Collections; using System.Collections.Generic; using DragonBones; using UnityEngine.UI; using Transform = UnityEngine.Transform; public class Tutorial : Regist, IPointerClickHandler { #region 变量 public static string SelectPlayer { get { if (string.IsNullOrEmpty(_SelectPlayer)) { _SelectPlayer = "PlayerBlond"; } return _SelectPlayer; } set { _SelectPlayer = value; } } public static Transform Player { get { if (_Player == null) { _Player = PlayerBlond; } return _Player; } set { _Player = value; } } public static string _SelectPlayer; public static Transform _Player; public static bool UIMask; public static Material Material; public static Transform Arrow; public static Transform PlayerPink; public static Transform PlayerBlond; public static Transform PlayerBrown; public static List HighLightList = new List(); public static DragonBonesData data; #endregion public override void Instantiate() { if (ManaTutorial.TutorialA && ManaTutorial.TutorialIndexA == 1) { UnityFactory.factory.LoadTextureAtlasData(Bundle.Config.LoadAsset("Closet_tex"), "Closet_tex"); UnityFactory.factory.LoadDragonBonesData(Bundle.Config.LoadAsset("Closet_ske")); PlayerBrown = ManaReso.Get("PlayerBrown", Folder.Scene, false, ManaReso.Get("PlayerBk1"), false); PlayerBlond = ManaReso.Get("PlayerBlond", Folder.Scene, false, ManaReso.Get("PlayerBk2"), false); PlayerPink = ManaReso.Get("PlayerPink", Folder.Scene, false, ManaReso.Get("PlayerBk3"), false); PlayerBrown.AddScript().BuildBrown(); PlayerBlond.AddScript().BuildBlond(); PlayerPink.AddScript().BuildPink(); } } public override void RegistValueA() { if (ManaTutorial.TutorialA || ManaTutorial.TutorialB) { ManaReso.Get("Tutorial").CreateTweenSr(0, 1, 1f, true, true, Curve.EaseOutQuad, false, true); 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); 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); 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); ManaReso.Get("TutorialMask").CreateTweenSr(0, 180 / 255f, 0.25f, false, true, Curve.EaseOutQuad); ManaReso.Get("TutorialMask").AddScript(); Arrow = ManaReso.Get("N_Arrow"); Material = ManaReso.Get("N_Mask").material; if (ManaTutorial.TutorialA && ManaTutorial.TutorialIndexA == 1) { ManaReso.Get("PlayerBk2").TweenForScale(); ManaReso.SetActive("PlayerBk1", true); ManaReso.SetActive("PlayerBk2", true); ManaReso.SetActive("PlayerBk3", true); ManaReso.SetActive("TutorialMask", true); ManaReso.SetActive("TutorialCollider", true); } else { ManaReso.Get("Tutorial").SetCollider(false); } } } public static void HightScene(float radiusX, float radiusY, Transform posTra, Transform targetTra) { SceneMask.SetArea(targetTra, radiusX, radiusY); PointScene(Camera.main.WorldToScreenPoint(posTra.position), targetTra); Arrow.TweenForCG(); } public static void HightScene(float radiusX, float radiusY, Transform posTra, Transform targetPos, Transform targetTra) { SceneMask.SetArea(targetTra, radiusX, radiusY); PointScene(Camera.main.WorldToScreenPoint(posTra.position), targetPos); Arrow.TweenForCG(); } public static void HightScreen(Transform posTra, Transform targetTra) { targetTra.AddComponent(); Canvas canvas = targetTra.GetComponent(); canvas.overrideSorting = true; canvas.sortingOrder = 1; PointScreen(posTra.position, targetTra); UIMask = true; Arrow.TweenForCG(); ManaReso.Get("N_Mask").TweenConForGra(); HighLightList.Add(targetTra); } public static void HightScreen(Transform posTra, Transform targetPos, Transform targetTra) { targetTra.AddComponent(); Canvas canvas = targetTra.GetComponent(); canvas.overrideSorting = true; canvas.sortingOrder = 1; PointScreen(posTra.position, targetPos); UIMask = true; Arrow.TweenForCG(); ManaReso.Get("N_Mask").TweenConForGra(); HighLightList.Add(targetTra); } 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(); SceneMask.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 HightDisable(Transform tra, bool hideArrow) { tra.GetComponent().overrideSorting = false; Destroy(tra.GetComponent()); Destroy(tra.GetComponent()); HighLightList.Remove(tra); if (hideArrow) { ManaReso.Get("N_Arrow").TweenConBacCG(); } } private static void PointScene(Vector3 pos, Transform tra) { Vector3 pointPos = Camera.main.WorldToScreenPoint(tra.position); Arrow.position = pos; Arrow.right = pointPos - Arrow.position; } private static void PointScreen(Vector3 pos, Transform tra) { Arrow.position = pos; Arrow.right = tra.position - Arrow.position; } public void OnPointerClick(PointerEventData eventData) { if (eventData.rawPointerPress.name == "PlayerBk1") { ManaReso.Get("PlayerBk1").TweenConForScale(); ManaReso.Get("PlayerBk2").TweenConBacScale(); ManaReso.Get("PlayerBk3").TweenConBacScale(); Player = PlayerBrown; SelectPlayer = "PlayerBrown"; } else if (eventData.rawPointerPress.name == "PlayerBk2") { ManaReso.Get("PlayerBk2").TweenConForScale(); ManaReso.Get("PlayerBk1").TweenConBacScale(); ManaReso.Get("PlayerBk3").TweenConBacScale(); Player = PlayerBlond; SelectPlayer = "PlayerBlond"; } else if (eventData.rawPointerPress.name == "PlayerBk3") { ManaReso.Get("PlayerBk3").TweenConForScale(); ManaReso.Get("PlayerBk1").TweenConBacScale(); ManaReso.Get("PlayerBk2").TweenConBacScale(); Player = PlayerPink; SelectPlayer = "PlayerPink"; } else if (eventData.rawPointerPress.name == "TutorialCollider") { if (ManaTutorial.TutorialIndexA == 4) { ManaTutorial.EndStep4(); } } } }