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正常打印。
在这里插入图片描述

相关推荐

  1. 商城数据库(51 52 53 54 55 56 57 58 59 60)

    2024-03-25 07:32:02       30 阅读
  2. 安卓UI面试题 51-55

    2024-03-25 07:32:02       42 阅读
  3. mysql(54) : dbcp多实例使用

    2024-03-25 07:32:02       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-25 07:32:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-25 07:32:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-25 07:32:02       82 阅读
  4. Python语言-面向对象

    2024-03-25 07:32:02       91 阅读

热门阅读

  1. 怎么解决父元素引起的高度坍塌?

    2024-03-25 07:32:02       38 阅读
  2. 20.Ubuntu下安装GCC

    2024-03-25 07:32:02       44 阅读
  3. C++测试代码

    2024-03-25 07:32:02       40 阅读
  4. Rancher(v2.6.3)——Rancher部署Redis(单机版)

    2024-03-25 07:32:02       40 阅读
  5. 中高级前端工程师招聘

    2024-03-25 07:32:02       44 阅读