Я рекомендую использовать ScriptableObjects для создания ваших предметов, доспехов и оружия. Вам придется потратить час или два на их изучение, , но я думаю, вы будете намного счастливее с вашим дизайном, если вы пойдете по этому пути.
Представьте объект ScriptableObject как набор свойств (имя элемента, стоимость, сила атаки, сила защиты и т. Д.).Для каждого элемента в вашей игре вы создаете экземпляр объекта ScriptableObject.Эти экземпляры ScriptableObject затем становятся активами в вашем проекте Unity, как префаб или спрайт.Это означает, что вы можете перетащить их в свой проект и назначить их полям в MonoBehaviours.В результате вы сможете назначать снаряжение персонажу, перетаскивая его из представления проекта в Инспектор.
Вот пример того, как это будет выглядеть
Элемент.cs
public class Item : ScriptableObject
{
public string name;
public int cost;
public Sprite image;
}
Снаряжение .cs
public class Equipment : Item
{
public Slots slot;
}
public enum Slots
{
Body,
DoubleHanded,
Hands,
Head,
Feet,
Legs,
LeftHand,
RightHand
}
Weapon.cs
// CreateAssetMenu is what lets you create an instance of a Weapon in your Project
// view. Make a folder for your weapons, then right click inside that folder (in the
// Unity project view) and there should be a menu option for Equipment -> Create Weapon
[CreateAssetMenu(menuName = "Equipment/Create Weapon")]
public class Weapon : Equipment
{
public int attackPower;
public int attackSpeed;
public WeaponTypes weaponType;
}
public enum WeaponTypes
{
Axe,
Bow,
Sword
}
Armor.cs
[CreateAssetMenu(menuName = "Equipment/Create Armor")]
public class Armor : Equipment
{
public int defensePower;
}
Теперь создайте кучу оружия и брони в своем проекте.

Одна вещь, которая делает ScriptableObjects приятными, это то, что вы можете редактировать их в инспекторе, а не делать это с помощью кода (хотя вы можете сделать это тоже).

Теперь в вашем «персонаже» MonoBehaviour добавьте некоторые свойства для экипировки этого персонажа.
public class Character : MonoBehaviour
{
public Armor bodyArmor;
public Armor headArmor;
public Weapon weapon;
}
Теперь вы можете назначить свое оружие и броню своему персонажу в Инспекторе

Возможно, вы захотите что-то более приспособленное к вашим потребностям, чем мой пример, но это основы.Я рекомендую потратить некоторое время на просмотр ScriptableObjects.Прочитайте документы Unity, на которые я ссылался ранее, или посмотрите видео на YouTube.
Одной из сильных сторон Unity является то, что он позволяет выполнять большую часть проектирования и настройки с помощью редактора, а не с помощью кода, и ScriptableObjects усиливают это.