当前位置:网站首页>运行时端常用类的介绍
运行时端常用类的介绍
2022-06-26 08:41:00 【LixiSchool】
https://www.behaviac.com/basic_classes/
在使用behaviac运行时端(Runtime)的源代码或API时,有几个最常用的类值得注意:如Workspace、Agent、Config等。
Workspace类
Workspace类主要用于管理类型信息的导出,加载、卸载、执行、停止执行行为树,设置时间和帧数等。
- GetInstance() :用于获取Workspace的单件实例。
- ExportMetas(const char*) :导出类型信息文件到指定的路径,详见文档《C++运行时端中类型信息的注册和导出》。
- SetFilePath(const char*) :用于加载行为树时指定行为树文件所在的目录。
- SetFileFormat(EFileFormat) :用于指定加载行为树文件的格式,包括Xml、Bson、Cpp/Cs、Default。其中Default表示先尝试加载Xml格式,如果找不到再尝试加载Bson格式,最后尝试加载Cpp/Cs格式,这个功能可用于行为树的热更新。
- Update() :用于执行所有Agent的当前行为树,行为树的执行也可以不通过该API,可以自己单独调用Agent的btexec()方法,详见文档《运行时端的更新流程》。
- DebugUpdate() :用于执行调试和热加载相关的方法,如果已经使用了Update()方法来执行,则连调或热加载时就不需要再调用该DebugUpdate()方法。
- SetIsExecAgents(bool) :用于停止/继续执行所有Agent的当前行为树,前提是行为树是执行是通过Update()方法发起的。如果是自己单独调用Agent的btexec()方法,则通过Agent的SetActive(bool)方法来停止/继续执行。
- SetTimeSinceStartup(double) :用于设置游戏从启动到当前的总时间,该总时间主要用于时间、等待时间等与时间有关的节点的执行。如果不每帧设置该值,这些节点将不会正常工作。
- SetFrameSinceStartup(int) :用于设置游戏从启动到当前的总帧数,该总帧数主要用于帧数、等待帧数等与帧数有关的节点的执行。如果不每帧设置该值,这些节点将不会正常工作。
具体的代码可以查看behaviac/base/workspace.h
Agent类
静态方法:
- Create(const char*, int, short) :用于创建Agent的实例。
- Destroy(Agent*) :用于销毁Agent的实例。
- Register() :注册该Agent类,用于记录该类的类型信息。
- UnRegister() :取消注册该Agent类。
- RegisterInstanceName(const char*, const wchar_t*, const wchar_t*) :注册实例名字,作为类型信息的一部分,导出后可用于编辑器中节点的配置。
- UnRegisterInstanceName(const char*) :取消注册实例名字。
- BindInstance(Agent*, const char*, int) :将某个Agent实例跟某个名字进行绑定。
- UnbindInstance(const char*, int) :取消某个Agent实例跟某个名字的绑定。
成员方法:
- btload(const char*, bool) :用于加载指定名字的行为树,不需要后缀名(文件格式)。
- btunload(const char*) :用于卸载指定名字的行为树。
- btsetcurrent(const char*) :用于设置当前行为树。
- btexec() :执行当前行为树。
- SetActive(bool) :用于停止/继续执行当前行为树,如果设置为false,表示停止执行当前行为树;否则,表示继续执行。
- FireEvent(const char*) :用于发出事件,以便于行为树中绑定的事件得到响应。
- SetIdFlag(uint32_t) :用于设置连调时是否需要跟踪该Agent。通过静态方法SetIdMask()设置全部Agent的Mask值,然后再通过SetIdFlag()设置当前Agent的Flag值。如果IsMasked()返回为真,则表明需要跟踪该Agent。
- SetName(const char*) :用于设置名字。
具体的代码可以查看behaviac/agent/agent.h
Config类
详见文档《开发功能开关》。
边栏推荐
- XSS cross site scripting attack
- In automated testing, there are three commonly used waiting methods: sleep, implicitly\wait, and expected\u conditions
- 1.21 study gradient descent and normal equation
- docker安装redis
- 外部排序和大小堆相关知识
- Yolov5进阶之四训练自己的数据集
- Phpcms applet plug-in tutorial website officially launched
- 9. code generation
- Yolov5进阶之五GPU环境搭建
- Selenium 搭建 Cookies池 绕过验证反爬登录
猜你喜欢

Matlab drawing checkerboard (camera calibration)

Object extraction_ nanyangjx

隐藏式列表菜单以及窗口转换在Selenium 中的应用

微信小程序如何转换成百度小程序

phpcms小程序插件4.0版正式上线

Playing card image segmentation

Section IV HQL execution process

How to convert wechat applet into Baidu applet

深度学习论文阅读目标检测篇(七)中文版:YOLOv4《Optimal Speed and Accuracy of Object Detection》

浅谈一下Type-C接口发展历程
随机推荐
滑块验证 - 亲测 (京东)
Srv6---is-is extension
Which software is safer to open an account on
phpcms v9后台文章列表增加一键推送到百度功能
Yolov5进阶之四训练自己的数据集
9. code generation
爬虫 对 Get/Post 请求时遇到编码问题的解决方案
Games104 Lecture 12 游戏引擎中的粒子和声效系统
1.17 daily improvement of winter vacation learning (frequency school and Bayesian school) and maximum likelihood estimation
ImportError: ERROR: recursion is detected during loading of “cv2“ binary extensions. Check OpenCV in
[qnx hypervisor 2.2 user manual]12.2 terminology (II)
Line detection_ nanyangjx
1.23 neural network
Computer mall based on SSM
Phpcms V9 background article list adds one click push to Baidu function
上下架和橱窗推荐如何设置,优化过程需要注意的地方
Yolov5 advanced level 2 installation of labelimg
MySQL在服务里找不到(未卸载)
[cloud primordial | kubernetes chapter] go deep into the foundation of all things - container (V)
关于小程序tabbar不支持传参的处理办法