看下面这个简单的代码:
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);
}
}
有人可以向我解释为什么它不起作用吗?谢谢你的时间。
最佳答案
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返回程序,指针返回执行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);
}
}
关于c# - C#上的WaitForSeconds,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34242353/