本节要点
1.Screen 屏幕类
1.作用
这个类中包含屏幕相关的数据信息。
2.类中常用属性
Screen.width:静态只读属性,屏幕的宽度。
Screen.height:静态只读属性,屏幕的高度。
备注:在 Unity 的开发模式下,这两个值取的是 Game 窗口的宽度和高度。
在项目编译打包后,再运行,就是具体的设备的屏幕的宽度和高度。
2.Time 时间类
1.作用
这个类中包含时间相关的数据信息。
2.类中常用属性
Time.time
静态只读属性,游戏时间。从游戏开始到现在所经过的秒数。
Time.deltaTime
静态只读属性,时间增量。渲染完上一帧画面所消耗的时间。
[可以用于实现倒计时效果]
Time.timeScale
静态属性,时间缩放。[可以用于暂停游戏]
当值为 1 时,游戏是正常状态;为 0 时,游戏是暂停状态;为 0.5 时,游戏是
处于慢放 0.5 倍的状态。
3.Mathf 数学类
1.作用
这个类(其实 Mathf 是结构体类型)中包含了各种各样的数学运算相关的函数。
2.常用函数
Mathf.Abs() 取绝对值
Mathf.Max() 取最大值
Mathf.Min() 取最小值
Mathf.Round() 四舍五入
3.插值运算函数
Mathf.Lerp(float a,float b,float t) :插值运算
基于浮点数 t 返回 a 到 b 之间的插值,t 限制在 0~1 之间。
当 t = 0 返回 a,当 t = 1 返回 b。当 t = 0.5 返回 a 和 b 的平均值。
演示:一个数从 0,插值到 10。
备注:Lerp()这个函数,在很多类中都存在,插值运算的目的基本都是为了
“平滑过渡”。
关键代码
ToolsClass
public class ToolsClass : MonoBehaviour {
//为了演示插值运算而定义的变量
private float num = 0;
void Start () {
}
void Update () {
//屏幕类
//if (Input.GetKeyDown(KeyCode.A))
//{
// Debug.Log("高度:"+Screen.height);//静态只读属性 屏幕的高度
// Debug.Log("宽度:"+Screen.width);//静态只读属性 屏幕的宽度
//}
//时间类
// Debug.Log("时间:"+Time.time);// /静态只读属性 从游戏开始运行到现在的时间
// Debug.Log("时间增量" + Time.deltaTime);///静态只读属性 从游戏开始计算每一帧渲染所需的时长
//时间静态可读可写属性 时间缩放,可用于游戏暂停或慢放状态
// Time.timeScale = 1;//值为1时,比较游戏正常速度渲染;
//Time.timeScale = 0.5f;//值为小数时,表示当前速度慢放的倍数 切记加上f;
//Time.timeScale = 0;//值为0 时;表示当前游戏处于暂停状态;
//数学类(结构体)
if (Input.GetKeyDown(KeyCode.S))
{
//绝对值 mathf.abs();
Debug.Log(Mathf.Abs(7));
Debug.Log(Mathf.Abs(-7));
//取最大值 和最小值;
Debug.Log("最大值:"+Mathf.Max(0.5f,10));//可以使2个
Debug.Log("最小值:"+Mathf.Min(1.1f,5,10,20,30,0.1f,35));//可以是多个
//四舍五入
Debug.Log("四舍五入:"+Mathf.Round(1.68f));
Debug.Log("四舍五入:" + Mathf.Round(1.18f));
//前面跟你说的都是跑龙套的,现在才是主角出场
//插值运算函数
//参数1:浮点型 参数2:浮点型 参数3:当为0 时返回参数1,当为1是返回参数2 ,取值范围是0至1之间,0.5时是参数1与参数2的平均值
// Mathf.Lerp(0,10,0);
Debug.Log(Mathf.Lerp(0,10,0));
Debug.Log(Mathf.Lerp(0,10,1));
Debug.Log(Mathf.Lerp(0,10,0.5f));//切记小数一定要加上f
}
//插值运算函数 lerp()在很多类中都存在,是为了平滑过渡
//演示0~10
num = Mathf.Lerp(num,10,Time.deltaTime);//参数1:不停改变 参数2:不变 参数3:渲染完一帧所需要时间 结果根据大概0.2秒 取得两个数之间0.2倍的值
Debug.Log("平滑过渡:"+num);
}
}