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

     

  • 相关阅读:
    第一章 初识shiro
    LDAP概念
    css定位
    css随笔1
    自己动手实现信息检索系统
    IntelliJ IDEA和pycharm注册码
    俄罗斯农夫算法
    [NOIP2013]转圈游戏
    [codevs1287]矩阵乘法
    [洛谷1314]无序字母对
  • 原文地址:https://www.cnblogs.com/yili16438/p/3749066.html
Copyright © 2011-2022 走看看