zoukankan      html  css  js  c++  java
  • 【Unity】制作简易定时器(Timer)

    最近开始学习Unity,也想开始学习写一些简单的博客。
    在网上学习了一些关于定时器的写法,在此简单总结一下,方便自己以后用到时查阅。

    需求:制作定时器,运行3秒后执行第一次,之后每隔3秒执行一次操作。

    方法①:使用变量在Update中计时,也是各种书中最常见的方法。

    public class TestTimer : MonoBehaviour {
    
        private float lastTime;
        private float curTime;
    
        void Start () {
            lastTime = Time.time;
        }
    
        void Update () {
            curTime = Time.time;
            if (curTime - lastTime >= 3)
            {
                Debug.Log("work");
                lastTime = curTime;
               }
        }
    }

    方法②:使用协程Coroutine

    public class TestTimer : MonoBehaviour {
    
        void Start () {
            StartCoroutine(Do()); // 开启协程
        }
    
        IEnumerator Do()
        {
            while (true) // 还需另外设置跳出循环的条件
            {
                yield return new WaitForSeconds(3.0f);
                Debug.Log("work");
            }
        }
    }

    方法③:使用InvokeRepeating

    public class TestTimer : MonoBehaviour {
    
        void Start () {
            InvokeRepeating("Do", 3.0f, 3.0f);
        }
    
        void Do()
        {
            Debug.Log("work");
        }
    }

    个人认为,使用InvokeRepeating调用写法最简洁。

  • 相关阅读:
    URL编码与解码
    什么通用数据交换格式更好
    JSON(JavaScript Object Notation)
    二维码与json都是数据交换格式
    数据的存在形式
    NSData、数据结构与数据转换
    物理结构与逻辑结构
    NSKeyedArchiver : NSCoder
    The Role of View Controllers
    Content-Type与MIME
  • 原文地址:https://www.cnblogs.com/guxin/p/7129033.html
Copyright © 2011-2022 走看看