uNet порождает префаб с более чем одним сетевым идентификатором

Я пытаюсь создать 3D-игру, используя класс сетевого менеджера Unity из коробки. В этой игре игроки могут бегать, стрелять и подбирать другое оружие.

Префаб игрока имеет NetworkIdentity, и каждый тип оружия также имеет NetworkIdentity.

Когда игрок присоединяется к игре, я хочу, чтобы он появлялся с оружием по умолчанию. Однако у меня возникла проблема с тем, чтобы игрок появлялся с оружием по умолчанию, потому что у оружия есть NetworkIdentity. Все в порядке, но я не могу изменить клиента-владельца созданного оружия, поэтому игрок не может стрелять или перезаряжать оружие, с которым он начинает. Оружие, которое они подбирают в мире после появления, работает просто отлично.

Это похоже на ту же проблему, что и моя, но никто ответил.

Как должны быть организованы префабы для игр unet? Возможно ли, чтобы класс сетевого менеджера по умолчанию порождал префабы, содержащие вложенные экземпляры сценария NetworkIdentity?

Спасибо за любую помощь, которая у вас может быть.


person Andrew    schedule 06.03.2017    source источник


Ответы (1)


Взгляните на ClientScene.AddPlayer, NetworkManager.AddPlayer и использование NetworkManager

Вы можете переопределить OnServerAddPlayer в NetworkManager самостоятельно.

Использование extraMessage позволит вам узнать информацию о вашем игроке.

person b.ben    schedule 28.03.2017