Demo2 Loot
Examples/Demo2 Loot/LootDemo.unity
Это пример slot-indexed инвентаря и связки игрового мира, событий и UI.
Что показывает демо
- сундуки как интерактивные world-объекты
- отдельные bindings для игрока и сундука
- переключения разных источников данных для DataBinding
- подбор/выбрасывание сценарии, связанные с миром
- мир не знает о UI напрямую
Как устроено
Ключевой момент примера: Chest и PlayerInteraction живут в игровом мире и не знают о конкретных UI-панелях. UI открывает и связывает только LootUIController.
Как работает
Открытие сундука:
PlayerInteractionнаходитIInteractable.- По действию игрока вызывается
Interact(...). Chestменяет состояние и публикует событие.LootUIControllerполучает это событие.- Контроллер активирует панель и вызывает
BindToChest(...). ChestInventoryDataBindingзагружает содержимое сундука в UI.
Перенос предметов:
- Игрок таскает предмет между inventory игрока и сундука.
- Стандартный transfer pipeline выполняет перенос.
- После успешного commit binding-и обновляют
ChestиPlayerInventoryData.
Когда брать этот пример за основу
- нужны сундуки, открывающиеся по взаимодействию
- нужен пример разделения логики игрового мира и UI инвентаря