Example #1
0
 void ClearPreLoadEntity()
 {
     if (m_preLoadDic != null)
     {
         var iter = m_preLoadDic.GetEnumerator();
         while (iter.MoveNext())
         {
             var objArray = iter.Current.Value;
             for (int i = 0; i < objArray.Length; i++)
             {
                 Engine.IRenderObj obj = objArray[i];
                 if (obj != null)
                 {
                     Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
                     if (rs != null)
                     {
                         if (rs.CanRemovePreLoad(obj.GetID()))
                         {
                             rs.RemoveRenderObj(obj);
                         }
                     }
                 }
             }
             objArray = null;
         }
         m_preLoadDic.Clear();
     }
 }
Example #2
0
    private void ClearSequencerTempObject()
    {
        for (int i = 0; i < m_SequencerTempObject.Count; i++)
        {
            GameObject temp = m_SequencerTempObject[i];
            if (temp != null)
            {
                GameObject.DestroyObject(temp);
            }
        }
        m_SequencerTempObject.Clear();


        for (int i = 0; i < m_SequencerTempRender.Count; i++)
        {
            Engine.IRenderObj temp = m_SequencerTempRender[i];
            if (temp != null)
            {
                m_RenderSystem.RemoveRenderObj(temp);
            }
        }
        m_SequencerTempRender.Clear();


        for (int i = 0; i < m_SequencerTempEffect.Count; i++)
        {
            Engine.IEffect temp = m_SequencerTempEffect[i];
            if (temp != null)
            {
                m_RenderSystem.RemoveEffect(temp);
            }
        }
        m_SequencerTempEffect.Clear();


        Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem();
        if (es == null)
        {
            return;
        }
        for (int i = 0; i < m_SequencerTempEntity.Count; i++)
        {
            Client.IEntity entity = m_SequencerTempEntity[i];
            if (entity != null)
            {
                es.RemoveEntity(entity);
            }
        }
        m_SequencerTempEntity.Clear();
    }
Example #3
0
    public void Release()
    {
        Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs == null)
        {
            Engine.Utility.Log.Error("获取RenderSystem失败!");
            return;
        }


        if (m_PuppetObj != null)
        {
            ClientGlobal.Instance().GetEntitySystem().RemoveEntity(m_PuppetObj);
            m_PuppetObj = null;
            m_RenderObj = null;
        }
        if (m_RenderObj != null)
        {
            rs.RemoveRenderObj(m_RenderObj);
        }

        if (m_Camera != null)
        {
            GameObject.DestroyImmediate(m_Camera);
        }
        if (m_RenderText != null)
        {
            m_RenderText.Release();
            GameObject.DestroyImmediate(m_RenderText);
            m_RenderText = null;
        }


        if (m_Root != null)
        {
            GameObject.DestroyImmediate(m_Root);
            m_Root = null;
        }
    }