// Creates a list of pooled hitsparks that we can use and reuse. private void MakeHitSparkList() { hitSparkList = new List <Hitspark>(); for (int i = 0; i < LIST_SIZE; i++) { Hitspark obj = (Hitspark)Instantiate(hitspark, transform.position, Quaternion.identity); obj.gameObject.SetActive(false); hitSparkList.Add(obj); } }
// Finds and activates the first inactive hitspark in our object pool. private void ActHitSpark() { for (int i = 0; i < LIST_SIZE; i++) { Hitspark curr = hitSparkList[i]; if (!curr.gameObject.activeInHierarchy) { curr.gameObject.SetActive(true); curr.gameObject.transform.position = transform.position; break; } } }