/// <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>()); } }
/// <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); }