private void DoInitialize() { containerTransform = PersistentUObjectHelper.CreateTransform(POOL_ROOT_NAME); UpdateManager.GetInstance().AddUpdater(this); PoolCategory globalCategory = CreateCategory(GLOBAL_CATEGORY_NAME); GameObject rootGObject = new GameObject("Root GObject"); PoolGroup rootGObjGroup = globalCategory.CreateGroup(GLOBAL_GOBJ_ROOT_GROUP_NAME, TemplateType.RuntimeInstance, rootGObject); rootGObjGroup.SetPreload(10, 1, null); }
/// <summary> /// 删除指定的缓存池 /// </summary> /// <param name="name">资源唯一标签,一般使用资源路径</param> public void DeleteGroup(string name) { PoolGroup itemGroup = GetGroup(name); if (itemGroup != null) { itemGroupDic.Remove(name); itemGroup.DoDestroy(); } else { PoolLogger.Warning(PoolUtill.LOG_TAG, "The pool is not found.name = " + name); } }
/// <summary> /// 使用给定的GameObject创建缓存池 /// </summary> /// <param name="itemName">资源唯一标签,一般使用资源路径</param> /// <param name="itemTemplate">模板GameObject</param> /// <returns></returns> public PoolGroup CreateGroup(string itemName, TemplateType itemType, GameObject itemTemplate) { if (itemTemplate == null) { PoolLogger.Error(PoolUtill.LOG_TAG, "Template is Null"); return(null); } if (!itemGroupDic.TryGetValue(itemName, out PoolGroup itemGroup)) { itemGroup = new PoolGroup(Name, categoryTransform, itemName, itemType, itemTemplate); itemGroupDic.Add(itemName, itemGroup); return(itemGroup); } PoolLogger.Warning(PoolUtill.LOG_TAG, "The pool has been created.uniqueName = " + itemName); return(null); }