public void RecycleAllRenderEffects() { var enumerator = m_nodes.GetEnumerator(); while (enumerator.MoveNext()) { RenderEffectNode node = enumerator.Current.Value; for (int i = 0; i < node.m_render_effects.Count; ++i) { RenderEffectInfo info = node.m_render_effects[i]; RenderEffectData config = GetRenderWorld().GetRenderEffectData(info.m_render_effect_cfgid); if (info.m_task != null) { RenderTask.Recycle(info.m_task); info.m_task = null; } if (info.m_go != null) { info.m_go.transform.parent = null; UnityResourceManager.Instance.RecycleGameObject(config.m_prefab, info.m_go); info.m_go = null; } node.m_render_effects.RemoveAt(i); RecyclableObject.Recycle(info); } } }
public void Reset() { m_state = AccumulateOffsetState; m_command_crc = 0; m_offset = Vector3.zero; if (m_task != null) { m_task.Cancel(); RenderTask.Recycle(m_task); m_task = null; } }
void RecycleRenderEffectInfo(RenderEffectInfo info, RenderEffectData config) { if (info.m_task != null) { RenderTask.Recycle(info.m_task); info.m_task = null; } if (info.m_go != null) { if (config == null) { config = GetRenderWorld().GetRenderEffectData(info.m_render_effect_cfgid); } info.m_go.transform.parent = null; UnityResourceManager.Instance.RecycleGameObject(config.m_prefab, info.m_go); info.m_go = null; } RecyclableObject.Recycle(info); }