计时器
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Schedule : MonoBehaviour
{
public float time;
float deltaTime;
float targetTime;
// Start is called before the first frame update
void Start()
{
deltaTime = time;
targetTime = Time.time + time;
//延时调用函数
//传的函数必须是本类中的,不能是其他类的
//Invoke调用的函数必须无参
//Invoke本身并不是异步,只是延时调用了函数,并没有将程序从主体中脱离出来
Invoke("Test", 3);
}
void Test()
{
Debug.Log("延时调用");
}
// Update is called once per frame
void Update()
{
#region 第一种计时器
deltaTime -= Time.deltaTime;
if (deltaTime <= 0)
{
Debug.Log("计时结束");
deltaTime = time;
}
#endregion
#region 第二种计时器
//Time.time; 返回当前项目从运行时起到现在一共经历了多久
if(Time.time >= targetTime)
{
Debug.Log("计时结束");
targetTime = Time.time + time;
}
#endregion
}
}
思考:计时器分为三种:
第一种:通过Time.deltaTime ,来计算过了多久,这个api 是指上一帧执行所用的时间
第二种:通过Time.time ,来计算过了多久,这个api 是指从项目开始到现在过了多久
第三种:Invoke();,来设置多久后执行某个函数,传入两个参数,一个是函数名,一个是时间s
|