Esempio n. 1
0
    private Equipment Unequip(int slotIndex)
    {
        if (_equipment[slotIndex] != null)
        {
            if (_currentMeshes[slotIndex] != null)
            {
                Destroy(_currentMeshes[slotIndex].gameObject);
            }

            var oldEquipment = _equipment[slotIndex];
            SetEquipmentBlendShapes(oldEquipment, 0);
            _inventory.Add(oldEquipment);
            _equipment[slotIndex] = null;

            EquipmentChangedEvent?.Invoke(null, oldEquipment);

            return(oldEquipment);
        }
        return(null);
    }
Esempio n. 2
0
    public void Equip(Equipment equipment)
    {
        int       slotIndex    = (int)equipment.equipmentSlot;
        Equipment oldEquipment = Unequip(slotIndex);

        SetEquipmentBlendShapes(equipment, 100);

        EquipmentChangedEvent?.Invoke(equipment, oldEquipment);

        _equipment[slotIndex] = equipment;

        SkinnedMeshRenderer newMesh = Instantiate <SkinnedMeshRenderer>(equipment.mesh);

        newMesh.transform.parent  = targetMesh.transform;
        newMesh.bones             = targetMesh.bones;
        newMesh.rootBone          = targetMesh.rootBone;
        _currentMeshes[slotIndex] = newMesh;

        _inventory.Remove(equipment);
    }