public void Hide() { if (effectPlayer != null) { effectPlayer.HideEffect(); playingState = UIWindowStateEnum.PlayingHideEffect; } }
public void Show() { effectPlayer = transform.GetComponent<UIEffectPlayer>(); if (effectPlayer != null) { effectPlayer.ShowEffect(); playingState = UIWindowStateEnum.PlayingShowEffect; } }
public virtual void OnShowEffectPlayOver() { uiWindowState = UIWindowStateEnum.Show; if (m_showFinishEffect != null) { WindowEffectFinished func = m_showFinishEffect; //这种写法是为了防止循环调用,若在Func里面再调用到OnShowEffectPlayOver时,不重复执行func m_showFinishEffect = null; func(); } }
public virtual void OnHideEffectPlayOver() { uiWindowState = UIWindowStateEnum.Hide; EnableColliders(true); if (m_hideFinishEffect != null) { WindowEffectFinished func = m_hideFinishEffect; //这种写法是为了防止循环调用,若在Func里面再调用到OnHideEffectPlayOver时,不重复执行func m_hideFinishEffect = null; func(); } }
public virtual void ShowWindow() { if (uiWindowState == UIWindowStateEnum.Show || uiWindowState == UIWindowStateEnum.PlayingShowEffect) { return; } if (uiWindowState == UIWindowStateEnum.Hide) { OnHideEffectPlayOver(); } DoShowWindow(); bool bShowEffect = false; foreach (UIEffectPlayer player in mEffectPlayerList) { if (player.PlayWhileShowWindow) { player.ShowEffect(); bShowEffect = true; } } if (bShowEffect) { uiWindowState = UIWindowStateEnum.PlayingShowEffect; } else { uiWindowState = UIWindowStateEnum.Show; } OnShow(); UpdateUIData(); UpdateLanguage(); if (!bShowEffect) { OnShowEffectPlayOver(); } }
public void Update() { if (effectPlayer != null) { if (playingState == UIWindowStateEnum.PlayingShowEffect) { if (!effectPlayer.IsPlaying()) { playingState = UIWindowStateEnum.Show; } } if (playingState == UIWindowStateEnum.PlayingHideEffect) { if (!effectPlayer.IsPlaying()) { playingState = UIWindowStateEnum.Hide; } } } }
public virtual void HideWindow() { if (uiWindowState == UIWindowStateEnum.Hide || uiWindowState == UIWindowStateEnum.PlayingHideEffect) { return; } if (uiWindowState == UIWindowStateEnum.PlayingShowEffect) { OnShowEffectPlayOver(); } EnableColliders(false); bool bHideEffect = false; foreach (UIEffectPlayer player in mEffectPlayerList) { if (player.PlayWhileHideWindow) { player.HideEffect(); bHideEffect = true; } } if (bHideEffect) //If there is hide effect, don't hide window here, hide window when hide effect play over { uiWindowState = UIWindowStateEnum.PlayingHideEffect; } else { uiWindowState = UIWindowStateEnum.Hide; DoHideWindow(); } OnHide(); if (!bHideEffect) { OnHideEffectPlayOver(); } }