浅谈在Unity3D中实现Finite State Machine System有限状态机框架系统

Posted swordmaster

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈在Unity3D中实现Finite State Machine System有限状态机框架系统相关的知识,希望对你有一定的参考价值。

本有限状态机系统是为拥有FSM有限状态机知识概念的程序员所开发.

技术图片


特点

  • 在本插件中包含了一个关于坦克之间战斗的Demo场景,其中的AI坦克就是由本有限状态机框架所实现的。
    通过研究Demo示例中的代码,您可以轻松学会使用此框架。

    技术图片

  • 在本插件中,通过继承FSMState类来创建您自己的状态类,如果有必要,还可以在创建好的状态类中对OnEnter(),OnUpdate() 和 OnExit()进行override ,不需要像有的状态机框架那样,去编写愚蠢的枚举变量以及Switch条件跳转语句。

-在本插件中,一个State链接到里另一个State实例是通过Transition类实现的。一个State链接到里另一个State之间的Transition保存着下个State的引用以及一系列Condition实例,这些Condition决定了状态机是否要切换到下一个状态。

技术图片

  • 在本插件中,每个condition类都是单独存在的。您可以通过实现 IFSMTransitionCondition 接口来创建自己的condition 类。

  • 在本插件中,当您想要将一个State链接到另一个State时,不需要通过自己创建Transition,只需要使用本框架中的CreateFSMStateToAnotherFSMStateTransition 函数即可,您所需要做的就是在调用这个API函数的时候,传进你想要进行链接的两个State实例,然后框架它将会自动地在两个State之间创建一个Transition。

  • 在本插件中的说明文档详细地阐述了如何使用本FSM框架以及在Demo场景中的AI坦克师是如何被编码的。


在线说明文档

Manual


所支持的Unity的版本

5.6.6 或 更高


下载地址

您可以从Unity Asset Store上进行下载:Finite State Machine System


更多插件请访问本人的个人网站:

https://www.swordmaster.info/

以上是关于浅谈在Unity3D中实现Finite State Machine System有限状态机框架系统的主要内容,如果未能解决你的问题,请参考以下文章

浅谈在Linux中磁盘超出2T的管理方式

浅谈在ES5环境下实现const

浅谈在Java开发中的枚举的作用和用法

浅谈在网页中你所不知道的css背景属性

Finite State Machine 是什么?

证明与计算: 有限状态机(Finite State Machine)