//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, May 16, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class TaskFeedbackFuncWin : Window { [SerializeField] TaskFeedbackFunc[] m_Funcs; TaskFeedbackModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { for (int i = 0; i < m_Funcs.Length; i++) { var index = i; m_Funcs[i].button.AddListener(() => { OnFunc(index); }); } } protected override void OnPreOpen() { Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion void Display() { for (int i = 0; i < m_Funcs.Length; i++) { m_Funcs[i].button.gameObject.SetActive(i < model.taskFeedbackFuncs.Count); if (i < model.taskFeedbackFuncs.Count) { var config = TaskFeedbackFuncConfig.Get(model.taskFeedbackFuncs[i]); if (config != null) { m_Funcs[i].label.text = config.name; } } } } private void OnFunc(int index) { CloseImmediately(); if (index < model.taskFeedbackFuncs.Count) { var config = TaskFeedbackFuncConfig.Get(model.taskFeedbackFuncs[index]); if (config != null) { if (config.jump != 0) { WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump); } else if (config.guide != 0) { var guideConfig = GuideConfig.Get(config.guide); if (guideConfig == null) { DebugEx.LogFormat("引导{0}未添加", config.guide); return; } switch ((GuideType)guideConfig.Type) { case GuideType.Functional: FunctionalGuideCenter.Instance.StartGuide(config.guide); break; default: NewBieCenter.Instance.StartNewBieGuide(config.guide); break; } } } } } [Serializable] public struct TaskFeedbackFunc { public Button button; public Text label; } } }