美文网首页
Finite-state Machine 有限状态机

Finite-state Machine 有限状态机

作者: 周末的游戏之旅 | 来源:发表于2019-09-23 11:37 被阅读0次

FSM

有限状态机和Unity的Animator类似,不过FSM除了动画还可以应用在如AI状态等。

FSM框架

State:

状态名
状态的Transition(字典)
状态的进入、执行、离开事件

状态的进入()

  • 执行状态进入事件
  • 将状态的执行事件添加到MonoHelper中
    状态的离开()
  • 执行状态离开事件
  • 将状态的执行事件从MonoHelper中移除
    添加或设置Transition()
    获取Transition()
    获取所有的Transition()

StateMachine:State

所有的子状态
所有的子状态参数(字典)
当前状态
默认状态

添加状态()

  • 判断当前是否已经有该状态,或者当前状态机管理的子状态中已经有这个状态名
  • 没有的话添加
  • 如果添加后,子状态数量为1,说明是第一个状态,将其设置为默认状态。
  • 如果当前状态为空,则将当前状态=默认状态。
    移除状态()
  • 如果子状态不包含要移除的状态,或者要移除的是当前状态,报错
  • 否则移除状态
  • 如果移除的是默认状态,则设置第一个状态为新的默认状态。
    切换状态()
  • 目标状态是否为当前状态机管理
  • 如果当前状态是状态机,关闭状态机。如果是状态,执行状态离开方法。
  • 获取新状态
  • 如果新状态是状态机,开启状态机。如果是状态,执行状态进入方法。
    开启状态机()
  • 执行状态进入事件
  • 绑定执行事件到MonoHelper
  • 如果子状态是状态机,递归开启子状态机。
  • 如果子状态是状态,执行状态的进入方法。
    关闭状态机()
  • 如果当前状态是状态机,递归关闭状态机。
  • 否则,执行子状态离方法。
  • 执行当前状态机的离开方法。
    检测当前状态的参数() 该方法需要在构造时绑定到状态机的执行事件中
  • 如果当前状态的参数中有一个满足,则切换到目标状态
    设置参数()
    获取参数()

MonoHelper:

主要是用来帮助在每帧或自定义间隔事件执行状态或状态机的执行事件

时间间隔
状态执行事件(字典)
执行事件的参数数组
执行事件数组

协程定时循环执行()

  • 拷贝状态执行事件字典的参数到参数数组
  • 拷贝状态执行事件字典的事件到事件数组
  • 执行状态事件

携程定时执行()

相关文章

  • Spring Statemachine 概念及应用

    1 Finite-state machine 1.1 状态机定义 有限状态机,(英语:Finite-state m...

  • 有限状态机抽取地址

    有限元状态机 什么是有限状态机 有限状态机(英语:finite-state machine,缩写:FSM)又称有限...

  • 状态机

    有限状态机 finite-state machine FSM 有限状态机在设计交易订单系统时,会存在正向状态(待...

  • 有限状态机是什么

    1.背景介绍 什么是有限状态机? 有限状态机(Finite-state machine)是一个非常有用的模型,可以...

  • 如何使用有限状态机

    1.背景介绍 有限状态机,(英语:Finite-state machine, FSM),又称为有限状态自动机...

  • 什么是有限状态机

    1.背景介绍 有限状态机,(英语:Finite-state machine, FSM),又称为有限状态自动机,简称...

  • 在Unity中实现有限状态机

    简介 有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是...

  • 事件驱动型有限状态机EFSM的C语言实现

    一、什么是状态机? 有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,...

  • FSM02

    有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有...

  • 状态机

    1、定义 有限状态机(Finite-state machine,FSM):有限哥状态以及在这些状态之间的转移和动作...

网友评论

      本文标题:Finite-state Machine 有限状态机

      本文链接:https://www.haomeiwen.com/subject/mewfyctx.html