//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, November 24, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class WelcomeWin : Window { [SerializeField] UIAlphaTween m_FadeInTween; [SerializeField] UIAlphaTween m_FadeOutTween; [SerializeField] Button m_Close; [SerializeField] float m_ForbidTime = 5f; [SerializeField] float m_OutTime = 10f; float superOutTime = 15f; float timer = 0f; bool ensured = false; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.AddListener(Ensure); } protected override void OnPreOpen() { timer = 0f; m_Close.gameObject.SetActive(false); superOutTime = m_OutTime + 5f; ensured = false; m_FadeOutTween.SetStartState(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); m_FadeInTween.Play(); } protected override void LateUpdate() { base.LateUpdate(); timer += Time.deltaTime; if (timer > m_ForbidTime && !m_Close.gameObject.activeInHierarchy) { m_Close.gameObject.SetActive(true); } if (timer > m_OutTime) { if (!ensured) { ensured = true; FadeOut(); } } if (timer > superOutTime) { OnFadeOutComplete(); } } #endregion private void Ensure() { if (timer < m_ForbidTime) { return; } if (!ensured) { ensured = true; FadeOut(); } } private void FadeOut() { m_FadeOutTween.Play(OnFadeOutComplete); } private void OnFadeOutComplete() { CloseClick(); WindowCenter.Instance.Open(); var taskModel = ModelCenter.Instance.GetModel(); taskModel.AutomaticTripToTask(taskModel.currentMission); } } }