public virtual void Update() //更新 { if (m_state == EffectState.Delay) { if (Time.realtimeSinceStartup - m_delayStartTime > Delay) //若Delay时间已到 { m_state = EffectState.Showing; //切显示特效状态 m_curStateStartTime = Timer.GetRealTimeSinceStartUp(); m_delayStartTime = 0; gameObject.SetActive(true); //把自己显示出来 DoShowEffect(); //播放显示特效 } } if (m_state == EffectState.Showing && !IsPlaying()) //若显示特效状态已经结束 { m_state = EffectState.Idle; //进入Idle状态 m_curStateStartTime = Timer.GetRealTimeSinceStartUp(); DoIdleEffect(); //播放Idle状态特效 } if (m_finishedFunc != null && m_state == EffectState.Hiding && !IsPlaying()) //播放结束响应 { UIWindow.WindowEffectFinished func = m_finishedFunc; m_finishedFunc = null; func(); } }
public virtual void HideEffect(UIWindow.WindowEffectFinished finishedFunc = null) //隐藏时的特效 { m_state = EffectState.Hiding; m_curStateStartTime = Timer.GetRealTimeSinceStartUp(); DoHideEffect(); m_finishedFunc = finishedFunc; }
public void SetFunc(UIWindow.WindowEffectFinished func) { m_finishedFunc = func; }