public void ReleaseResource(ResourcePoolType type, GameObject returnUnit) { _resourcePool.ReleaseObject(type, returnUnit); ObjectUtil.MoveToTransformParent(returnUnit.transform, transform); returnUnit.SetActive(false); //Debug.LogWarning(" ReleaseResource type : " + type); }
public ResourcePool GetResourcePool(ResourcePoolType resourcePoolType) { ThrowIfDisposed(); ResourcePool resourcePool; _resourcePools.TryGetValue(resourcePoolType, out resourcePool); return(resourcePool); }
// 无视是否已释放 private void DoReset() { foreach (var resourceDataProvider in _resourceDataProviders) { resourceDataProvider.Dispose(); } _resourceDataProviders.Clear(); foreach (var resourcePool in _resourcePools) { resourcePool.Value.Clear(); } _resourcePools.Clear(); _activedPoolType = ResourcePoolType.Global; }
public void GetResource <T>(ResourcePoolType type, GameObject prefab, ActionObject <T> callback) where T : Component { if (_resourcePool.GetObjectCount(type) > 0) { GameObject gObject = _resourcePool.GetObject(type); callback(gObject.GetComponent <T>()); gObject.SetActive(true); //Debug.LogWarning(" GetResource1 type : " + type + " / name : " + gObject.name); } else { StartCoroutine(CreateResource(prefab, callback)); //Debug.LogWarning(" GetResource2 type : " + type); } }
public void SetActivedPoolType(ResourcePoolType resourcePoolType) { ThrowIfDisposed(); _activedPoolType = resourcePoolType; }
public ResourcePool(ResourceManager resourceManager, ResourcePoolType resourcePoolType) { Debug.Assert(resourceManager != null); _resourceManager = resourceManager; _resourcePoolType = resourcePoolType; }