1
This commit is contained in:
@@ -37,9 +37,30 @@ namespace BITKit
|
||||
{
|
||||
Prefab = _Prefabs[name],
|
||||
OnReturn = null,
|
||||
OnSpawn = OnSpawnInternal
|
||||
};
|
||||
return pool;
|
||||
|
||||
void OnSpawnInternal(Transform newObject)
|
||||
{
|
||||
OnSpawn(name,newObject);
|
||||
}
|
||||
|
||||
}
|
||||
private static void OnSpawn(string newName,Transform newObject)
|
||||
{
|
||||
if (newObject.TryGetComponent<IPoolObject>(out var obj) is false) return;
|
||||
obj.EnabledHandle.AddListener(OnEnabled);
|
||||
// BIT4Log.Log<PoolService>($"Adding {newObject.name} to pool");
|
||||
return;
|
||||
void OnEnabled(bool obj)
|
||||
{
|
||||
if(obj)return;
|
||||
Release(newName,newObject);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[SerializeField] private SerializedDictionary<Transform,int> initialCapacity;
|
||||
|
||||
private void Start()
|
||||
@@ -52,6 +73,7 @@ namespace BITKit
|
||||
DefaultCapacity = value,
|
||||
Root = transform,
|
||||
OnReturn = null,
|
||||
OnSpawn =OnSpawnInternal
|
||||
};
|
||||
_Prefabs.TryAdd(key.name, key);
|
||||
_Pools.TryAdd(key.name, pool);
|
||||
@@ -65,6 +87,12 @@ namespace BITKit
|
||||
x.gameObject.SetActive(false);
|
||||
pool.Return(x);
|
||||
}
|
||||
|
||||
continue;
|
||||
void OnSpawnInternal(Transform newObject)
|
||||
{
|
||||
OnSpawn(key.name,newObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user