UE5.3 StateTree使用实践

近期浏览UE的CitySample(黑客帝国Demo),发现有不少逻辑用到了StateTree学习一下,StateTree是多层状态机实现,以组件的形式直接挂载在蓝图中运行。

与平时常见的一些FSM库不同,StateTree并不会返回给外界当前的状态是什么,毕竟嵌套状态返回的信息并不直观,使用者可以通过UE的Tags标签来标记当前的状态或是别的方法。

下面就来简单讲讲如何使用,编辑器版本是UE5.3。


1.首先安装插件State Tree:
在这里插入图片描述

2.右键创建State Tree对象,创建类型选择StateTreeComponent:

在这里插入图片描述
3.创建好后先不急着配置StateTree文件,先创建一个自定义任务。右键创建蓝图类,类名搜索关键字State Tree,创建类型如下:
在这里插入图片描述
注:State Tree的每一个状态上都可以挂载Task,状态进入由Condition条件控制,状态跳转由Transiton控制。

4.简单编写Task逻辑:
在这里插入图片描述

5.双击打开StateTree文件,点击Add Statet添加State1,并添加自定义Task与延迟,设置一个自身传递的Transitions过渡。
在这里插入图片描述

6.创建一个角色,用于挂载StateTree并执行状态机。
在这里插入图片描述

7.为新创建的角色蓝图添加StateTree组件,赋上之前创建的StateTree。
在这里插入图片描述

8.StateTree组件会自动执行,不需要蓝图节点的调用,拖入场景执行,可见Log正常打印。
在这里插入图片描述

上一篇:SAP软件如何使用屏幕变式控制SAP系统操作界面字段的必输、显示或隐藏-业务需求:


下一篇:1.7 Python 3和Python 2的区别