performance - 找到游戏对象的更好(和更便宜)的方法?

标签 performance unity3d

我有一个很大的困惑,我希望有人能给我一些建议:)

在性能方面,为了找到一个游戏对象,有什么更“便宜”的方法?

1)

public GameObject myGO;

2)
GameObject myGO = this.transform.parent.GetChild(0).GetChild(0).gameObject;

3)
GameObject myGO = GameObject.Find("myObject")

最佳答案

1 是最快的,因为您的变量中已经有了引用。无需计算。

在 2 中,您有几个引用重定向,速度很快。您还可以调用函数来获取第零项,这也应该足够快。我会说这是第二好的。

3、Unity在场景中的gameobjects中寻找名字。我不知道实现细节——除非他们在做某种散列,否则会有一些字符串比较。无论哪种方式,这感觉都是最慢的。

但是,除非您在一帧中执行 100 次这样的代码,否则您无需担心此类代码的效率。如果您想让您的游戏更高效,请多关注对象实例化。

关于performance - 找到游戏对象的更好(和更便宜)的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54476548/

相关文章:

c# - 循环遍历字符串数组以创建这些字符串的类变量

java - javascript中大量数据的高性能图表

java - android studio 中未检测到我的设备(驱动程序问题)

algorithm - 文本自动完成的最佳数据结构是什么?

c++ - 最快的 C++ map ?

c# - Mac 硬件光标重叠自定义光标统一 c#

performance - Haskell 中的高效数字读取

algorithm - 如何确保在三消游戏关卡中目标进球不是不可能的?

ios - 位置变化时极地到笛卡尔的转换

c# - 在 Unity 2D 中翻转 2D Sprite 动画