unity v2018.2.8f1, C #, weaponSwitching через создание их экземпляров как gameObject, который не синхронизируется, uNet

Я делаю многопользовательский шутер от первого лица и в настоящее время пытаюсь синхронизировать переключение оружия. Моя проблема: если я создаю новое оружие, оно отображается только на локальном клиенте. У меня есть анимация equip и deEqip, которые, кажется, идеально синхронизируются. Единственная проблема заключается в том, что оружие не меняется, поэтому анимация работает и вызывается, но только для основного оружия, которое не меняется для NonLocalClients.

Я не хотел спамить здесь свой код, поэтому вставил его в hastebin: https://hastebin.com/suhogoyoya.cs

Этот сценарий не отключается на других клиентах, но, похоже, отлично работает на локальных клиентах, без каких-либо ошибок и взаимодействия.

Компоненты, которые я добавил в свой WeaponPrefabs: NetworkAnimator, NetworkIdentity (localPlayerAuthority), NetworkTransform

Резюме: 1) Анимация, базовое оружие, движение, стрельба, дульные вспышки - все синхронизировано идеально 2) Созданное на локальном клиенте оружие не будет отображаться на других подключенных клиентах, что означает, что когда один игрок в игре переключает только оружие, он может видеть свое недавно экипированное оружие. . Остальные игроки просто видят анимацию переключения и анимацию экипировки того же оружия, которое было экипировано с самого начала. 3) Я действительно хочу создать экземпляр оружия, так как я хочу реализовать weaponPickups и т. Д. 4) Я пробовал все возможные комбинации NetworkServer.Spawn (), [Command] и т. Д. И искал в течение 3 дней и не могу найти решение, поэтому любая помощь будет приятной


person Dennis Vymer    schedule 21.09.2018    source источник


Ответы (1)