Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 28
У меня есть 2 виджета инвентарь и генерирующиеся внутри него кнопки, как мне в кнопке получить ссылку на инвентарь?
Аватара пользователя
Пользователь
Сообщения: 469
Хорошей практикой является использовать GameInstance. Т.е. гейминстансе мы храним ссылку на наш инвентарь. В виджежете делаем переменную типа гейинстанс и простым кастом линкуем её к нашему гейм инстанс. А дальше в этом виджете будет доступен прямой доступ биндить переменные из инветаря к виджету.
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 2319
я не думаю что использовать гейм инстанс для буффера это хорошая практика в данном случае...
это обычно простое временное решение при разработке прототипа.

хорошая практика это логически-иерархическая зависимость владельцев обьектами.
должна быть потсроенна логическая иерархия и принадлежность обьектов, и по этой иерархии получать все необходимое.
тоесть кому виджет принадлежит от того и получать всю необходимую информацию. например в момент создания все передавать/брать/обновлять

для этого нужно избавиться от привычки создавать инстансы обьектов из несвязанных обьектов... как обычно любят в туторах длля новичком показывать.
потому что если в гейм инстанс засунуть скажем все "инвентари" из уровня, то это ничем не будет отличаться от "инвентарей" просто в уровне?
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
пацану надо кастануть хоть как нибудь, я думаю ему не до хорошего тона))
Аватара пользователя
Пользователь
Сообщения: 469
Как раз для инвентаря инстанс даже очень подходит так как при переходе на другой уровень он не уничтожается. Разница небольшая, но отпадает необходимость что то загружать сохранять, доступ прост из любого места. Скажу так инстанс как раз для этого и сделан. Зачем что то своё городить когда в уе это уже предусмотрено.Ну или их офф туторы тоже неверны )))))))))))))
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 2319
я не утверждаю что так не делают... я сам так делаю когда нужно какую-то ссылку у не связаных обьектов получить
(не с инвентарем прадва), просто не считаю это "хорошей практикой"...

это как раз самый простой и дилетантский выход - тупо буфер сооздать где-то(неважно где, гейм стейт, гейм инстанс, или создать обьект-менеджер и т.п.).
И у этого способа много недостатков. Например независимоть от класса гейм инстанса уже теряется.
С независимыми обьектами намного проще обращаться, и лучше по общему свойству анриаловских обьектов связь делать, а у любого обьекта всегда есть владелец. Что позволяет всегда получить ссылку на владельца(в принтах иногда нельзя, но С++ можно всегда) и через общий интерфейс получить нужные данные.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 28
Snake, честно не понял что ты имееш ввиду(в чем минус этого способа), я пока сделал так, а заодно и половину говнокода удалил, вроде так работает, так что спасибо всем
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
в чем минус этого способа

абстрагируемся от инвентаря, просто произвольный виджет который должен отобразиться на екране.
если делать буфер обмена в гейм инстансе то это будет частная зависимая реализация. в которойгейм инстанс просто лишний.
что делать если нужно отобразить... ну незнаю... скажем статы юнитов 100 шт. ? или иформацию о сундуках на уровне? кароче любую инфу в множественном числе. в гейм инстансе просто свалка ссылок переменных будет, ничем не отличающаяся от мира.
отобразить информацию только у выделенных обьектов? скажем 10шт из 100...?
и для каждого нового типа таких виджетов нужно опять чето писать в гейм инстансе... ну бред же. все должно работать независимо.

тоесть сундук - при взаимодействии создает свой виджет в который сам себя записал как владелец ...
виджет для получения информации обращается к владельцу.
в дочерним виджетам можно записать главный виджет
и опять есть доступ к сундуку, из дочернего получаем главный , из главного сундук, из сундука данные.
все не нужны буфферы никакие обмена.
полностью аналогично как поступают акторами или компонентами, курьезно было б еслиб компонет получал реф на актора-владельца используя гейм синтанс.
организовать нужно только общий интерфейс доступа, или методы доступа.
поправьте если я неправ.
_________________
we need to go deeper


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница