使用yield WaitForSeconds

Mik*_*ant 4 c# unity-game-engine unityscript

我可能会问一些非常明显的东西而且我忽略了一些东西,但是我试图在它做某事之前创建一个暂停.

我已经看到这在网上很多地方使用 -

yield WaitForSeconds(2);
Run Code Online (Sandbox Code Playgroud)

但是我得到一个语法错误,

"错误CS1528:预期;或=(无法在声明中指定构造函数参数)(CS1528)(Assembly-CSharp)

这让我感到困惑,因为我不确定yield关键字的真正意义或作用是什么,而且我假设它WaitForSeconds是一个类,其中"2"在构造函数中(不在声明中),任何帮助都将受到赞赏.谢谢!

Fun*_*onR 5

你想要的是使用IEnumerator.

IEnumerator Example() 
{
    print(Time.time);
    yield return new WaitForSeconds(5);
    print(Time.time);
}
Run Code Online (Sandbox Code Playgroud)

然后你会问:我怎么称呼这个?

void Start() 
{
    print("Starting " + Time.time);
    StartCoroutine(WaitAndPrint(2.0F));
    print("Before WaitAndPrint Finishes " + Time.time);
}

IEnumerator WaitAndPrint(float waitTime) 
{
    yield return new WaitForSeconds(waitTime);
    print("WaitAndPrint " + Time.time);
}
Run Code Online (Sandbox Code Playgroud)

我刚刚阅读了Jon Skeet在评论中发布的链接,我也推荐它,它有非常有价值的信息.