美文网首页交互媒体设计教案
Unity3D的数据类型以及PlayMaker的变量

Unity3D的数据类型以及PlayMaker的变量

作者: shimmery | 来源:发表于2017-07-27 18:29 被阅读1166次

变量(variable)是用来储存数据的。

程序语言通常都会针对不同的用途设置不同的数据类型,以提高储存效率。因此在设置变量时,需要事先申明好变量的数据类型。

  • 保存“是”或者“非”的判断数据,仅需要1bit的储存空间;
  • 而 8bit = 1byte,于是1byte空间如果用来保存整数的话,就只能包括64个不同的整数了,不考虑负数的话只能063,考虑负数则只能-3132;
  • 但要保存一段文字内容,所需要的储存空间就大得多了。

Unity3D中常用的数据类型

Bool

“布尔”数据类型,其值要么是“True”(代表1)要么是“False”(代表0)。

Bool数据常常用来表达一个判断,例如“场景中是否有Player”、“是否发生了碰撞”等等。

Int

Int数据用来表示整数,包括正整数、负整数、0。

我们通常用int数据储存诸如:“xxx物体的数量”这样的数据。另外,for循环中也用int来计数。

Float

Float数据用来表示“小数”,同样包括正数、负数、和0。当然整数也可以用float数据类型来储存,只不过有点浪费。

如果我们写脚本的时候直接赋值 a = 1,那么系统会自动将变量a设置为int类型,如果需要让系统自动将a设置为float,则可以写成 a = 1.0 或者 a = 1f。
同理,如果让系统计算 a = 3 / 5,系统会认为3和5都是int类型,于是结果会 = 0。除非写成 a = 3f / 5f, 系统才会算出 = 0.6 。

Float数据的应用范围就很广泛了,距离、时间、速度等等。

String

String数据用来表示“字符串”,也就是文字内容。

游戏中要储存一句对话,就需要使用string类型的数据;获取游戏物体的名字,其数据格式也是string。

要注意的是,UI中使用的文字都是string格式的,如果我们希望显示生命值为10,那么需要把10这个float类型的数据先转换成string类型的数据再赋给相应UI组件来使用。

Vector2

Vector2是二维矢量数据,相当于两个float数据组合起来。

很多数据需要成对出现才有意义,比如屏幕坐标、方形的长宽等等,这时候就要用到Vector2。

Vector2数据写法是用,将两个float数据连起来,再用<<>>框起来,比如<<320, 240>>这样。

Vector3

Vector3是三维矢量数据,相当于三个float数据组合起来。

Vector3的使用就很常见了,一个物体在三维空间中的坐标,运动的方向,translate、rotate、scale值,颜色(RGB)等数据都使用Vector3来储存。

Vector3的写法和Vector2一样,只不过多了一个float数据,比如<<2, 4, 6>>

注意:Vector2和Vector3的每一个分量都是float形式的,所以写的时候不需要加“f”。

GameObject

GameObject类型的数据就没有上面这些那么好理解了,我们姑且认为这就是Unity3D中用来表示一个游戏物体的专有数据就好了。

实际上,GameObject与其说是一个“数据”,不如说是一个“对象”。只不过我们还不了解什么叫“对象”,所以姑且当它是个特殊的数据吧。

Array

Array是“数组”,前述的任何一种数据类型,多个数据按顺序组合到一起就是一个“数组”。

比如可以将全班所有人的名字组合成一个string类型数据的Array:names[] = {"name1", "name2", "name3", "name4"},如果需要获取name1,则需要通过names[0]来得到。

所以,一个有4个数据的数组,其编号是0、1、2、3,没有4。

同时,数组只能将同一类型的数据放在一起,不能混搭,混搭就成了对象(object)了。

Enum

Enum是一个“状态”数据。我们可以定义一个Enum,然后指定给它多个状态,比如“吃饭”、“睡觉”、“打豆豆”之类,然后通常这个Enum会被用在一个Switch条件语句中。


