ветка Remote не выполняется на клиенте?
а ивент вообще приходит?
Вызывается, доходит до Has Authority. Дальше не идёт.
а это дедик-клиент, или клиент в роли сервера?
Я тестирую в редакторе, но запускаю в одном процессе - ничего же страшного? Просто на отдельный процесс памяти не хватает.
Делай мультикаст событие
А если мне не нужно менять музыку на всех клиентах?
Хм, при мультикасте музон меняется. А при овнинг клиент - нет.
Объясни что ты хочешь сделать. Всё ведёт себя как и должно, но непонятно чего ты добиваешься
Допустим, уезжает трамвай. Один игрок успел в него сесть, другой нет. У первого должна заиграть другая музыка, у второго остаться прежняя. Я реплицирую с сервера событие, которое срабатывает при трогании трамвая, но нужно чтобы оно выполнялось только на конкретном клиенте.
Тут нужен мультикаст, потому что клиенты не владеют трамваем и ты не можешь оправить им Owning Client RPC
Я вроде думал что Owning Client - это событие, которое выполняется на сервере и дублируется на клиенте, с которого игрок сел в трамвай. А на других клиентах не выполняется.
В документации конечно не очень понятное объяснение, но поинтересуйся концепцией владения, если делаешь сетевую игру. Тут как раз написано, что если клиент не владеет актором (то есть актор не является например павном или контроллером или плеер стейтом (ну или компонентом этих акторов)), то сервер не будет знать куда отправлять вызов, помеченный как "Run on owning client"
На сервере оно дублируется потому что сервер владеет актором. Но лучше так не делать, потому что в этом как бы нет смысла
Я так и не делаю, поэтому и делю логику на Authority и Remote. В первом случае ничего не происходит. А когда игрок садится в трамвай, павн вроде временно становится трамваем.
Если очень не хочешь делать мультикаст, можешь вызвать Owning Client событие через PlayerState, или вызвать внутри самого персонажа например (п.с. "вроде"? лол)
Это уже решения повышенной крутизны, ладно, ещё поколдую. Спасибо!)
Удачи, поначалу это та ещё головная боль
Обсуждают сегодня