Как использовать предметы (Их поведение) в инвентаре как в Minecraft в Unity?
Объясните мне, пожалуйста, как я могу использовать предметы, пока они находятся в активном хот баре инвентаря.
Как ~в Майнкрафте. Выбираешь предмет и он выполняет свою функцию при нажатии определенных кнопок (Меч атакует, Лук стреляет, Еда поедается, И т.д)
Чтобы каждый предмет можно было (Желательно) отдельно настроить и вынести в метод общий для всех Use();
У меня была мысль использовать через префабы:
- Выбрал предмет в хот баре, создал на игроке экземпляр, который будет на себе иметь класс ItemBehaviour c реализацией метода Use().
-Нажимаешь X кнопку выполняется действие Use();
-Потом скролишь на другой предмет, создается его экземпляр. И так при выборе каждого элемента в хот баре. Но:
- Очень, как мне кажется, ресурсоемкая такая задачка будет.
Что я имею:
- abstract class ItemDataBase: SqriptableObject, с последующим наследованием для других классов "конструкторов" неизменяемых свойств
- class ItemStateBase, аналогично, что и с Data, но хранит в себе состояние предмета, то что изменяется(Прочность у Инструментов, Значение испорченности у еды и т.д)
И каждое ItemStateBase имеет в себе ссылку на опр Data;
- abstract class InventoryBase хранит список Состояний. Его наследует class CharacterInventory
- abstract class InventoryUI хранит список UI Слотов. Его наследует class CharacterInventoryUI