using System; using System.Collections.Generic; using UnityEngine; namespace MMO { public class MMOUIGuide : MMOUIBase { public Action DelGuideOver; private List mSteps; private int mCurrentIndex = 0; protected override void OnInit() { base.OnInit(); mSteps = MMOUIManager.GetChildList(transform); for (int i = 0; i < mSteps.Count; i++) { mSteps[i].DelExcute = OnStepExcute; } } public override void OnOpen() { base.OnOpen(); mSteps[0].gameObject.SetActive(true); } private void OnStepExcute() { int tExcuteIndex = mCurrentIndex; mSteps[mCurrentIndex].gameObject.SetActive(false); mCurrentIndex++; if (mCurrentIndex < mSteps.Count) { mSteps[mCurrentIndex].gameObject.SetActive(true); } else { MMOUserData.Instance.FinishGuide(); Close(); } ExcuteByIndex(tExcuteIndex); } private void ExcuteByIndex(int pIndex) { if (pIndex == 0) { MMOModule.Instance.UIMgr.OpenUI().SetInput(""); } else if (pIndex == 1) { MMOGuideInput tInput = mSteps[pIndex].GetComponent(); if (tInput != null) { MMOModule.Instance.UIMgr.GetUI().SetInput(tInput.InputStr); } } else if (pIndex == 2) { MMOModule.Instance.UIMgr.GetUI().SendMessage("OnClickSubmit"); } else if (pIndex == 3) { MMOModule.Instance.UIMgr.CloseUI(); } else if (pIndex == 4) { DelGuideOver?.Invoke(); } } } }