Unity引擎-脚本常用类-05

Unity 任何要绑定在 GameObject 上的脚本都必须继承自 MonoBehaviour。MonoBehaviour是Unity中所有自定义脚本类的基类,当我们创建一个类时Unity会默认继承自MonoBehaviour,许多常用的类都属于组件, 如 Transform,Camera,Light 和 Animation 等。所有的 GameObject 上都绑定了一个 Transform 组件, 且该组件无法被删除.
这些类我们不能够通过new的方法创建类实例,只有Unity在内部觉得能够创建实例的时候才会创建当前类的实例,在需要销毁的时候由Unity内部销毁。
可以将Unity中的脚本常用类分为四个大类:
1.宏观控制类
主要是 针对Unity程序中的某一方面进行宏观控制。
包括:
Application -- 应用程序类
Input -- 输入类
Physics -- 物理引擎类
Resources -- 资源类
Time -- 时间类
等等
2.游戏对象(GameObject)类
由于Unity是面向组件开发的,可以说追根溯源组件起到了根本性的作用,因此对于GameObject类没有太多的方法,更多的是将内容交给了组件类。
3.组件(Component)类
脚本开发中的组件类,跟图形界面的检视面板正好是对应起来的,这个在前面我们也提到过。每个游戏对象的细节设置与操控都需要借助组件类来完成。
在常用组件类中,有两个继承关系需要特别说明:
(1)角色控制器类(CharacterController)类继承于碰撞器(Collider)类
(2)有一组类并不直接继承于组件类,而是通过继承Behavior类间接的继承,包括我们熟知的MonoBehaviour类
4.资源类
资源一般都是通过界面导入进来后直接使用。通过脚本创建或者修改资源的情况也存在,所以随之产生的有资源类的一些方法操作。
下面来介绍一些重要的常用的类:

一、GameObject

1.1 变量

active 是否活动
isStatic 是否静态

//使游戏物体不活动.
gameObject.active = false;
gameObject.isStatic = false;

1.2 函数

AddComponent
GetComponent
Find
FindWithTag
FindGameObjectWithTag
SetActive

gameObject.AddComponent ("SomeOneScripe");
curTransform = gameObject.GetComponent(Transform);
//直接查找一个名字是Dog的物体
GameObject obj = GameObject.Find("Dog");
//间接通过物体标签来找名字是Dog的物体
GameObject obj = GameObject.FindWithTag("Dog");
//通过标签找到对应的多个物体
GameObject obj = GameObject.FindGameObjectWithTag("Dog");
//设置当前物体不显示,实际上是存在的
obj.SetActive(false);

二、Transform

Transform组件控制游戏对象在Unity场景中的位置、旋转和缩放,每个游戏对象都包含一个Transform组件。在游戏中如果想更新玩家位置,设置相机观察角度都免不了要和Transform组件打交道。包括定位父子关系也需要用到。

2.1 变量

2.2 成员函数

三、Time

Time时间类为开发者提供了一些在程序运行时时间上的处理函数,在Unity中可以通过Time类获取和事件相关的信息,可以用来计算帧速率,调整事件流逝速度等功能。我们可以非常方便的使用。

3.1 Time类成员变量

其中有一个属性较为特殊,Time.timeScale,用于控制当前运动效果。当timeScale传递时间为1.0时表示正常;当timeScale传递时间0.5时比实时时间慢一半,当timeScale传递时间为0时游戏基本上暂停了。


3.2 示例

//记录上一帧所消耗的时间,会受时间缩放的影响
public static float deltaTime { get; }

//记录从程序运行到现在的时间会受时间缩放的影响
static float time { get; }

//设置游戏里面的时间与现实世界里的时间缩放,即现实世界的时间 X 缩放比例
static float timeScale { get; set; }

//从游戏运行到现在的真实事件
static float realtimeSinceStartup { get; }

四、Random

Random类可以用来生成随机数。

4.1 变量

4.2函数示例

//返回一个在min和max之间的整数
static int Range(int min, int max);
//生成一个随机浮点数
static float Range(float min, float max);

五、Mathf类

Unity中封装了数学类Mathf,使用它可以轻松地解决复杂的数学公式。Mathf类定义了我们常需要的数学计算方式。

5.1变量

5.2函数

六、Input

在Unity3D中将输入控制分为3种状态,分别是按下、一直处于按下状态、抬起状态,Unity提供输入函数的类为 Input类。

6.1 键盘的三种状态

//KeyCode类定义了我们键盘上常用的按键
//当按键一直处于按下状态时重复调用这个函数
static bool GetKey(KeyCode key);
//当按键刚按下时调用一次这个函数
static bool GetKeyDown(KeyCode key);
//当按键被按下后抬起时调用一次这个函数
static bool GetKeyUp(KeyCode key);

6.2鼠标的三种状态

//鼠标的三种状态和键盘的按键的三种状态相同
public static bool GetMouseButton(int button);
public static bool GetMouseButtonDown(int button);
public static bool GetMouseButtonUp(int button);

/*上述三种状态的参数我们看到是int整型,那么为什么鼠标的输入是整型呢,首先鼠标上一般有三个按钮,那么表示这三个按钮输入需要一个标志,于是有:
0:代表鼠标的左键
1:代表鼠标的右键
2:代表鼠标的中键
*/




©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容