假设我有一个预制的物体。
例如,我可以手动将其添加到层次结构中,也可以通过某种“唤醒”方法动态地实例化它。
我的问题是,第一种方法会更快吗? 在游戏运行之前,Unity是否根据层次结构执行任何优化?
还是一样,并且内部在游戏开始之前,Unity只是在层次结构上的所有对象上调用Instantiate方法?
顺便说一句:你们中有人知道一本深入讲授Unity的书吗?
答案 0 :(得分:0)
我认为您可能在这里过度优化。您担心的事情可能不会对您的游戏产生任何可衡量的影响。
我建议从可用性的角度出发。如果您的对象在场景中是永久的,或者应该在场景中开始,为什么不在运行之前将其放入层次结构中?这样一来,您就可以对其进行查看,四处移动以及查看其与其他对象的交互方式。
另一方面,如果您应该动态地创建对象,那么它可能不应该一开始就出现在场景中,而应该只在需要时创建。
我会考虑您的用例来解决这类问题,而不用担心在开发过程中进行过多的优化。仅当遇到运行缓慢等情况时,才使用探查器进行测试,以查看可以在何处偷工减料。
要记住的一件事是,高度优化的未完成游戏无法玩,而优化程度较低但未完成的游戏则不能玩。花更多的时间在游戏机制上并完成它,然后在需要时对其进行优化。