有限状态机(Finite State Machines)


一个有限状态机(FSM)将行为组织成一些离散的状态。

开、关、开启、关闭、行走、空闲、攻击、防御...

Playmaker 使用事件驱动的有限状态机来控制Unity:

1. 开始事件( Start Event)

当有限状态机(FSM)启动时会发送一个开始事件(Start Event)。

这个start事件(event)会激活第一个状态(state),也就是Start State。

2. 状态( State)

同一刻仅能有一个状态是激活的。

激活的状态会执行动作(Action) 并接收事件(Event)。

3. 过渡事件( Transition Event)

事件触发过渡(transition)转到另一个状态。

事件可以由Unity发出(碰撞、触发器、鼠标输入、动画事件...)

或者由动作(Action)发出(距离检测、定时设置、游戏逻辑...)

4. 过渡( Transition)

​         激活的状态"退出"并且新的状态"进入"。

图形视图(Graph View)可以很方便地建立和调试这些过渡(transition)。

5.全局过渡(Global Transition)

         全局过渡可以在任何时候被触发,无论当前是哪个激活状态。

在上面的例子中,角色在任何时候都可以被撞倒,所以我们使用了一个全局过渡。

全局过渡可以减少需要显式定义的过渡(transition)的数量来简化有限状态机(FSM)。

动作(Actions)

当前激活的状态会执行动作(Actions)。动作有一些参数可以在动作编辑器(Action Editor)来编辑,就好像在Unity监视窗里编辑脚本参数一样。

变量(Variables)

变量(Variables)是一个值的命名容器。动作编辑器(Action Editor)允许你将动作参数(Action parameters)与变量(Variables)挂钩从而代替常量。例如,"numberOfLives" 来代替 3, "health"来代替100。
    

如果一个值需要随着时间改变,你应该使用一个变量,而不是硬编码的值。

事件(Events)

所有的状态之间的过渡都是由事件(Events)触发的。

译文源自:https://hutonggames.fogbugz.com/default.asp?W133

PlayMaker — 核心概念相关推荐

  1. Playmaker Input篇教程之引入的核心概念

    Playmaker Input篇教程之引入的核心概念 Playmaker Input引入的核心概念 Playmaker引入了4个核心概念:状态机.动作.变量和事件.了解它们是学习操作Playmaker ...

  2. 2021年大数据ELK(五):Elasticsearch中的核心概念

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...

  3. Sg.js框架核心概念

    Sg.js框架核心概念: 1)所有变量.方法.类对象全部都是从属于$g主树,由$g分支出很多$g.变量名.$g.方法.$g.对象id.$g.类: 2)获取控件内部属性必须使用公开的get方法获取,禁止 ...

  4. 学习 JavaScript (四)核心概念:操作符

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,前面三个上一篇文章已经讲解完了.后面三个内容超级多,这篇文章主要讲解的是操作符. 操作符 什么叫做操作符? 这是一种 ...

  5. Go modules基础精进,六大核心概念全解析(下)

    Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...

  6. Go modules基础精进,六大核心概念全解析(上)

    Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...

  7. Maven学习总结(四)——Maven核心概念

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...

  8. [k8s] 第一章 十分钟带你理解Kubernetes核心概念

    本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

  9. cocos2d-x一些核心概念介绍

    cocos2d-x一些核心概念介绍 Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导 ...

最新文章

  1. python线程执行带有参数的任务(args、kwargs)
  2. 不懂 Zookeeper?没关系,看这篇就够了
  3. proj4经纬度bl转换xy_多种坐标系之间的转换之Proj.NET_转载
  4. 利用SQL Server 2005特性删除表中重复数据
  5. 你真的理解内存分配吗?
  6. 编程题走迷宫_C++程序算法题----迷宫(一)
  7. rabbit和mysql事务_分布式事务原理及SpringBoot整合RabbitMQ实现可靠事件,TCC事务模型及接口幂等性...
  8. Ajax工作原理和原生JS的ajax封装
  9. Matlab多种群遗传算法
  10. 972_MISRA C 2004规范解读1
  11. Android 分贝测试仪功能,挥泪整理面经
  12. Shiro记住我无效,被拦截;
  13. composer错误
  14. 如何在直播中解决黑屏、花屏、闪屏问题 | 直播疑难杂症排查
  15. django http 收发_django的日志发往http server
  16. 关于Idea合并不同分支代码你怎么看
  17. 求问R语言 分层抽样 合并两个数据框为什么出现了空集
  18. html表单元素占位符是,HTML各种表单元素模板及写法
  19. Web 前端基础知识面试大全
  20. 知识图谱基础知识之三——知识图谱的构建过程

热门文章

  1. GPRS模块中CSQ信号值相关
  2. 神策数据java开发工程师校招面经
  3. unplug / plug PDBS
  4. uestc 宝贵资源 1265 (水)
  5. 【MyBatis】防止sql注入
  6. English语法_基数词
  7. Python 解答火车排序的问题:火车单向行驶:从左到右,一次标号每辆火车,入口出口只能被占用一次、那么如图所示。需要几列火车轨道满足要求?
  8. 一网打尽、详解面试最常被问到的几种 Python 设计模式
  9. 中国代步平衡车市场销售态势与消费趋势预测报告(2022-2027年)
  10. jdb java_利用JDB附加调试JAVA程序 | 学步园