📜  unity 等待几秒钟 - C# (1)

📅  最后修改于: 2023-12-03 15:20:53.196000             🧑  作者: Mango

Unity 等待几秒钟 - C#

当我们使用 Unity 编写游戏或应用时,经常会遇到需要等待一定时间的场景,例如延迟执行某个函数、实现动画效果的暂停、等待资源加载等。在 C# 中,我们可以使用不同的方法来实现等待几秒钟的功能。

下面是一些常用的方法,供程序员在 Unity 中使用:

1. 使用 Coroutine
using System.Collections;
using UnityEngine;

public class WaitExample : MonoBehaviour
{
    private IEnumerator Start()
    {
        Debug.Log("开始等待");
        yield return new WaitForSeconds(3f);
        Debug.Log("完成等待");
    }
}

上述代码使用 WaitForSeconds 函数创建一个等待时间为 3 秒的协程,并在完成等待后打印相应信息。在 Unity 中,协程可以与 StartCoroutine 函数一起使用来实现等待功能。

2. 使用 Invoke
using UnityEngine;

public class WaitExample : MonoBehaviour
{
    private void Start()
    {
        Debug.Log("开始等待");
        Invoke("CompleteWait", 3f);
    }

    private void CompleteWait()
    {
        Debug.Log("完成等待");
    }
}

上述代码使用 Invoke 函数来延迟调用 CompleteWait 方法,实现等待 3 秒后执行相应逻辑。

3. 使用新线程

虽然 Unity 不支持在主线程之外创建新线程,但如果你在Unity项目中使用了.NET 2.0 Subset 或 .NET 4.x Subset 作为脚本运行时版本,你可以使用 Task.Delay 函数、async/await 模式来达到等待的效果。以下是示例代码:

using System.Threading.Tasks;
using UnityEngine;

public class WaitExample : MonoBehaviour
{
    private async void Start()
    {
        Debug.Log("开始等待");
        await Task.Delay(3000);
        Debug.Log("完成等待");
    }
}

上述代码使用 Task.Delay 函数在一个新线程上等待 3 秒钟,然后使用 await 使程序在此等待期间暂停,待等待完成后,将恢复执行并打印相应信息。

以上是常用的等待几秒钟的方法示例,根据你的需求和具体场景,你可以选择适合的方法实现等待功能。无论哪种方法,都能很好地满足各种等待时间的需求。

希望以上信息能对你有所帮助!