Я делаю многопользовательский шутер от первого лица и в настоящее время пытаюсь синхронизировать переключение оружия. Моя проблема: если я создаю новое оружие, оно отображается только на локальном клиенте. У меня есть анимация equip и deEqip, которые, кажется, идеально синхронизируются. Единственная проблема заключается в том, что оружие не меняется, поэтому анимация работает и вызывается, но только для основного оружия, которое не меняется для NonLocalClients.
Я не хотел спамить здесь свой код, поэтому вставил его в hastebin: https://hastebin.com/suhogoyoya.cs
Этот сценарий не отключается на других клиентах, но, похоже, отлично работает на локальных клиентах, без каких-либо ошибок и взаимодействия.
Компоненты, которые я добавил в свой WeaponPrefabs: NetworkAnimator, NetworkIdentity (localPlayerAuthority), NetworkTransform
Резюме: 1) Анимация, базовое оружие, движение, стрельба, дульные вспышки - все синхронизировано идеально 2) Созданное на локальном клиенте оружие не будет отображаться на других подключенных клиентах, что означает, что когда один игрок в игре переключает только оружие, он может видеть свое недавно экипированное оружие. . Остальные игроки просто видят анимацию переключения и анимацию экипировки того же оружия, которое было экипировано с самого начала. 3) Я действительно хочу создать экземпляр оружия, так как я хочу реализовать weaponPickups и т. Д. 4) Я пробовал все возможные комбинации NetworkServer.Spawn (), [Command] и т. Д. И искал в течение 3 дней и не могу найти решение, поэтому любая помощь будет приятной