1using System.Collections.Generic;
14 public List<Transform>
pooledList =
new List<Transform>();
20 holder =
new GameObject().transform;
21 holder.SetParent(manager.transform);
25 public Transform
Spawn(Transform parent)
27 Transform transform =
null;
30 transform = Object.Instantiate(
original);
39 transform = Object.Instantiate(
original);
42 if (Application.isEditor)
44 transform.SetAsLastSibling();
46 transform.SetParent(parent, worldPositionStays:
false);
52 trans.SetParent(
holder, worldPositionStays:
false);
63 public Dictionary<string, PoolGroup>
groups;
72 groups =
new Dictionary<string, PoolGroup>();
73 base.gameObject.SetActive(value:
false);
76 public static T
Spawn<T>(T original, Component parent =
null) where T : Component
78 return current.
_Spawn(original.name, original.transform, parent?.transform).GetComponent<T>();
81 public static T
Spawn<T>(
string id,
string path, Transform parent =
null)
86 public static Transform
Spawn(
string id,
string path, Transform parent)
96 private Transform
_Spawn(
string id,
string path, Transform parent)
99 if (poolGroup ==
null)
103 return poolGroup.
Spawn(parent);
106 private Transform
_Spawn(
string id, Transform original, Transform parent)
109 if (poolGroup ==
null)
113 return poolGroup.
Spawn(parent);
119 groups.Add(
id, poolGroup);
125 return CreateGroup(
id, Resources.Load<Transform>(path));
130 if (Application.isPlaying)
134 Object.Destroy(c.gameObject);
150 if (poolGroup ==
null)
154 poolGroup.
Despawn(c.transform);
162 Object.Destroy(c.gameObject);
List< Transform > pooledList
Transform Spawn(Transform parent)
void Despawn(Transform trans)
PoolGroup(Transform original, PoolManager manager, string _id)
static void Despawn(Component c)
static PoolManager current
PoolGroup CreateGroup(string id, string path)
static bool TryDespawn(Component c)
static T Spawn< T >(T original, Component parent=null)
Transform _Spawn(string id, Transform original, Transform parent)
static void DespawnOrDestroy(Component c)
static PoolGroup GetGroup(string id)
Dictionary< int, PoolGroup > spawnedList
Transform _Spawn(string id, string path, Transform parent)
Dictionary< string, PoolGroup > groups
PoolGroup CreateGroup(string id, Transform original)
static Transform Spawn(string id, string path, Transform parent)