コード例 #1
0
    void UseItem(GameObject obj)
    {
        IConsumable item = obj.GetComponent <IConsumable>();

        //Call the item's use function
        item.Use(player);

        if (player.Bag.GetComponent <IBag>().Remove(obj, playerObject) <= 0)
        {
            ClearItemInfo();
        }

        //Reload the inventory
        PopulateInventory();
    }
コード例 #2
0
        public bool TryPickupItem()
        {
            if (!ground.IsItemOnGround)
            {
                return(false);
            }

            Item item = ground.PickUpItem();

            if (item.CanEquip)
            {
                Item oldItem = item.Equip(this);
                ground.DropItem(oldItem, transform.position);
                inventoryChanged.Invoke(EquippedItems);
            }
            else
            {
                // might be better to fold this into Equip so that all items can be 'equipped'
                IConsumable itemAsConsumable = (IConsumable)item;
                itemAsConsumable.Use(transform.parent.gameObject);
            }
            return(true);
        }