public void FreePickup(ItemPickup pickup) { int pickupType = 0; for (int i = 0; i < pickupPrefabs.Length; i++) { if (pickupPrefabs[i].GetType() == pickup.GetType()) { pickupType = i; break; } } pickup.gameObject.SetActive(false); pickupPools[pickupType].Enqueue(pickup); activePickups.Remove(pickup); }
ItemPickup GetPickupOfType(ItemPickup pickup) { int pickupType = 0; for (int i = 0; i < pickupPrefabs.Length; i++) { if (pickupPrefabs[i].GetType() == pickup.GetType()) { pickupType = i; break; } } if (pickupPools[pickupType].Count > 0) { return(pickupPools[pickupType].Dequeue()); } else { ItemPickup item = Instantiate(pickupPrefabs[pickupType]); item.transform.parent = spawnsParent; return(item); } }