Unity 入门 Time类

1、Time类中的常用属性

属性名

类型

属性类型

含义

time

float

get

游戏开始之后开始计时,以秒为单位

deltaTime

float

get;

上一次调用Update方法或者FixedUpdate方法所用的时间。

timeScale

float

get;set

游戏运行的快慢,当设置其值为1时,游戏正常运行;当设置其值为0时,游戏暂停;当设置其值为0-1中的数时,游戏运行变慢;当设置其值大于1时,游戏运行变快。

注:Update方法是每帧调用一次。

 

 

 

 

 

 

 

 

2、经验总结

1、用按钮来控制游戏的暂停和结束

(1)、用两个按钮来控制游戏的暂停和播放

void OnGUI()

    {

        //OnGUI画按钮,前两个参数为起始位置,以屏幕左上角为0,0点

        //后边两个参数为按钮的一个宽和高,最后一个参数为按钮的名字

        if (GUI.Button(newRect(50,50,100,50),"暂停"))

        {

          //0为时间暂停

           Time.timeScale = 0;

        }

        //大于0并且小于1可以模拟慢动作

        //大于1可以模拟快动作

        if (GUI.Button(new Rect(150, 50, 100,50), "播放"))

        {

           //1为正常播放

            Time.timeScale = 1;

        }

       

}

(2)、用一个按钮来控制游戏的暂停和播放

     其中又分为通过控制次数和通过控制布尔值来实现:

通过控制次数来控制:

//定义一个静态的int类型来计数

static int count=0;

void OnGUI()

    {

        //通过控制次数的奇偶来控制游戏暂停或者开始

        if (GUI.Button(new Rect(250, 50, 100,50), "暂停/开始"))

        {

            count++;

            if (count%2==1)

            {

                Time.timeScale = 0;

            }

            if (count % 2 == 0)

            {

                Time.timeScale = 1;

            }

       }

通过控制布尔值来控制:

//定义一个布尔值类型的变量

bool isPlay=true;

void OnGUI()

    {

            //通过控制布尔值来控制游戏暂停或者开始

           if (GUI.Button(new Rect(250, 50, 100, 50),"暂停/开始"))

           {

               //改变为相反的状态

               isPlay = !isPlay;

               if (isPlay)

              {

                  Time.timeScale = 1;

               }

              else

              {

                 Time.timeScale = 0;

              }      

 }

}

1、  做一个计时器,如下图所示:

public class CumulativeTime :MonoBehaviour

{

    //游戏运行时间

    float totalTime_delta;

    //小时,分钟,秒数

    int hour, min, sec;

    //对应的字符串形式变量

    string hour_s, min_s, sec_s;

    //临时记录我们运行时间的变量

    float time_temp;

    void Update()

    {

        time_temp += Time.deltaTime;

        //大于1s,秒数++,时间清零

        if (time_temp > 1)

        {

            sec++;

            time_temp = 0;

        }

        //秒数大于60,分钟++,秒清零

        if (sec > 59)

        {

            min++;

            sec = 0;

        }

        //分钟大于60,小时++,分钟清零

        if (min > 59)

        {

            hour++;

            min = 0;

        }

       //假如秒数小于10,在其前面加一个字符串0

        if (sec < 10)

        {

            sec_s = 0 + sec.ToString();

        }

        else

        {

            sec_s = sec.ToString();

        }

        if (hour < 10)

        {

            hour_s = 0 + hour.ToString();

        }

        else

        {

            hour_s = hour.ToString();

        }

        //对应字符串的三个形式(小于10和大于等于10的情况)

        if (min < 10)

        {

            min_s = 0 + min.ToString();

        }

        else

        {

            min_s = min.ToString();

        }

        //字符串的拼接

        //在3D文字中显示

       this.GetComponent<TextMesh>().text = hour_s + ":" +min_s + ":" + sec_s;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值