예제 #1
0
        public T Get()
        {
            GameObject obj       = _prefab.Instantiate();
            T          component = obj.GetComponent <T>();

            OnNew?.Invoke(component);
            return(component);
        }
예제 #2
0
        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);
        }