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); }