C# 使用收益率WaitForSeconds

C# 使用收益率WaitForSeconds,c#,unity3d,unityscript,C#,Unity3d,Unityscript,我可能会问一些非常明显的问题,我忽略了一些事情,但我试图在它做某事之前创造一个停顿 我在网上看到很多地方都在使用它- yield WaitForSeconds(2); 但是我得到一个语法错误 “错误CS1528:应为;或=(无法指定构造函数参数 在声明中)(CS1528)(大会CSharp) 这让我很困惑,因为我不确定yield作为一个关键字的真正含义或作用,我假设WaitForSeconds是它的一个类,构造函数中有“2”(而不是在声明中),任何帮助都将不胜感激。谢谢!你想要的是不要使用IE

我可能会问一些非常明显的问题,我忽略了一些事情,但我试图在它做某事之前创造一个停顿

我在网上看到很多地方都在使用它-

yield WaitForSeconds(2);
但是我得到一个语法错误

“错误CS1528:应为;或=(无法指定构造函数参数 在声明中)(CS1528)(大会CSharp)


这让我很困惑,因为我不确定
yield
作为一个关键字的真正含义或作用,我假设
WaitForSeconds
是它的一个类,构造函数中有“2”(而不是在声明中),任何帮助都将不胜感激。谢谢!

你想要的是不要使用IEnumerator

IEnumerator Example() 
{
    print(Time.time);
    yield return new WaitForSeconds(5);
    print(Time.time);
}
然后你会问:我怎么称呼这个

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);
}

我刚刚阅读了Jon Skeet在评论中的帖子,我也推荐它,它包含了非常有价值的信息。

您正在使用统一的Javascript代码,并尝试使用C语言,这就是为什么您会收到错误消息的原因

如果在如下页面上单击C语言选择器 您将获得以下C#的示例代码:


“我真的不确定关键字“yield”的真正含义或作用”-这将是首先要解决的问题。我建议你找一本好的C语言书来解释迭代器块。在我看来,尝试用你不懂的语言编写代码是个坏主意。我有一篇关于迭代器块的文章()但是一本书会更详细。谢谢你的帮助,我一定会仔细阅读海报中提到的如下页面:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    IEnumerator Example() {
        print(Time.time);
        yield return new WaitForSeconds(5);
        print(Time.time);
    }
}