2026/4/18 17:29:19
网站建设
项目流程
网站注册手机号安全吗,哈尔滨网络公司营销机构,仁怀市城乡建设网站,咸阳做网站电话原文
等待#xff08;Wait#xff09;节点在指定的数值内#xff08;单位根据自己的使用场景来定#xff09;持续保持为运行#xff08;Running#xff09;状态#xff0c;数值到达之后则返回成功#xff0c;如下图所示#xff1a; 需要配置“持续时间”#xff0c;…原文等待Wait节点在指定的数值内单位根据自己的使用场景来定持续保持为运行Running状态数值到达之后则返回成功如下图所示需要配置“持续时间”可以是常数、属性或方法的返回值支持double和int类型如下图所示在工作区配置窗口中可以勾选左下角的“使用整数值”来表示是否使用整数值如下图所示如果勾选了“使用整数值”选项那么在导出代码文件behaviac_agent_meta.cpp中会自动生成Workspace::GetInstance()-SetUseIntValue(true)。等待节点的更新逻辑是boolbUseIntValueWorkspace::GetInstance()-GetUseIntValue();if(bUseIntValue){longlongtimeWorkspace::GetInstance()-GetIntValueSinceStartup();if(time-this-m_intStartthis-m_intTime){returnBT_SUCCESS;}}else{doubletimeWorkspace::GetInstance()-GetDoubleValueSinceStartup();if(time-this-m_startthis-m_time){returnBT_SUCCESS;}}因此只有保证Workspace::GetInstance()-GetIntValueSinceStartup()或Workspace::GetInstance()-GetDoubleValueSinceStartup()正确的返回从游戏启动到现在的总时间等待节点才能正确工作。如果勾选了“使用整数值”选项那么Workspace::GetInstance()-GetUseIntValue()将返回true并且该总数值需要通过Workspace::GetInstance()-SetIntValueSinceStartup(long long value)设置可以在自己的游戏更新函数中调用该函数。如果没有勾选“使用整数值”选项那么Workspace::GetInstance()-GetUseIntValue()将返回false。该总时间需要通过Workspace::GetInstance()-SetDoubleValueSinceStartup(double value)设置可以在自己的游戏更新函数中调用该函数。注意在C#代码中相应的接口需改为Workspace.Instance.IntValueSinceStartup或Workspace.Instance.DoubleValueSinceStartup默认实现方式是返回Unity的系统时间Time.realtimeSinceStartup一般情况无需自己重新实现直接使用即可不用类似C的接口每帧更新时调用Workspace.Instance.IntValueSinceStartup或Workspace.Instance.DoubleValueSinceStartup为其赋值。具体的执行逻辑可以查看behaviortree/nodes/actions/wait.cpp