예제 #1
0
    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);
    }
예제 #2
0
    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);
            }
        }
    }
예제 #4
0
    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);
    }
예제 #5
0
 private void Start()
 {
     initialPosition  = transform.position;
     rigidbody        = GetComponent <Rigidbody>();
     equippableObject = GetComponent <EquippableObject>();
 }