UNity用协程写一个倒计时每30秒重复并输出成string
时间: 2024-02-29 20:52:58 浏览: 69
可以使用Unity的协程来实现这个功能。以下是一个简单的示例代码:
```csharp
using UnityEngine;
using System.Collections;
public class CountdownTimer : MonoBehaviour
{
private float timeRemaining = 30f;
private WaitForSeconds waitTime = new WaitForSeconds(30f);
private void Start()
{
StartCoroutine(Countdown());
}
private IEnumerator Countdown()
{
while (true)
{
yield return waitTime;
timeRemaining -= 30f;
string timeString = string.Format("{0:00}:{1:00}", Mathf.FloorToInt(timeRemaining / 60f), Mathf.FloorToInt(timeRemaining % 60f));
Debug.Log(timeString);
}
}
}
```
在这个代码中,我们定义了一个 `timeRemaining` 变量,用于记录剩余的时间,初始值为 30 秒。我们还创建了一个 `waitTime` 变量,用于等待 30 秒。
在 `Start()` 函数中,我们启动了一个协程 `Countdown()`,这个协程会一直循环执行下去。
在协程中,我们首先使用 `yield return waitTime` 等待 30 秒,然后将 `timeRemaining` 减去 30 秒,计算出剩余时间的分钟数和秒数并将它们格式化成一个字符串,最后使用 `Debug.Log()` 输出这个字符串。
这样,每隔 30 秒,我们就会在控制台输出一次剩余时间的字符串。
阅读全文