HFSM(HierarchyFiniteStateMachine)分层有限状态机 三

HFSM(HierarchyFiniteStateMachine)分层有限状态机 三
接上面说一下 Unity 层次状态机编辑器
为什么花时间写编辑器?
因为:1.可视化,我们直接可以从编辑器中直接看到有什么状态、每个状态之间的切换关系和条件。
2.编辑方便,我们在编辑器中可以轻松的添加、删除、修改状态之间的转换关系与条件。
3.快速,相比于硬编码添加状态和切换条件、相比于配置表添加状态和切换条件,编辑器都会快很多

下面讲解下这个编辑器的使用
1.打开编辑器 在 菜单栏 Window -> CreateHSM
在这里插入图片描述
2.添加环境变量
(1)选择参数列表
(2)添加参数,选择参数类型 int、float、bool,输入参数英文名、中文注释,以及默认值
在这里插入图片描述
3.添加状态节点
在编辑区域鼠标右键,CreateState->Human-> 写作业
在这里插入图片描述
4.添加层次状态 SubMachine
编辑区域鼠标右键,选择 Create->SubStateMachine->SubMachine
在这里插入图片描述
5.添加转换条件
选择一个节点,鼠标右键 MakeTransition,然后移动鼠标拉着连线到另一个节点,点击鼠标左键
在这里插入图片描述
在这里插入图片描述
选择一个节点,选择 查看面板 下面会显示出改节点到其他所有节点的转换条件连线

6.编辑转换条件
选择一个节点,然后选择一个转换条件,选择下方添加条件按钮,添加条件,添加条件后可以设置比较条件 (大于、等于、大于等于、小于、小于等于),以及设置比较值
在这里插入图片描述
在这里插入图片描述

然后选择 添加组,如上添加了三个组,表明从 娱乐层次状态 -> 学习层次状态有三个转换,每个转换有不同的参数需求。
每个组有 8 个条件,0, 1,2, 3, 4, 5, 6, 7分别代表下方的 0 看书、 1 写作业、2 网上听课、3 玩游戏、4 看电视、5 打篮球、6 饥饿感、7 精力值

选择组一: 0, 3, 4, 5, 6, 7 为勾选条件
解释:当 看书值 > 8, 玩游戏值 < 1,看电视值 < 1,饥饿感 < 6,精力值 > 6 时条件满足

选择组 二:1, 3, 4, 5, 6, 7 为勾选条件
解释:当 写作业值 > 8, 玩游戏值 < 1,看电视值 < 1,饥饿感 < 6,精力值 > 6 时条件满足

选择组三:2, 3, 4, 5, 6,7 为勾选条件
解释:当 网上听课值 > 8,玩游戏值 < 1,看电视值 < 1,饥饿感 < 6,精力值 > 6 时条件满足

如上三组只要有一组值完全满足则就可以从 娱乐层次状态 转换到 学习层次状态

7.如上三个状态为三个层次状态SubMachine,如何在层次状态下添加状态呢?
选择 学习层次状态 SubMachine,双击会再次打开一个空的编辑区域,在这个区域中添加的状态,皆为 学习层次状态 SubMachine 中的状态
在这里插入图片描述
编辑状态和上边同理
在这里插入图片描述

编辑结束后点击 保存 按钮,以 json 形式存储在目录 Assets\SubAssets\GameData\HSM 下
在这里插入图片描述
点击批量合并按钮将所有编辑好的配置文件合并存储在目录 Assets\StreamingAssets\Bina\SkillHsmConfig.bytes 下,在运行游戏时 AI 加载的配置文件是 SkillHsmConfig.bytes

关于编辑器的使用到此就大概结束了,下一篇讲讲自定义的状态节点如何出现在编辑器中,如何让AI运行起来

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值