Пример #1
0
    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);
            }
        }
    }
Пример #2
0
    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;
                }
            }
        }
    }