zoukankan      html  css  js  c++  java
  • Unity3D 中的定时器

    不算上 C# 自带的,目前知道两种,以下分别介绍。

    1、每帧检查

    定义一个时间变量 timer,每帧将此时间减去帧间隔时间 Time.deltaTime,如果小于或者等于零,说明定时器到了,执行相应功能代码,将此定时器重置,代码如下:

    public float timer = 1.0f;
    
    // Update is called once per frame
    void Update() {
        timer -= Time.deltaTime;
        if (timer <= 0) {
            Debug.Log(string.Format("Timer1 is up !!! time=${0}", Time.time));
            timer = 1.0f;
        }
    }

    2、利用协程

    在协程中返回需要等待的时间,直接看代码便明白:

    // Use this for initialization
    void Start() {
        StartCoroutine(Timer());
    }
    
    IEnumerator Timer() {
        while (true) {
            yield return new WaitForSeconds(1.0f);
            Debug.Log(string.Format("Timer2 is up !!! time=${0}", Time.time));
        }
    }

    3、延迟调用

    使用 MonoBehaviour.Invoke,两个参数,分别是要调用的方法名和延时调用的时间。代码如下:

    // Use this for initialization
    void Start() {
        Invoke("Timer", 1.0f);
    }
    
    void Timer() {
        Debug.Log(string.Format("Timer3 is up !!! time=${0}", Time.time));
        Invoke("Timer", 1.0f);
    }

     

  • 相关阅读:
    STL(七)之萃取技术
    STL(六)之空间配置器
    为Oracle配置监听
    Oracle11.2.01安装过程
    SVN简介
    SVN客户端安装教程
    SVN服务器安装教程
    排序算法-冒泡排序
    使用Struts2实现超级文本的链接
    排序算法-快速排序
  • 原文地址:https://www.cnblogs.com/yili16438/p/3749066.html
Copyright © 2011-2022 走看看