public T Get() { GameObject obj = _prefab.Instantiate(); T component = obj.GetComponent <T>(); OnNew?.Invoke(component); return(component); }
public T Get() { T obj = _objects.FirstOrDefault(x => x.Ready == true); if (obj == null) { obj = _prefab.Instantiate().GetComponent <T>(); _objects.Add(obj); OnNew?.Invoke(obj); } obj.EnableSelf(); return(obj); }
private IEnumerator InternalSpawn(int amount, float delay, IContentPrefab prefab) { for (int i = 0; i < amount; i++) { OnSpawn?.Invoke(prefab.Instantiate()); if (i != amount - 1) { yield return(UnityUtils.WaitForFixedSeconds(delay)); } } OnFinished?.Invoke(); Destroy(gameObject); }