public IGameObject CreateGameObj(ref string strObjFileName, CreateGameObjectEvent callBack, object custumParam = null, TaskPriority ePriority = TaskPriority.TaskPriority_Normal, bool bCacheObj = true, bool bCacheForever = false) { List <IGameObject> objList = null; IGameObject objNew = null; if (bCacheObj) { if (m_mapRenderObjIdle.TryGetValue(strObjFileName, out objList)) // 缓存池里面有数据 { if (objList != null) { while (objList.Count > 0) { if (objList[0].GetGameObject() != null) { objNew = objList[0]; objList.RemoveAt(0); objNew.SetCustomData(custumParam); if (callBack != null) { callBack(objNew, custumParam); } return(objNew); } else { objList.RemoveAt(0); } } } } if (!m_lstCacheRenderObj.Contains(strObjFileName)) { m_lstCacheRenderObj.Add(strObjFileName); } } // 创建对象 { GameObj obj = new GameObj(); obj.CreateGameObject(ref strObjFileName, callBack, custumParam, ePriority); obj.bCacheForever = bCacheForever; objNew = obj; objNew.SetCustomData(custumParam); } return(objNew); }
public void CreateGameObject(ref string strObjName, CreateGameObjectEvent callBack, object custumParam = null, TaskPriority ePriority = TaskPriority.TaskPriority_Normal) { m_callback = callBack; m_strObjName = strObjName; m_prefab = AssetManager.Instance().CreatePrefab(strObjName, OnCreatePrefab, custumParam, ePriority); }
public IGameObject CreateGameObject(string strPrefabName, CreateGameObjectEvent callBack, object custumParam = null, TaskPriority ePriority = TaskPriority.TaskPriority_Normal, bool bCacheObj = true, bool bCacheForever = false) { return(RenderObjManager.Instance().CreateGameObj(ref strPrefabName, callBack, custumParam, ePriority, bCacheObj, bCacheForever)); }