private void DeactivateObject(PoolingBehaviour subject) { _activeObjects.Remove(subject); _inactiveObjects.Add(subject); subject.gameObject.SetActive(false); }
public PoolingBehaviour Spawn(int id, Vector3 position, Quaternion rotation, Transform transform) { PoolingBehaviour t = Spawn(id, position, transform); t.transform.rotation = rotation; return(t); }
public PoolingBehaviour Spawn(int id, Vector3 position, Transform transform) { PoolingBehaviour t = Spawn(id, transform); t.transform.position = position; return(t); }
public PoolingBehaviour Spawn(int id, Vector3 position, Quaternion rotation) { PoolingBehaviour t = Spawn(id, null); t.transform.position = position; t.transform.rotation = rotation; return(t); }
public int AddPrefab(PoolingBehaviour prefabs) { if (pooledGobjects == null) { pooledGobjects = new List <PoolingType>(); } if (list_Pooling == null) { list_Pooling = new List <PoolingType>(); } int id = NextCode; list_Pooling.Add(new PoolingType(prefabs, id)); return(id); }
public PoolingBehaviour Instantiate() { PoolingBehaviour subject = null; if (_inactiveObjects.Count == 0) { subject = CreateNewObject(); } else { subject = _inactiveObjects[0]; _inactiveObjects.RemoveAt(0); _activeObjects.Add(subject); subject.Reset(); } return(subject); }
PoolingBehaviour CreateGobject(int id) { PoolingBehaviour prefab = null; if (list_Pooling == null || list_Pooling.Count == 0) { } else { foreach (PoolingType poolingType in list_Pooling) { if (poolingType.id == id) { prefab = poolingType.gameobject; break; } } } PoolingBehaviour ins = GameObject.Instantiate(prefab); pooledGobjects.Add(new PoolingType(ins, id)); return(ins); }
public PoolingBehaviour Spawn(int id, Transform transform) { PoolingBehaviour t = null; if (pooledGobjects != null && pooledGobjects.Count != 0) { for (int i = pooledGobjects.Count - 1; i > -1; i--) { if (pooledGobjects[i].gameobject == null) { pooledGobjects.RemoveAt(i); continue; } if (pooledGobjects[i].id == id && pooledGobjects[i].gameobject.isReady) { t = pooledGobjects[i].gameobject; break; } } } if (t == null) { t = CreateGobject(id); } if (transform == null) { t.transform.parent = parentPooling; t.transform.position = Vector3.zero; } else { t.transform.parent = transform; t.transform.position = transform.position; } t.Begin(); return(t); }
private void DeactivateObject(PoolingBehaviour subject) { _activeObjects.Remove(subject); _inactiveObjects.Add(subject); subject.gameObject.SetActive(false); }
public PoolingType(PoolingBehaviour prefabs, int id) { this.id = id; this.gameobject = prefabs; }