using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjSpawner : MonoBehaviour { [SerializeField] private GameObject objPrefab; [SerializeField] private float spawnRate; [SerializeField] private int amount; [SerializeField] private List pool; private int index = 0; private int firstIndex = 0; // Start is called before the first frame update void Start() { for (int i = 0; i < amount; i++) { GameObject obj = Instantiate(objPrefab, this.transform); obj.SetActive(false); pool.Add(obj); } //TODO add trigger start InvokeRepeating("Spawn",0, spawnRate); } private void Spawn(){ if(index < amount){ pool[index].transform.position = transform.position; pool[index].transform.rotation = transform.rotation; Rigidbody rb = pool[index].GetComponent(); if(rb != null){ rb.velocity = Vector3.zero; rb.angularVelocity = Vector3.zero; } pool[index].SetActive(true); index++; }else{ pool[firstIndex].SetActive(false); index = firstIndex; firstIndex = firstIndex+1%pool.Count-1; Spawn(); } } // Update is called once per frame void Update() { } }