@Take_it_and_do

Как использовать предметы (Их поведение) в инвентаре как в 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

На самом деле всех классов намного больше.
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы