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

Playmaker Input引入的核心概念

Playmaker引入了4个核心概念:状态机、动作、变量和事件。了解它们是学习操作Playmaker的前提,本节会分别介绍它们。

Playmaker Input状态机

状态机,即Finite State Machine,读者在本章前面的部分已经见过了,它主要负责组织各个离散的“状态”。状态机里包含5个元素:起始事件(Start Event)、状态(State)、过渡事件(Transition Event)、过渡(Transition)和全局过渡(Global Transition)。如图1-21所示,就是一个很常见的状态机。

图1-21  状态机,及其5个组成元素(1.起始事件,2.状态,3.过渡事件,4.过渡,5.全局过渡)

提示:在描述状态机里的内容时,本书通常会使用到这些专业术语(即5个组成元素)。例如,对于本小节给出的状态机的描述为:“起始事件”START会激活On“状态”,后者有一个Close“过渡事件”,当名为Close的事件被触发以后,“状态”会从On“过渡”到Off,当“全局过渡”MoveTo被触发以后,则会激活State1“状态”。

Playmaker Input动作

动作(Action)用来表示一个具体的行为。它只能被赋予状态机中的“状态”,而“状态”负责执行动作。对于熟悉Unity的读者而言,它类似于Unity中的“组件”,而“动作”也拥有自己的属性。如图1-22所示,名为Set Material Color的“动作”被赋予Off状态,而Set Material Color动作下有自己的属性。

图1-22  动作,及其属性

Playmaker Input变量

变量(Variables)可以被看作是一个有名字的数据容器。它和Unity脚本中的“变量”类似,只不过脚本中的变量是用来存储脚本中生成的数据,而Playmaker中的变量是用来存储状态机中生成的数据。

Playmaker Input事件

事件(Events)是状态机中触发状态过渡的原因。

注意:本节并没有对核心概念做更加深入的分析,因为单纯分析理论会异常的无聊,为了让本书更加实用,我们会在示例中具体情况具体分析。

本文选自:Playmaker全面实践教程Input篇大学霸资料,转载请注明出处,尊重技术尊重IT人!

Playmaker Input篇教程之引入的核心概念的更多相关文章

  1. Playmaker Input篇教程之PlayMaker菜单概述

    Playmaker Input篇教程之PlayMaker菜单概述 Playmaker InputPlayMaker菜单概述 Playmaker插件被导入游戏项目以后,会自动为Unity编辑器添加一个名 ...

  2. Playmaker Input篇教程之Playmaker购买下载和导入

    Playmaker Input篇教程之Playmaker购买下载和导入 Playmaker Input篇认识Playmaker Playmaker是Unity的插件,其标志如图1-1所示.开发者使用它 ...

  3. Elasticsearch入门教程(二):Elasticsearch核心概念

    原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...

  4. C#串口通讯教程 简化一切 只保留核心功能 这可能是最易于理解的一篇教程

    C#串口通讯教程 简化一切 只保留核心功能 这可能是最易于理解的一篇教程   串口的定义,请自行了解. C#操作串口通讯在.Net强大类库的支持下,只需要三个步骤: 1 创建 2 打开 3 发送/接受 ...

  5. Playmaker全面实践教程之简单的使用Playmaker示例

    Playmaker全面实践教程之简单的使用Playmaker示例 简单的使用Playmaker示例 通过本章前面部分的学习,相信读者已经对Playmaker有了一个整体的认识和印象了.在本章的最后,我 ...

  6. react 教程—核心概念

    react 核心概念  : https://react.docschina.org/docs/getting-started.html(官网) 或  https://www.w3cschool.cn/ ...

  7. Javascript本质第一篇:核心概念

    很多人在使用Javascript之前都至少使用过C++.C#或Java,面向对象的编程思想已经根深蒂固,恰好Javascript在语法上借鉴了Java,虽然方便了Javascript的入门,但要深入理 ...

  8. C++第一篇--类的引入

    C++第一篇--类的引入 1. 用C语言输出两个人的信息 Person1.c:通过字符实现 #include <stdio.h> int main(int argc,int **argv) ...

  9. SpaceSyntax【空间句法】之DepthMapX学习:第二篇 输出了什么东西 与 核心概念

    这节比较枯燥,都是原理,不过也有干货.这篇能不能听懂,就决定是否入门...所以,加油吧 博客园/B站/知乎/CSDN  @秋意正寒 转载请在文头注明本文地址 本篇讲空间句法的几个核心概念,有一些也是重 ...

随机推荐

  1. Entity Framework CodeFirst数据迁移

    前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是“Database First”还是“Model First”当模型发生改变了都可以通过Visual ...

  2. sqlserver2012相关资源下载

    1.输入网址http://www.codeplex.com 2.找到Microsoft SqlServer Product Samples选项 3.进入之后显示如下页面 4.选择SQL Server ...

  3. Android之开启手机系统自带铃声

    /** * 开启手机系统自带铃声 */ private void startAlarm() { mMediaPlayer = MediaPlayer.create(this, getSystemDef ...

  4. android.os.BadParcelableException: ClassNotFoundException when unmarshalling:解决办法

    例如在用AlarmManager的时候 AlarmManager alarmMgr = (AlarmManager) mContext .getSystemService(Context.ALARM_ ...

  5. /lib /usr/lib /usr/local/lib区别

    昨天问我/usr/lib 和/usr/local/lib 我仅记得一个是系统的,一个是用户的,于是今天查了查,有两篇文章介绍的不错,usr 很多人都认为是user缩写,其实不然,是unix syste ...

  6. 【分布式存储】GlusterFS failing to mount at boot with Ubuntu 14.04

    GlusterFS failing to mount at boot with Ubuntu 14.04   Previously I asked about mounting GlusterFS a ...

  7. 【转】js onclick用法:跳转到指定URL

    使用onclick跳转到其他页面/跳转到指定url   ☆如果是本页显示可以直接用location,方法如下: ①onclick="javascript:window.location.hr ...

  8. codeforces B. The Fibonacci Segment 解题报告

    题目链接:http://codeforces.com/problemset/problem/365/B 题目意思:简单来说,就是要找出最长的斐波纳契长度. 解决的方法不难,但是要注意更新左区间和右区间 ...

  9. linux下emacs配置文件

    1:安装.在ubuntu下使用命令 sudo apt-get install emacs,即可,我使用的是ubuntu的10.04的版本,在里面使用了据说是163的2个源. 1.1:如何更新快速的源, ...

  10. Gym 100801D Distribution in Metagonia (数学思维题)

    题目:传送门.(需要下载PDF) 题意:t组数据,每组数据给定一个数ni(1 ≤ ni ≤ 10^18),把ni拆成尽可能多的数,要求每个数的素因子只包含2和3,且这些数不能被彼此整除,输出一共能拆成 ...