【发布时间】:2020-06-17 09:30:42
【问题描述】:
我目前正在制作多人 fps 以学习 UNET 和 Unity。在这个项目中,我使用 Network Animator 组件来同步我的动画。
我有一层运行正常状态,如行走和跳跃,另一层只控制上半身的范围。该层在确定范围时被激活。
参数是同步的,但不是层权重。 控制层权重的脚本在远程播放器上被禁用,因为它是负责拍摄的同一脚本的一部分,我们不想从远程播放器进行拍摄。 所以我把那段代码放在了不同的脚本上,把 Layerweight 做成了 Syncvar,还是没有结果。
这是设置权重并将其淡出的 sn-p。
if (isScoped)
{
animator.SetLayerWeight(1, 1);
layerWeight = 1;
}
else
{
layerWeight = Mathf.Lerp(layerWeight, 0, 0.1f);
animator.SetLayerWeight(1, layerWeight);
}
animator.SetBool("Scoped", isScoped);
如何同步在禁用脚本上更新的变量?
我应该使用哪些不同的自定义属性(如 [Command] 和 [ClientRpc] 来使其正常工作?
我已经阅读了 UNET 的文档和手册,但是在这个相对简单的任务中遇到了困难,因为我很难理解这些调用的区别。
【问题讨论】:
-
你为什么不禁用整个脚本只通过标志禁用
Shoot方法呢? (if(!IsLocalAuthority) return;)
标签: unity3d synchronization unity3d-unet