Skip to main content
AR论坛
 首页 » 资源教程 » Unity3D教程

【Unity】6.5 Time类、Mathf类、Coroutine类

2016年11月05日 13:34:461080

一、Time类

Unity引擎提供的Time类可获取和时间有关的信息、计算帧速率、调整时间流逝速度等。

1、成员变量

【Unity】6.5 Time类、Mathf类、Coroutine类 Unity3D教程 第1张

2、示例

(1)在Assets下创建一个“6.5”子文件夹。

(2)在6.5子文件夹下创建一个文件名为Scene5.unity的场景。

(3)在6.5子文件夹下创建一个文件名为Demo5.cs的脚本。

【Unity】6.5 Time类、Mathf类、Coroutine类 Unity3D教程 第2张

(4)将Demo5.cs改为下面的内容:

【Unity】6.5 Time类、Mathf类、Coroutine类 Unity3D教程 第3张

using UnityEngine;using System.Collections;publicclass Demo5 : MonoBehaviour
{    void OnGUI()
    {
        GUILayout.Label("当前游戏经过的时间(秒):" + Time.time);
        GUILayout.Label("游戏时间的缩放:" + Time.timeScale);
        GUILayout.Label("上一帧所消耗的时间:" + Time.deltaTime);
        GUILayout.Label("固定增量时间:" + Time.fixedTime);
        GUILayout.Label("上一帧所消耗的固定时间:" + Time.fixedDeltaTime);
        GUILayout.Label("当前游戏实际经过的时间:" + Time.realtimeSinceStartup);
    }
}

【Unity】6.5 Time类、Mathf类、Coroutine类 Unity3D教程 第4张

(5)在层次视图中,添加一个空的GameObject,选择该对象,然后将Demo5脚本拖放到检视器中。

(6)单击【播放】按钮,结果如下图所示。此时会看到对应的变量值在不停地变化:

【Unity】6.5 Time类、Mathf类、Coroutine类 Unity3D教程 第5张

二、Mathf类

Unity引擎提供的Mathf类提供了常用的数学运算。

1、成员变量

PI 圆周率(π)的值,即3.14159265358979323846...(只读)

Infinity 正无穷大∞ (只读)

NegativeInfinity 负无穷大-∞ (只读)

Deg2Rad 度到弧度(Degrees-to-radians)的转换系数(只读)

Rad2Deg 弧度到度(Radians-to-degrees)的转换系数(只读)

Epsilon 一个很小的浮点数值(只读)

2、方法

【Unity】6.5 Time类、Mathf类、Coroutine类 Unity3D教程 第6张

三、Coroutine类

Coroutine也叫协同程序或者协程,协同程序可以和主程序并行运行,该类的功能和多线程有些类似,但是在任—指定时刻只会有一个协同程序在运行,别的协同程序则会挂起。

协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。例如:

执行步骤1,等待3秒;

执行步骤2,等待某个条件为true;

执行步骤3⋯ ⋯

Unity里和协同程序有关的函数有:

·startCoroutine:启动一个协同程序。

·stopCoroutine:终止—个协同程序。

·stopAllCoroutine:终止所有协同程序。

·WaitForSeconds:等待若干秒。

·WaitForFixedUpdate:等待直到下一次FixedUpdate调用。

关于协同程序的具体用法,在后面章节的游戏开发实例中还会细讲,这里就不展开介绍了。

评论列表暂无评论
发表评论