//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, April 11, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.EventSystems; using System.Collections.Generic; using System; using Snxxz.UI; //顶层控制动画播放 namespace Snxxz.UI { public class TopAnimationPlay : MonoBehaviour { [SerializeField] Animator m_Animator; [SerializeField] bool m_IsplayAnimator = false; [SerializeField] CanvasGroup m_CanvasGroup; [SerializeField] List AnimatorPlayName = new List(); private bool IsBool = true; IsPlayerUIeffect isPlayerUIeffect; HighBtnRecord highBtnRecord; TreasureFindHostModel hostModel { get { return ModelCenter.Instance.GetModel(); } } OSGiftModel osGiftModel { get { return ModelCenter.Instance.GetModel(); } } LimitedTimePackageItemClassModel limitedTimePackageItemModel { get { return ModelCenter.Instance.GetModel(); } } ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel(); } } private void OnEnable() { FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange; hostModel.TreasureFindHostCompleteAct += TreasureFindHostCompleteAct; RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint; TimeUtility.OnServerOpenDayRefresh += OnStepServerDay; OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange; WindowCenter.Instance.windowAfterOpenEvent += windowAfterOpenEvent; OperationTimeHepler.Instance.operationStartEvent += operationStartEvent; OperationTimeHepler.Instance.operationEndEvent += operationEndEvent; limitedTimePackageItemModel.UpdateLimitedTimePackageItem += UpdateLimitedTimePackageItem; impactRankModel.inImpactRankUpdate += InImpactRankUpdate; } private void InImpactRankUpdate() { Await1(); } private void operationStartEvent(Operation arg1, int arg2) { if (arg1 == Operation.FairyCeremony) { Await1(); } } private void operationEndEvent(Operation arg1, int arg2) { if ( arg1 == Operation.FairyCeremony) { Await1(); } } private void windowAfterOpenEvent(Window obj) { if (obj as MainInterfaceWin) { Await1(); } } private void OpenServerActivityStateChange() { Await1(); } private void UpdateRedpoint(int redPointID) { if (redPointID == 201 || redPointID == 210) { Await1(); } } private void OnOSGiftStateChange() { Await1(); } private void TreasureFindHostCompleteAct() { Await1(); } private void OnFuncStateChange(int obj) { Await1(); } private void OnStepServerDay() { Await1(); } private void UpdateLimitedTimePackageItem() { Await1(); } IEnumerator Await() { yield return new WaitForSeconds(0.2f); highBtnRecord = null; IsBool = true; } private void Await1() { highBtnRecord = null; IsBool = true; } private void LateUpdate() { if (WindowCenter.Instance.IsOpen()) { if (IsBool) { if (this.transform.childCount > 0) { highBtnRecord = this.transform.GetChild(0).GetComponent(); isPlayerUIeffect = this.transform.GetChild(0).GetComponent(); } IsBool = false; } if (highBtnRecord != null) { if (!highBtnRecord.IsNagaaki != m_IsplayAnimator) { m_IsplayAnimator = !highBtnRecord.IsNagaaki; } } } } private void OnDisable() { FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange; hostModel.TreasureFindHostCompleteAct -= TreasureFindHostCompleteAct; RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint; TimeUtility.OnServerOpenDayRefresh -= OnStepServerDay; OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange; WindowCenter.Instance.windowAfterOpenEvent -= windowAfterOpenEvent; OperationTimeHepler.Instance.operationStartEvent -= operationStartEvent; OperationTimeHepler.Instance.operationEndEvent -= operationEndEvent; limitedTimePackageItemModel.UpdateLimitedTimePackageItem -= UpdateLimitedTimePackageItem; impactRankModel.inImpactRankUpdate -= InImpactRankUpdate; highBtnRecord = null; IsBool = true; } public bool IsplayAnimator { get { return m_IsplayAnimator; } set { m_IsplayAnimator = value; } } public CanvasGroup CanvasGroup { get { return m_CanvasGroup; } set { m_CanvasGroup = value; } } public void FadeOut()//出现 { if (m_IsplayAnimator && AnimatorPlayName.Count > 0) { m_Animator.Play(AnimatorPlayName[0]); if (this.transform.childCount > 0) { if (isPlayerUIeffect != null) { isPlayerUIeffect.StartPlayUIEffect(); } } } } public void FadeIn()//消失 { if (m_IsplayAnimator && AnimatorPlayName.Count > 0) { m_Animator.Play(AnimatorPlayName[1]); if (this.transform.childCount > 0) { if (isPlayerUIeffect != null) { isPlayerUIeffect.ObtainPlayUIEffect(); } } } } public void PositionNow()//立刻出现 { if (AnimatorPlayName.Count > 0) { if (this.gameObject.activeInHierarchy) { m_Animator.Play(AnimatorPlayName[0], 0, 1); } if (this.transform.childCount > 0) { if (isPlayerUIeffect != null) { isPlayerUIeffect.StartPlayUIEffect(); } } } } public void ImmediatelyDisappear()//立刻消失 { if (m_IsplayAnimator && AnimatorPlayName.Count > 0) { m_Animator.Play(AnimatorPlayName[1], 0, 1); if (this.transform.childCount > 0) { if (isPlayerUIeffect != null) { isPlayerUIeffect.ObtainPlayUIEffect(); } } } } } }