news 2026/6/23 20:28:58

等待节点-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
等待节点-–-behaviac

原文

等待(Wait)节点在指定的数值内(单位根据自己的使用场景来定)持续保持为运行(Running)状态,数值到达之后则返回成功,如下图所示:

需要配置“持续时间”,可以是常数、属性或方法的返回值(支持double和int类型),如下图所示:

在工作区配置窗口中,可以勾选左下角的“使用整数值”来表示是否使用整数值,如下图所示:

如果勾选了“使用整数值”选项,那么在导出代码文件behaviac_agent_meta.cpp中,会自动生成Workspace::GetInstance()->SetUseIntValue(true)。

等待节点的更新逻辑是:

boolbUseIntValue=Workspace::GetInstance()->GetUseIntValue();if(bUseIntValue){longlongtime=Workspace::GetInstance()->GetIntValueSinceStartup();if(time-this->m_intStart>=this->m_intTime){returnBT_SUCCESS;}}else{doubletime=Workspace::GetInstance()->GetDoubleValueSinceStartup();if(time-this->m_start>=this->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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 20:26:22

Nginx性能优化实战:从基础配置到高级调优的完整指南

Nginx性能优化实战:从基础配置到高级调优的完整指南 【免费下载链接】Linux-Tutorial Linux-Tutorial是一个Linux系统教程,适合用于学习和掌握Linux命令行操作和系统管理技能。特点:内容详细、实例丰富、适合入门。 项目地址: https://gitc…

作者头像 李华
网站建设 2026/6/23 14:35:58

ThingsGateway:开源智能设备管理平台的终极指南

ThingsGateway:开源智能设备管理平台的终极指南 【免费下载链接】ThingsGateway ThingsGateway 是基于Net6/7/8的跨平台边缘采集网关,提供底层PLC通讯库,通讯调试软件等。 项目地址: https://gitcode.com/gh_mirrors/th/ThingsGateway …

作者头像 李华
网站建设 2026/6/23 14:25:45

KolodaView开源项目贡献指南

KolodaView开源项目贡献指南 【免费下载链接】Koloda KolodaView is a class designed to simplify the implementation of Tinder like cards on iOS. 项目地址: https://gitcode.com/gh_mirrors/ko/Koloda KolodaView是一个专为iOS平台设计的开源UI组件库&#xff0c…

作者头像 李华
网站建设 2026/6/23 21:45:50

Python:SOLID 面向对象设计原则

在软件工程与面向对象设计(OOD)领域,SOLID 原则被广泛视为构建可维护、可复用、可扩展、易测试的软件系统的核心指导规范。无论是大型工程架构,还是日常 Python 项目,只要涉及类与对象,SOLID 原则都能帮助你…

作者头像 李华
网站建设 2026/6/17 13:54:50

专业级鼠标性能测试工具:从数据采集到精准分析的全链路解析

专业级鼠标性能测试工具:从数据采集到精准分析的全链路解析 【免费下载链接】MouseTester 项目地址: https://gitcode.com/gh_mirrors/mo/MouseTester 在追求极致用户体验的今天,鼠标作为人机交互的重要桥梁,其性能表现直接影响着工作…

作者头像 李华