结构设计网站推荐,企业所得税的计算公式三种,app网站开发价格,宁波做网站烟台厂商文章目录 前言NetworkAnimatorAnimator的Trigger属性服务器权威模式#xff08;Server Authoritative Mode#xff09;客户端权威模式 (Owner Authoritative Mode)学习文档 前言
这个组件是NetCode常用的组件之一#xff0c;NetworkAnimator跟NetworkTransform一样#xf… 文章目录 前言NetworkAnimatorAnimator的Trigger属性服务器权威模式Server Authoritative Mode客户端权威模式 (Owner Authoritative Mode)学习文档 前言
这个组件是NetCode常用的组件之一NetworkAnimator跟NetworkTransform一样用来同步信息NetworkAnimator是用来同步动画的。 NetworkAnimator
NetworkAnimator组件为提供了如何在网络会话期间同步动画的基本示例。动画状态与加入现有网络会话的玩家同步并与在动画状态更改之前已连接的任何客户端同步。
加入现有网络会话的玩家将与以下内容同步
所有Animator的当前属性和状态。 除了Animatortrigger属性。这些仅与已连接的客户端同步。 任何正在进行的过渡已连接的玩家将与Animator的更改同步 状态过渡属性 NetworkAnimator仅同步自上一帧以来发生更改的属性值。由于trigger类似于event当将Animator属性设置为true时它将始终同步。
NetworkAnimator可以以两种权威模式运行
服务器权威默认服务器启动动画状态更改。 拥有者仍然可以调用NetworkAnimator.SetTrigge。 客户端权威客户端所有者启动动画状态更改。 Animator的Trigger属性
Animator的Trigger属性类型基本上不过是一个布尔值当设置为true时在Animator组件处理完触发器后将自动重置为false。通常触发器用于启动Animator层状态之间的过渡。从这个意义上说可以将Trigger看作是信号事件的开始的一种方式。由于Trigger属性具有这种独特的行为因此要通过NetworkAnimator.SetTrigger方法设置触发器值。 注意 如果使用Animator.SetTrigger设置Trigger属性那么这不会与非所有者客户端同步。 服务器权威模式Server Authoritative Mode
NetworkAnimator的默认设置是服务器权威模式Server Authoritative Mode。在服务器权威模式下任何在服务器端设置触发器或检测到的层、状态或任何Animator属性的更改不包括触发器的动画状态更改都将与所有客户端同步。由于服务器发起对Animator状态更改的任何同步与NetworkAnimator相关联的NetworkObject的所有者客户端可能会滞后大约完整的往返时间RTT。下面是一个时序图来展示这一点 在上面的图表中客户端可能会向服务器发送一个RPC告诉服务器玩家正在执行某种可能改变玩家动画的操作包括设置触发器。在这种情况下客户端向服务器发送一个RPC一半RTT服务器处理RPCNetworkAnimator服务器端检测到相关的Animator状态更改然后所有客户端包括所有者客户端都与更改同步。
服务器权威模型的优势 如果运行一个普通的服务器非主机这个模型有助于减少所有客户端动画之间的同步延迟。 服务器权威模型的缺点 主机将始终“稍微领先”于所有其他客户端这可能对您的项目是一个问题或不是一个问题。客户端所有者在执行动作移动、拾取物品、导致Animator状态更改的任何操作时会经历延迟。 客户端权威模式 (Owner Authoritative Mode)
通常项目设计或个人偏好可能要求所有者立即更新到任何Animator状态更改。最典型的原因是为本地玩家提供即时的视觉动画反馈。要创建一个以所有者为权威的NetworkAnimator您需要创建一个从NetworkAnimator派生的新类重写NetworkAnimator.OnIsServerAuthoritative方法并在覆盖的OnIsServerAuthoritative方法中返回false就像下面提供的示例一样
using UnityEngine;
using Unity.Netcode.Components;public class OwnerNetworkAnimator : NetworkAnimator
{protected override bool OnIsServerAuthoritative(){return false;}
} 这个写法就是跟之前的ClientNetworkTransform是一样的。 观察所有者为权威的NetworkAnimator的时序在下面的图表中您可以看到尽管所有者客户端获得了“即时的视觉动画响应”但非所有者客户端最终落后于所有者客户端大约一个完整的往返时间RTT而主机将落后于所有者客户端的一半RTT。 在上面的图表中显示了所有者客户端有一个Animator状态更改被NetworkAnimatorOwnerNetworkAnimator检测到它自动将服务器与更改的状态同步。服务器在本地应用了这些更改然后将此状态更改广播给所有非所有者客户端。
Owner authoritative mode优点 所有者能够即时获得Animator状态更改的视觉反馈为本地玩家提供更流畅的体验。 Owner authoritative mode缺点 非所有者客户端的动画大约滞后于所有者客户端一个完整的往返时间RTT。主机的动画大约滞后于所有者客户端的动画半个往返时间RTT。 学习文档
https://docs-multiplayer.unity3d.com/netcode/current/components/networkanimator/