Как синхронизировать тело с несколькими соединениями в сети Unity / Photon Unity network?

#c# #unity3d #multiplayer #photon #unity-networking

#c# #unity3d #Многопользовательский режим #photon #unity-сеть

Вопрос:

Это то, что я пробовал.

Я создал 2D-тело, в котором дочерние объекты связаны с соединениями, и я добавил компонент PhotonView в тело и перетащил туда дочерние преобразования GameObject. Проблема в том, что он довольно неточный, и когда я устанавливаю скорость двигателя, он отстает, и положение не совпадает с положением на экране других игроков.

Вероятно, это очень плохой вопрос, но все, что я хочу знать, это как я могу правильно синхронизировать тело с несколькими дочерними игровыми объектами, прикрепленными к соединениям.

Также я пока не пробовал использовать вызовы RPC, но у меня такое чувство, что это приведет к задержке игры :/

Ответ №1:

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

Вы можете отключить физику для объектов, которые вы не контролируете. Сделайте эти кинематические, а затем обновите объект только тем, что вы получаете через сеть. Это будет отставать, но это зависит от вас, чтобы компенсировать и скрыть (и другая тема).

Возможно, вы захотите объединить обновления, отправленные для «вашего» объекта, с обновлениями дочерних элементов. Таким образом, вы получаете снимок всего символа / объекта, когда он прибывает.