예제 #1
0
        /// <summary>
        /// 获得基类
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="iType"></param>
        /// <param name="bUserUse"></param>
        /// <returns></returns>
        public static T GetBase <T>(int iType, bool bUserUse = false) where T : Spirit, new()
        {
            //#if UNITY_EDITOR || UNITY_DEBUG
            if (!mStore.ContainsKey(iType))
            {
                Debug.LogError("ResStore error :  Cannot find resource type " + iType);
                return(null);
            }
            //#endif

            ResContainer arrContainer = mStore[iType];
            RES_Struct   res          = arrContainer.GetNewRes();

            res.bUserUse = bUserUse;
            res.bUsed    = true;

            if (!res.bAddComponented)
            {
                res.com = (T)res.obj.GetComponent <T>();
                if (!res.com)
                {
                    res.com = (T)res.obj.AddComponent <T>();
                }
                res.com.iInstanceType = iType;
                res.com.iInstanceId   = res.iInstanceId;
                res.bAddComponented   = true;
                return((T)res.com);
            }
            else
            {
                return((T)res.obj.GetComponent <T>());
            }
        }
예제 #2
0
        /// <summary>
        /// 获得对象(需要手动删除)
        /// </summary>
        /// <param name="iType"></param>
        /// <returns></returns>
        public static GameObject Get(int iType)
        {
            ResContainer arrContainer = mStore[iType];
            RES_Struct   res          = arrContainer.GetNewRes();

            res.bUserUse = true;
            res.bUsed    = true;
            return(res.obj);
        }