调用Unity方法约定:yield和SendMessage

时间:2014-04-19 17:11:41

标签: unity3d coroutine

在Unity中调用方法的两种主要方法是:

我已经问过使用它们的不同情况,看起来像是这样:

  • gameObject.SedMessage():没有内在动作。适合模块化。
  • yield script.Function():inmtediatly actions。对象必须更多地了解不同的调用,在其他情况下,调试可能是一项艰巨的任务。

然而,我仍然没有明确表示。例如,如果我有一个有自己规则的游戏,那么默认情况应该是什么?

另外我发现了其他问题:如果我调用script.function()而没有yield,Unity只在第一帧中执行代码的一部分,因此函数的其余部分将不起作用。它很有道理但有问题。

1 个答案:

答案 0 :(得分:0)

还有另一种调用函数的方法,它比SendMessage()Coroutines

快得多

获取对象的引用,然后只需调用该函数。

reference.YourFunction();

要获得参考,您可以在游戏开始时找到您的对象。然后使用GetComponent()函数查找附加到GameObject的类。

private MyObject reference;

void Awake()
{
    reference GameObject.Find("MyObject").GetComponent<MyObject>();
}

如果您的游戏有自己的规则,那么不要过分担心您如何调用您的功能。请记住,是编程,您可以随心所欲地执行