несколько игроков, как лучше реализовать обновление чтобы данные о предметах в ящике показывались только тем игрокам, которые в него заглянули? В GetLifetimeReplicatedProps вроде как нет возможности указать отдельных игроков. А задача вроде как должна быть распространённая, и наверное велосипед делать не стоит.
DOREPLIFETIME_CONDITION(classname, property, COND_Custom); + DOREPLIFETIME_ACTIVE_OVERRIDE
почитал документацию и не понимаю, как мне тут определить нужных клиентов?
А что значит " заглянуть "?
подошёл игрок к ящику, открыл его содержимое, т.е. отобразился виджет на клиенте и этому клиенту надо показать содержимое ящика в виджете, одновремено в ящик могут заглянуть несколько игроков. И если один игрок положил в ящик что-то оно должно появиться у другого игрока(игроков) открывших ящик, а тем кто рядом бегает но ящик не открыл можно не реплицировать содержимое
и NetCullDistance + какой нибудь OnRep тебе тут не хватает?
по идее нет, надо фиксировать факт открытия виджета конкретными игроками, иначе будет лишняя нагрузка от просто пробегающих мимо, и если для ящика это ещё будет не критично, но потом появится склад, а в нём уже может быть много всякого положено
Еслия правильно понял, то вам надо разделить сущности. Т.е. ЯЩИК с которым можно взаимодействовать это актор, который хранит в себе ссылку на СОДЕРЖИМОЕ ящика. СОДЕРЖИМОЕ реплицировать только после взаимодействия с ЯЩИКОМ
верно, я тоже над этим думал, есть ли стандартный способ как-то создать "содержимое" для которого можно "подключать" клиентов?
Ну например отправить запрос на сервак, в ответ передать содержимое, когда ответ прилетит, отрисовать виджет с содержимым
т.е. в этой ситуации лучше RPC использовать, верно?
а какие есть вариант?)
ну ещё TCP можно) но RPC по проще в реализации будет
Обсуждают сегодня