有什么办法可以运行一个函数并获取返回值作为函数的参数吗?让我解释一下:我的代码中有大量的函数,它们只是在发生某些事情之前等待一定的时间。由于我只在一种情况下使用它们,因此我想将它们放入我的方法中,以某种方式使用它们。 (我正在使用Unity3D。)示例:是否可以在一个方法内部运行一个函数?
public void SayHiAfterSeconds(float seconds) {
StartCoroutine(sayHiAfterSeconds(seconds));
}
IEnumerator sayHiCoroutine(float seconds) {
yield return new WaitForSeconds(seconds);
print("Hi.");
}
我想将sayHiCoroutine函数放入SayHiAfterSeconds中。例如:
public void SayHiAfterSeconds(float seconds) {
StartCoroutine(IEnumerator() {
yield return new WaitForSeconds(seconds);
print("Hi.");
});
}
这可能吗? 谢谢。
@Valentin只是为了记录,这不是重复的。这是**协程** – Fattie
Hi @ 283。你说的很对,你偶然发现了关于Unity的一件有趣的事情。你经常会看到的功能,除了启动协程外,其他都不例外。 **在许多团队中,你这样做很常见:**主叫叫** SayHiAfter **。匹配协程**与下划线和小写字母相同,因此,**“_ sayHiAfter”**。我几乎要对你说“你应该”这样做,**这是Unity工程师常用的习惯用法。 – Fattie
非常清楚地注意到:**通常情况下,你从来没有永远永远,曾经使用下划线开始名称 - 这是一个真正令人难以置信的过时,愚蠢,糟糕的想法,从过去的事情不同。所以通常情况下,永远不要使用Unity中的“下划线开始名称”概念 - 永远不会。但这是一个非常特殊的情况。我可以说的是,我觉得在这种情况下它是恰当的(它表示“本地”“偶然”“相关”非常好),并且这是非常普遍的。所以,我建议你这样做。 – Fattie