unity 协程计时
时间: 2023-09-28 11:11:26 浏览: 57
在Unity中,协程是一种可以轻松实现计时操作的方法。你可以使用协程来创建一个定时器。以下是几种常见的Unity协程计时方法:
1. 使用StartCoroutine()和WaitForSeconds()函数:
```c#
using UnityEngine;
using System.Collections;
public class TimerExample : MonoBehaviour {
public float delayTime = 3f;
private void Start() {
StartCoroutine(StartTimer());
}
private IEnumerator StartTimer() {
yield return new WaitForSeconds(delayTime);
// 在此处添加计时器结束后要执行的代码
Debug.Log("Timer finished!");
}
}
```
2. 使用Time.deltaTime累加方式:
```c#
using UnityEngine;
public class Test : MonoBehaviour {
public float timer = 2f;
void Update() {
timer -= Time.deltaTime;
if (timer <= 0) {
Do();
timer = 2f; // 定时2秒
}
}
void Do() {
Debug.Log("每2秒执行一次");
}
}
```
3. 使用InvokeRepeating函数:
```c#
using UnityEngine;
public class Test : MonoBehaviour {
void Start() {
// 0秒后,每1秒执行一次Do
InvokeRepeating("Do", 0, 1);
}
void Do() {
Debug.Log("每1秒执行一次");
}
}
```
4. 使用协程:
```c#
using System.Collections;
using UnityEngine;
public class Test : MonoBehaviour {
void Start() {
// 每1秒执行一次Do
StartCoroutine(Do());
// 如果写入参数Do()报红,可以写成以下调用形式
// StartCoroutine("Do");
}
IEnumerator Do() {
while (true) {
yield return new WaitForSeconds(1f);
Debug.Log("每1秒执行一次");
}
}
}
```
以上是Unity中实现协程计时的几种常见方法。你可以根据实际需要选择其中一种来实现你的计时功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Unity_计时器实现的四种方式](https://blog.csdn.net/m0_69778537/article/details/130299794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [unity学习----协程与计时器](https://blog.csdn.net/m0_48926221/article/details/126062351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]