【发布时间】:2018-10-06 02:21:52
【问题描述】:
这并不难测试,但我很好奇是否有人已经测试过:将新实例化的游戏对象设置为层次结构中的第一个和最后一个同级是否存在性能差异?例如,我可以按降序排列游戏对象列表,并将每个游戏对象设置为最后一个兄弟对象,或者按升序对其进行排序,并将每个对象设置为第一个以获得我想要的顺序。
我之所以这么问,是因为它让我想起了在链表的开头插入而不是在末尾插入以避免遍历列表的性能增益。
【问题讨论】:
-
对于 ILSpy 来说,这听起来像是一个很棒的练习。 alanzucconi.com/2015/09/02/…
-
我认为只是时间差异但有趣的文章会更容易,谢谢。
-
是的,只是觉得它会是一本好书。
-
据我所知,如果您实例化一个对象然后更改其父对象,则需要 Unity 重新计算变换层次结构(它们是固定大小的数组)两次。如果您在指示父级时进行实例化,则将重新计算一次。 SetAsLastChild 可能没有任何成本(除了上述和一些函数开销)。 SetAsFirstChild 需要重新计算该对象的子列表(但少于添加新子列表)。
-
我希望有一种方法来实例化,同时指示父级并指定索引(ala SetSiblingIndex)。我正在尝试通过 SetActive(bool) 重用预制件,而不是销毁它们并重新实例化。这就像一个带有行的表格视图,但我必须在某些行之间插入分隔符 - 这取决于您正在查看的页面。
标签: performance unity3d gameobject