Ejemplo n.º 1
0
 public void ReleaseResource(ResourcePoolType type, GameObject returnUnit)
 {
     _resourcePool.ReleaseObject(type, returnUnit);
     ObjectUtil.MoveToTransformParent(returnUnit.transform, transform);
     returnUnit.SetActive(false);
     //Debug.LogWarning(" ReleaseResource type : " + type);
 }
Ejemplo n.º 2
0
    public ResourcePool GetResourcePool(ResourcePoolType resourcePoolType)
    {
        ThrowIfDisposed();
        ResourcePool resourcePool;

        _resourcePools.TryGetValue(resourcePoolType, out resourcePool);
        return(resourcePool);
    }
Ejemplo n.º 3
0
 // 无视是否已释放
 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;
 }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
 public void SetActivedPoolType(ResourcePoolType resourcePoolType)
 {
     ThrowIfDisposed();
     _activedPoolType = resourcePoolType;
 }
Ejemplo n.º 6
0
 public ResourcePool(ResourceManager resourceManager, ResourcePoolType resourcePoolType)
 {
     Debug.Assert(resourceManager != null);
     _resourceManager  = resourceManager;
     _resourcePoolType = resourcePoolType;
 }