PlayMaker中使用变量

pm_variable_new0.png

在PlayMaker的Variable面板中可以新建变量。变量通常仅在该FSM中使用,如果需要在多个FSM中自由调用该变量,需要将其定位为Global Variable。

pm_variable_new1.png

如果需要在Inspector中修改变量,需要勾上“Inspector”选项。

PlayMaker提供多种数据类型给我们使用:

pm_variable_types.png

除了使用前面提到的Unity3D数据类型作为变量类型以外,PM还提供了一些比较特别的变量类型。比如:

  • Color:用来表示颜色,本质上是Vector3
  • Rect:用来表示一个矩形方框的大小和在屏幕坐标系的位置,本质上是4个float的组合(X:方框左上角的横轴坐标;Y:方框左上角的纵轴坐标;W:方框宽度;H:方框高度),当然我们也可以用来表示别的东西
  • Material:材质,用来储存一个材质球(material)资源
  • Texture:贴图,用来储存一张图片资源
  • Quaternion:代表物体旋转角度的数据,但不同于我们常用的rotateX,rotateY,rotateZ这种算法
  • ObjectObject不是GameObject!Object其实是用来存放组件(component)的。对于一些PM中没有专门action支持的component,PM提供了Object这么一种数据类型让我们可以通过Get Component去获取一个component,然后在通过Get PropertySet Property来获取或设置目标component的某个属性
  • Enum:PlayMaker的Enum不能自行创建其包含的状态,只能使用Unity3D已有的Enum结构来生成变量

PlayMaker中所使用的变量都需要在PlayMaker中提前定义好。而且,由于PlayMaker又是可视化界面,因此对于所用数据的数据类型十分敏感,一个GameOjbect类型的数据是放不进一个Vector3类型的参数中去的。

初学者一般都不是非常清楚每个Action的每个参数都需要哪种类型的数据。所以建议通过在Action的参数选择框中选择New Variable来创建变量,这样就可以得到正确的数据类型了:

相关文章

  • Unity3D的数据类型以及PlayMaker的变量

    变量(variable)是用来储存数据的。 程序语言通常都会针对不同的用途设置不同的数据类型,以提高储存效率。因此...

  • PlayMaker入门介绍

    PlayMaker是什么? PlayMaker是Unity3D的一款 可视化 的 有限元状态机(Finite-st...

  • 前文

    栈内存: 存放变量(基本数据类型)以及引用(引用数据类型),当方法调用完成后,变量以及引用会被销毁变量中直接存放值...

  • 学习笔记—数据类型

    数据类型的作用:声明变量的类型,可以决定变量存储占用的空间,以及如何解释存储的位模式。 数据类型种类: 数据类型的...

  • Unity官方教程:Roll A Ball(PM版)

    这篇文章默认大家已经对Unity3D和PlayMaker有一定的了解,所以没有把所有操作步骤都写的非常详细,不太看...

  • C语言数据类型

    C数据类型 在C语言中,数据类型指的是声明不同类型的变量和函数;变量的类型决定了变量存储占用的空间,以及如何解释存...

  • Java笔记 Day02

    1、演示变量以及使用 变量的创建:byte b = 1;数据类型:byte变量名:b ---- 标识符赋值符号: ...

  • 4.数据类型,常量,变量以及数据类型转换

    数据类型,常量,变量以及数据类型转换 数据类型 分类: 基本数据类型:四类八种 引用数据类型:类,接口,数组Jav...

  • C++变量类型

    C++ 中的变量定义 变量定义 :告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型...

  • 06 小安猜价格【第一课时】

    一、本周任务 1、学习目标: 1)复习一:数据与运算 ·数据:常量、变量、数据类型 以及全局变量的定义 ·...

网友评论

    本文标题:Unity3D的数据类型以及PlayMaker的变量

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