定义跳转插件_虚幻插件Review:Logic Driver Pro 终极状态机插件

c206549ee10a4363f8b39bccaad7413a.png

获取与安装

虚幻商城Logic Driver Pro地址

这是老王在虚幻商城出的第一滴血,99.99大刀,这个插件还有一个Lite版34.99刀。昨天刚购入,目前研究了一下基本工作逻辑,感觉还是很满意的,所以推荐给大家。

7e52affc4f68cab0f876ceb188ecaf49.png

Logic Driver Pro 是一个引擎插件,目前支持到4.19-4.26,下载启用即可

0e47a1c2ca872b7abd7ae5acbc54aeed.png

原理和特性

Logic Driver就是一套通用状态机系统,可以用来开发游戏逻辑/AI/UI等等,状态机驱动的对象(在Logic Driver中被称为上下文context)可以是任意类型的UObject,同时一个上下文可以拥有多个状态机。Logic Driver支持子状态机并且所有的状态机类/状态类/过渡类都可以定义在独立的蓝图中,从而重复使用。状态间不仅支持条件式转移也支持事件式转移。总之非常的灵活,是老王心目中理想的状态机的样子。(而且Logic Driver并行状态运行,听着好高端)

条件式转移: 转移条件是由若干个变量组成的一个最终输出值为布尔类型的表达式,当表达式值为True即转移,因此状态机系统每一次Update都要检查是否达成转移条件。事件式转移: 转移条件和一个委托(Delegate)绑定,当委托委托被调用(触发)即转移状态。

状态机

4f5345625f7c5b7c429ae2d609208929.png

Node Class

Node Class蓝图是为了复用的,不需要复用的话直接在状态机里创建就可以

cf81b4b04000294eae595411a71db581.png

使用范例

一个Actor有三个状态State_AState_BState_C

  • State_A为默认状态
  • State_A中持续2秒以后会跳转到State_B(使用条件式跳转)
  • State_B时,当我们按下键盘上的E键会跳转到State_C(使用事件式跳转)

定义上下文

本例的上下文就是一个带静态模型的Actor,为它添加一个StateMachineComponent

注意: 除了用组件的形式也可以自定义StateMachineComponent类型的成员变量,但是使用组件最简单,它初始化的时候会自动将所属Actor设为自己的上下文。用用成员变量的就需要很多手动设置,但是原理都是一样的。

c28d6adcea815391887c7468589b554b.png

定义状态机

状态机的样子很像动画蓝图,一些细节设计也很到位

844db5fbf4619707f7c23cbfb59d5847.png

State_A to State_B

58a24cdae8ea5cf86237386ec30eb51e.png

State_B to State_C

因为State_B to State_C是事件式转移,所以对它进行事件触发的设置

Delegate Owner Instance是委托事件所属的对象,默认是this 即状态机,本例设置为Context,选择Context的类型,然后指定委托事件。

9cbc9ef9d58e9905460f281f47717004.png

State_A/State_B/State_C

状态的设计也很清晰明朗,可以通过GetContext节点获取上下文

State_A

9553e71decf804f328d59cb8c4b4c38b.png

State_B

e2454178234c3a70d2965c21fa761f38.png

State_C

b2f5e312e8a64d6b28b3f610444140df.png

小结

面向状态开发的必备插件,就是价格有点小贵。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部