news 2026/1/14 6:59:55

教程6:事件的使用-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
教程6:事件的使用-–-behaviac

原文

本文档描述的是3.6及以后版本,对于3.5及以前的老版本请参考分类“3.5”。

事件(Event)作为节点一种的附件,主要用于在程序端的游戏逻辑发出事件时,得到响应后打断当前正在执行的行为树,并切换到所设置的另一个行为树。

1. 添加类型信息及任务

在类型信息浏览器中为类“FirstAgent”添加了event_task(int param0)这个任务,或者更形象的称之为“接口”,该任务带有一个int类型的param0参数,如下图所示:

2. 创建带任务节点的子树

创建行为树subtree_task,该树根节点的第一个子节点务必是任务节点,并为其配置上面添加的任务event_task,如下三图所示:

在上面的行为树subtree_task中,ID为1的条件节点使用了任务event_task的参数param0。这类似于编程语言中的函数参数为函数体的代码提供了局部变量,任务节点中的参数也为当前的行为树提供了同名的局部变量,这些“局部变量”可以根据需要用于该行为树所有子节点,也就在行为树节点中使用了任务的参数。

3. 创建带有事件的主树

创建另一个行为树maintree_task,并将ID为4的动作节点的参数“决定状态的选项”设置为Running,用于模拟行为树一直持续执行在该动作节点上,如下二图所示:

接着,在编辑器左侧的行为树节点列表中,将行为树节点subtree_task通过鼠标拖拽到行为树maintree_task中的第一个序列节点上(注意:一般默认把事件附件放在根节点的第一个子节点上),这样该序列节点就有了一个事件附件,如下图所示:

然后,为该事件设置参数,如下图所示:

其中,“触发一次”表示该事件是否只触发一次就不再起作用。

“触发模式”控制该事件触发后对当前行为树的影响以及被触发的子树结束时应该如何恢复,有转移(Transfer)和返回(Return)两个选项:

  • 转移:当子树结束时,当前行为树被中断和重置,该子树将被设置为当前行为树。
  • 返回:当子树结束时,返回控制到之前打断的地方继续执行。当前行为树直接“压”到执行堆栈上而不被中断和重置,该子树被设置为当前行为树,当该子树结束时,原本的那棵行为树从执行堆栈上“弹出”,并从当初的节点恢复执行。

4. 程序端发送事件

最后,在程序端通过如下代码,将事件“event_task”发出,并指定所需的参数,如下代码所示:

g_FirstAgent->FireEvent("event_task", 2);

这样,在执行行为树maintree_task过程中,如果接收到事件event_task,那么该行为树中的事件附件event_task将得到响应和处理,行为树的执行就会从当前的maintree_task跳转到subtree_task。

注意:调用FireEvent的时候,只有处于Running状态的节点才会响应事件。这是为了允许不同分支在不同时机下,同样的事件可以触发不同的行为。比如同样是BeingHit,受伤或逃跑的时候可以分别对应不同的行为。如果不需要根据不同的节点响应不同的行为,只是需要响应事件,一般只需把事件配置在根节点的第一个子节点上(根节点同样需要是Running状态,非Running状态的节点没有机会响应事件)。

5. 执行行为树

执行行为树maintree_task,可以得到如下结果:

本教程对应的工作区和代码工程,请查看源码包中的目录tutorials/tutorial_6。

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

K-Diffusion终极指南:从零掌握扩散模型图像生成

K-Diffusion终极指南:从零掌握扩散模型图像生成 【免费下载链接】k-diffusion Karras et al. (2022) diffusion models for PyTorch 项目地址: https://gitcode.com/gh_mirrors/kd/k-diffusion K-Diffusion是基于PyTorch实现的先进扩散模型库,专门…

作者头像 李华
网站建设 2025/12/28 5:21:39

基于SpringBoot的职工健康监护管理系统-计算机毕业设计源码+LW文档

摘 要 随着企业对于员工健康管理的日益重视,开发一套高效、便捷的职工健康监护管理系统显得尤为重要。本系统基于Spring Boot框架进行开发,旨在为企业提供一套全面的职工健康管理解决方案系统实现了职工健康信息的录入、查询、统计与分析等功能。用户…

作者头像 李华
网站建设 2025/12/27 20:44:43

终极日语学习方案:Memento播放器如何让看剧效率翻倍300%

终极日语学习方案:Memento播放器如何让看剧效率翻倍300% 【免费下载链接】Memento An mpv-based video player for studying Japanese 项目地址: https://gitcode.com/gh_mirrors/meme/Memento 你是否曾在看日剧时因为频繁暂停查单词而失去观影乐趣&#xff…

作者头像 李华
网站建设 2026/1/2 17:13:47

下雪了(小记)

天气渐渐入寒,12号迎来了冬天的第一场雪。大地穿上了白装,很喜欢这种寒冷的冬天自己缩在被窝的感觉,很温馨,很有安全感。记得小时候每个冬天,每次下雪。空气中带着些寒冷和干燥,寒风很是狡猾,刮…

作者头像 李华
网站建设 2025/12/28 22:29:08

音效神器,绝了

今天给大家带来一款可以让电脑WIN10/WIN11简单安装杜比音效 软件,这样电脑看电影、听歌,都有一个专业的音效体验感。 杜比音效 win10/win11适用 文件下载解压后,双击杜比安装器1.3.exe这个文件,选择安装驱动。 在驱动列表里面选择…

作者头像 李华