예제 #1
0
 /// <summary>
 /// 销毁组件;
 /// </summary>
 /// <param name="comp"></param>
 /// <returns></returns>
 public bool DestroyComponent(AbsComponent comp)
 {
     for (int i = 0; i < _componentList.Count; i++)
     {
         var targetComp = _componentList[i];
         if (targetComp == comp)
         {
             comp.UnInitialize();
             _componentList.Remove(comp);
             return(true);
         }
     }
     LogHelper.PrintError("[ComponentMgr]DestroyComponent " + comp.GetType().ToString() + " error,can not find the component!");
     return(false);
 }
예제 #2
0
 /// <summary>
 /// 移除组件;
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="comp"></param>
 /// <returns></returns>
 public bool ReleaseComponent <T>(AbsComponent comp) where T : AbsComponent, new()
 {
     if (comp as T == null)
     {
         LogHelper.PrintError("[ComponentMgr]ReleaseComponent error:comp as" + typeof(T).ToString() + " is null!");
         return(false);
     }
     for (int i = 0; i < _componentList.Count; i++)
     {
         var targetComp = _componentList[i];
         if (targetComp == comp)
         {
             comp.UnInitialize();
             PoolMgr.Instance.ReleaseCsharpObject <T>(comp as T);
             _componentList.Remove(targetComp);
             return(true);
         }
     }
     LogHelper.PrintError("[ComponentMgr]ReleaseComponent " + typeof(T).ToString() + " error,can not find the component!");
     return(false);
 }