C# 上的 WaitForSeconds

WaitForSeconds on C#

看看这个简单的代码:

function Start()
{
    yield WaitForSeconds (4);
    Application.LoadLevel(1);
}

有效!我正在尝试使用 C# 做一些类似的事情,但处理器只是忽略了 WaitForSeconds。这是我在 C# 中的代码:

using UnityEngine;
using System.Collections;

public class openingC : MonoBehaviour
{
    void Start()
    {
        executeWait(5);
        Application.LoadLevel(1);
    }

    void executeWait(float aux)
    {
        StartCoroutine(Wait(aux));
    }

    IEnumerator Wait(float seconds)
    {
        yield return new WaitForSeconds(seconds);
    }
}

有人可以向我解释为什么它不起作用吗?谢谢你的时间。

试试这个:

Thread.Sleep(500); //500 millisecond waiting...

Reference

public class openingC : MonoBehaviour
{
    void Start()
    {
        executeWait(5);
        Application.LoadLevel(1);
    }

    void executeWait(float aux)
    {
        StartCoroutine(Wait(aux));
    }

    IEnumerator Wait(float seconds)
    {
        yield return new WaitForSeconds(seconds);
    }
}

首先运行Start方法,调用executeWait,程序跳转到方法。它找到协程并启动 运行 它直到找到收益或方法结束。 Yield returns 给程序,指针返回到 executeWait 并完成该方法。指针返回到 Start 并调用 Application.LoadLevel。

您想挂起 LoadLevel 调用。

public class openingC : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Wait(5));
    }

    //You don't need executeWait

    IEnumerator Wait(float seconds)
    {
        yield return new WaitForSeconds(seconds);
        Application.LoadLevel(1);
    }
}

这个应该也可以吧

    IEnumerator Start()
    {
        yield return new WaitForSeconds(4);
        Application.LoadLevel (1); 
    }