Beispiel #1
0
 /// <summary>
 /// 重置Entity;
 /// </summary>
 public void Reset()
 {
     DeAttachEntityObject();
     EventUnsubscribe();
     OnReset();
     _id                = 0;
     _enable            = false;
     _entityInitHandler = null;
     _entityLoadHandler = null;
 }
        /// <summary>
        /// 创建Entity;同步/异步完善;
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="go"></param>
        /// <param name="initHandler"></param>
        /// <returns></returns>
        public T CreateEntity <T>(GameObject go, ulong uid, string name, EntityInitEventHandler initHandler) where T : BaseEntity, new()
        {
            T _Entity = PoolMgr.Instance.Get <T>();//get from pool;

            if (AddEntity(_Entity))
            {
                _Entity.EntityInitHandler = initHandler;
                _Entity.Create(go, uid, name);
                return(_Entity);
            }
            else
            {
                LogUtil.LogUtility.PrintError("[EntityMgr]CreateEntity " + typeof(T).ToString() + " error!");
                return(null);
            }
        }