public static GameObjectContainer Process(AssetTrackMgr assetTrackMgr, GameObjectContainer container, string path, GameObject prefab, int disposeTime, int capcity) { container.assetTrackMgr = assetTrackMgr; container.path = path; container.prefab = prefab; container.DisposeTime = disposeTime; container.Capcaity = capcity; return(container); }
public static void Dispose(GameObjectContainer container) { container.Release(); container.path = null; container.prefab = null; container.assetTrackMgr = null; container.refCount = 0; container.Capcaity = AssetTrackMgr.CAPCITY_SIZE; container.DisposeTime = AssetTrackMgr.DISPOSE_TIME_VALUE; }
public void DiscardGameObject(string path, GameObject gameObject) { GameObjectContainer container = null; if (gameObjectContainerMap.TryGetValue(path, out container)) { container.Discard(gameObject); } else { Debug.LogError("AssetTrackMgr gameobject is not created by container pool,just destory it! " + path); GameObject.Destroy(gameObject); } }
public void ReleaseGameObjectContainer(GameObjectContainer container) { gameobjectContainerPool.Release(container); }
public GameObjectContainer GetGameObjectContainer(AssetTrackMgr assetTrackMgr, string path, GameObject prefab, int disposeTime, int capcity) { var container = gameobjectContainerPool.Get(); return(GameObjectContainer.Process(assetTrackMgr, container, path, prefab, disposeTime, capcity)); }