コード例 #1
0
    public void OnObjectInteracted(IPlaceable placeable)
    {
        // If on placeable already placed item, then call "OnObjectInteracted" for that item.
        if (placeable.HavePlacedItem())
        {
            IInteractible interactible = placeable.GetPlacedItem().GetComponent <IInteractible>();
            OnObjectInteracted(interactible);
            return;
        }

        ItemType selectedItemType = UIManager.Instance.GetSelectedItemType();

        if (selectedItemType == ItemType.None)
        {
            return;
        }

        InventoryItem invItem = inventory.GetItem(selectedItemType);

        if (invItem.count == 0)
        {
            return;
        }

        invItem.count--;
        Vector3 pos  = placeable.GetItemPlacePos();
        Item    item = gameMap.SpawnItem(selectedItemType, pos);

        item.isInteractible = true;
        placeable.SetPlacedItem(item);
        UIManager.Instance.UpdateHUD(inventory);
    }