英文原文:
https://mirror-networking.gitbook.io/docs/components/network-transform
Network Transform组件在网络上同步网络游戏对象的位置、旋转和缩放。
具有网络转换组件的游戏对象还必须具有网络身份组件。当您将 Network Transform 组件添加到游戏对象时,Mirror 还会在该游戏对象上添加一个 Network Identity 组件(如果它还没有)。
默认情况下,网络转换是服务器权威的,除非您选中客户端权限框。客户端权限适用于玩家对象以及专门分配给客户端的非玩家对象,但仅适用于该组件。启用此功能后,位置更改将从客户端发送到服务器。
您可以使用发送间隔指定同步频率(以秒为单位)。
延迟、丢包和抖动期间的平滑移动
NetworkTransform 通过 Unreliable 通道在每个 sendInterval 发送运动更新。
网络条件从来都不是理想的,因此这些更新可能会出现乱序、延迟或在途中丢失。
在非理想网络条件下的平滑移动是游戏网络中比较困难的问题之一。我们的 NetworkTransform 组件通过使用快照插值来解决它。我们建议通读链接章节以详细了解它。
简而言之,在非理想条件下的平稳移动是通过缓冲实现的。条件越差,缓冲时间乘数(Buffer Time Multiplier)就需要越高。但是,它的缓冲时间也越高。
总缓冲时间由 sendInterval * Buffer Time Multiplier 计算。通常建议使用系数“3”。
这意味着虽然您可以增加 Buffer Time Multiplier 以弥补更糟糕的情况,但您也可以减少 sendInterval 以仍然保持合理的低缓冲延迟。
我们新的NetworkTransform已经被多个现实世界的游戏项目用于生产。观看此视频,比较我们的新旧 NetworkTransform 组件。
为了获得新的 NetworkTransform 组件,只需更新您的Mirror版本,直到它看起来像上图中的那个。
请记住,NetworkTransform 会广播每个 sendInterval。为了减少带宽,我们目前正在开发 SyncDirection、Notify 和 Delta 压缩。一旦实施,这些将自动将 NetworkTransform 带宽降至最低。事实上,包含所有 Mirror 的带宽。