У меня вопрос относительно системы UNET.Unity [UNET] Синхронизация преобразования объекта не-игрока
Есть некоторые объекты в сцене, которые можно выбрать. Я хочу синхронизировать этот объект, когда игрок его подбирает.
Объект имеет NetworkIdentity
Компонент с LocalPlayerAuthority
проверено. Он также имеет сценарий NetworkTransform
, но преобразование синхронизируется только от хоста к клиентам, а не наоборот. Поэтому, если я перемещаю объект со стороны хоста, все клиенты видят это изменение, но если клиент перемещает его, только этот конкретный клиент видит изменение. Что мне нужно сделать, чтобы синхронизировать их с обеих сторон?
Вы также хотите поделиться фрагментом кода в ответе? Я обдумываю одну и ту же проблему, но не могу ее установить. Спасибо –
В объекте игрока вызовите 'AssignLocalAuthority' в командную функцию (чтобы вызвать ее на стороне хоста) с параметром netId не-игрока объект. Вы можете получить netId из компонента NetworkIdentity. Я назначаю полномочия на объект, не являющийся игроком, как этот. Надеюсь, что это поможет: 'NetworkManagerVR.Instance.localNetworkPlayer.CmdAssignObjectAuthority (GetComponent(). NetId);' –
Спасибо, но вы должны добавить его в ответ и для будущего пользователя. –