Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
        }
    }