private EquippableObject InstantiateObject(Item item, Guid itemInstanceId) { EquippableObject itemObject = Instantiate(AssetLoader.instance.Get <EquippableObject>($"Prefabs/{item.Id}"), transform.position, transform.rotation); itemObject.ItemInstanceId = itemInstanceId; itemObject._isEquipped = true; return(itemObject); }
public void DestroyEquippedItem(Guid id) { EquippableObject equippableObject = equippedItems.FirstOrDefault(x => x.Value != null && x.Value.ItemInstanceId == id).Value; if (equippableObject != null) { Destroy(equippableObject.gameObject); equippedItems[equippableObject.Item.SlotType] = null; GameEvents.instance.EquippedItemChanged(equippableObject.Item.SlotType); } }
private void EquippedItemChanged(SlotType slotType) { if (SlotType == slotType) { EquippableObject equippableObject = Player.instance.equippedItems[slotType]; if (equippableObject == null) { Image.sprite = null; Image.color = new Color(255, 255, 255, 0); } else { Image.sprite = AssetLoader.instance.Get <Sprite>($"Sprites/{equippableObject.Item.Id}"); Image.preserveAspect = true; Image.color = new Color(255, 255, 255, 255); } } }
public void EquipItem(Item item, Guid itemInstanceId) { EquippableObject equippedItemObject = equippedItems[item.SlotType]; if (equippedItemObject != null) { if (equippedItemObject.ItemInstanceId == itemInstanceId) { Destroy(equippedItemObject.gameObject); equippedItems[item.SlotType] = null; } else { Destroy(equippedItemObject.gameObject); equippedItems[item.SlotType] = InstantiateObject(item, itemInstanceId); } } else { equippedItems[item.SlotType] = InstantiateObject(item, itemInstanceId); } GameEvents.instance.EquippedItemChanged(item.SlotType); }
private void Start() { initialPosition = transform.position; rigidbody = GetComponent <Rigidbody>(); equippableObject = GetComponent <EquippableObject>(); }