UE5.3 StateTree使用实践

10 篇文章 0 订阅
6 篇文章 0 订阅

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

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值