Unity3D开发常用API之工具类(十一)

本节要点

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);


    }
}

小结

Unity3D开发常用API之工具类(十一)_第1张图片
插值运算原理.png
Unity3D开发常用API之工具类(十一)_第2张图片
时间缩放.png
Unity3D开发常用API之工具类(十一)_第3张图片
Unity API.png

你可能感兴趣的:(Unity3D开发常用API之工具类(十一))