Exemplo n.º 1
0
        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;
     }
 }
Exemplo n.º 3
0
 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);
 }