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