private void OnDelaySpawnTimer() { if (m_listDelaySpawnEffectParam.Count <= 0) { return; } SceneEffectParamBase param = null; for (int i = m_listDelaySpawnEffectParam.Count - 1; i >= 0; --i) { param = m_listDelaySpawnEffectParam[i]; if (param == null || param.IsPlaying()) { m_listDelaySpawnEffectParam.Remove(param); continue; } if (param.IsDelayTimeExit()) { _CreateSceneEffect(param); m_listDelaySpawnEffectParam.Remove(param); } } }
private void OnDurationTimer() { if (m_listActiveEffectParam.Count <= 0) { return; } SceneEffectParamBase param = null; for (int i = m_listActiveEffectParam.Count - 1; i >= 0; --i) { param = m_listActiveEffectParam[i]; if (param == null) { continue; } int nEffectID = param.AttachEffectID; //如果在持续时间内EffectNode跟随父节点释放了的话,就直接移除吧 if (param.ReturnComponent == null) { m_listActiveEffectParam.Remove(param); param = null; } else if (param.IsPlaying()) { if (param.IsDurationTimeExit()) { //GameObject.DestroyObject(param.ReturnComponent.gameObject); var temp = param.ReturnComponent.gameObject; m_dicEffectIDResNodeUsed[nEffectID].DestroyInstanceRes(ref temp); m_listActiveEffectParam.Remove(param); param = null; } } } }