我正在制作多人游戏第一人称射击,目前正在尝试使武器切换同步。 我的问题是: 如果我实例化一种新武器,它只会显示在本地客户端上。 我确实有Equip和deEqip动画,它们似乎完美同步。唯一的问题是武器不会改变,因此动画可以正常工作并被调用,但仅适用于NonLocalClients不会改变的基本武器。
我不想在这里发送我的代码,因此我将其粘贴到hastebin上: https://hastebin.com/suhogoyoya.cs
此脚本不会在其他客户端上被禁用,但是似乎可以在本地客户端上完美运行,而不会出现任何错误和干扰。
我添加到WeaponPrefabs中的组件: NetworkAnimator,NetworkIdentity(localPlayerAuthority),NetworkTransform
回顾: 1)动画,基本武器,动作,射击,枪口闪光均完美同步 2)onLocalClient实例化武器不会显示在其他连接的客户端上,这意味着 当游戏中的一个玩家更换武器时,他只能看到他新装备的武器。 其他玩家仅看到相同武器的切换动画和装备动画,这是从开始时开始装备的。 3)我确实想实例化武器,因为我想实现武器拾取等。 4)我尝试了NetworkServer.Spawn(),[Command]等的所有可能组合,现在搜索了3天,似乎找不到解决方案,所以任何帮助都很好
答案 0 :(得分:0)
请尝试:
Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);
有关网络预制件的更多信息...
unity doc reference - netwrok instantiation