using DragonBones; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using UnityEngine.EventSystems; using System.Collections; using System.Collections.Generic; using Transform = UnityEngine.Transform; public class TutorialLabel { public static string PinkPlayerPos = "PlayerPos3"; public static string BlondPlayerPos = "PlayerPos2"; public static string BrownPlayerPos = "PlayerPos1"; public static string Tutorial = "Tutorial"; public static string PlayerBk1 = "PlayerBk1"; public static string PlayerBk2 = "PlayerBk2"; public static string PlayerBk3 = "PlayerBk3"; public static string TutorialMask = "TutorialMask"; public static string TutorialCollider = "TutorialCollider"; } public class Tutorial : Regist, IPointerClickHandler { #region Config public static bool MaskFlag; 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, int order = 1) { target.AddComponent(); Canvas canvas = target.GetComponent(); canvas.overrideSorting = true; canvas.sortingOrder = order; MaskFlag = true; PointScreen(arrowPos.position, target); ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra(); 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; MaskFlag = true; PointScreen(arrowPos.position, targetPos); ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra(); 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(); ResourceManager.Get(CanvasLabel.N_Mask).TweenBacGra(); ResourceManager.Get(CanvasLabel.N_Arrow).TweenBacCG(); ClearArea(); MaskFlag = 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) { ResourceManager.Get(CanvasLabel.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 (MaskFlag) { Material.SetFloat("_RadiusX", radiusX); Material.SetFloat("_RadiusY", radiusY); Material.SetVector("_Center", screenPos); } else { SceneMask.SetArea(tra, screenPos, radiusX, radiusY); } } public static void ClearArea() { if (MaskFlag) { 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 static void ShowDescriptScene(Vector3 pos) { pos = Camera.main.WorldToScreenPoint(pos); ShowDescriptScreen(pos); } public static void ShowDescriptScreen(Vector3 pos) { ResourceManager.Get(CanvasLabel.N_LabBK).TweenForCG(); ResourceManager.Get(CanvasLabel.N_LabBK).transform.position = pos; } public static void SetUIButton(Vector3 pos, float radiusX, float radiusY) { pos = Camera.main.WorldToScreenPoint(pos); Image image = ResourceManager.Get(CanvasLabel.N_Button); image.transform.position = pos; image.transform.localScale = new Vector3(radiusX*2, radiusY*2, 1); image.SetActive(true); } public void OnPointerClick(PointerEventData eventData) { AudioManager.PlayClip(AudioLabel.ClickButton); if (eventData.rawPointerPress.name == TutorialLabel.PlayerBk1) { Vector3 offset = ResourceManager.Get(TutorialLabel.PlayerBk1).position; offset.x = -offset.x; offset.y = 0; ResourceManager.Get(TutorialLabel.PlayerBk1).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk2).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk3).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk1).TweenForScale(); ResourceManager.Get(TutorialLabel.PlayerBk2).TweenBacScale(); ResourceManager.Get(TutorialLabel.PlayerBk3).TweenBacScale(); PlayerManager.DefaultPinkPlayer.TweenBacScale(); PlayerManager.DefaultBlondPlayer.TweenBacScale(); PlayerManager.DefaultBrownPlayer.TweenForScale(); PlayerManager.SelectedPlayer = PlayerManager.DefaultBrownPlayer; } else if (eventData.rawPointerPress.name == TutorialLabel.PlayerBk2) { Vector3 offset = ResourceManager.Get(TutorialLabel.PlayerBk2).position; offset.x = -offset.x; offset.y = 0; ResourceManager.Get(TutorialLabel.PlayerBk1).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk2).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk3).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk2).TweenForScale(); ResourceManager.Get(TutorialLabel.PlayerBk1).TweenBacScale(); ResourceManager.Get(TutorialLabel.PlayerBk3).TweenBacScale(); PlayerManager.DefaultPinkPlayer.TweenBacScale(); PlayerManager.DefaultBlondPlayer.TweenForScale(); PlayerManager.DefaultBrownPlayer.TweenBacScale(); PlayerManager.SelectedPlayer = PlayerManager.DefaultBlondPlayer; } else if (eventData.rawPointerPress.name == TutorialLabel.PlayerBk3) { Vector3 offset = ResourceManager.Get(TutorialLabel.PlayerBk3).position; offset.x = -offset.x; offset.y = 0; ResourceManager.Get(TutorialLabel.PlayerBk1).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk2).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk3).MoveOffset2D(offset, 1f, false, Curve.EaseOutQuad); ResourceManager.Get(TutorialLabel.PlayerBk3).TweenForScale(); ResourceManager.Get(TutorialLabel.PlayerBk1).TweenBacScale(); ResourceManager.Get(TutorialLabel.PlayerBk2).TweenBacScale(); PlayerManager.DefaultPinkPlayer.TweenForScale(); PlayerManager.DefaultBlondPlayer.TweenBacScale(); PlayerManager.DefaultBrownPlayer.TweenBacScale(); PlayerManager.SelectedPlayer = PlayerManager.DefaultPinkPlayer; } else if (eventData.rawPointerPress.name == TutorialLabel.TutorialCollider) { if (TutorialManager.NewplayerTutorialIndex == 4) { TutorialManager.EndClickSlot(); } } } }