我目前正在开发Unity中的一个项目,该项目需要访问“Resources”文件夹中的图像并将它们作为Sprites加载,以便在运行时使用。
在用户打开特定窗口之前,不需要有问题的精灵。只有这样他们才是必要的。问题是,有150多个图像(分辨率在120x120和512x512之间)可供访问,并且在游戏执行期间(任何时刻)一次只能显示一个图像。
所以我的问题是:从优化的角度来看哪个选项更好?
在游戏开始时将所有图像作为精灵加载到变量中,然后在必要时使用它们?
仅在必要时加载图像?
可能很重要的信息:我正在使用Resources.Load()来访问我需要的所有精灵
我不知道问题是否有“线性”答案。如果问题难以理解,或者没有像我想象的那样容易回答,请通知我。
提前谢谢。
答案 0 :(得分:1)
我说使用类似Texture Packer的内容将它们放入单个精灵表中,这样就可以加载少量大图像,这些图像通常比大量小图像运行得更快。然后你可以根据需要把它分开。您会看到性能提升,因为您每帧都会向GPU发送较少的内容。
至于你提供的选项,我赞成预加载图片而不是等到需要它们。除非你非常关心节省空间,否则最好让场景加载时间更长(当所有东西都被冻结时,游戏玩家熟悉此时加载屏幕),而不是等到玩家已经在游戏中,参与其中,突然他们不得不打破flow一秒钟,然后弄清楚游戏是否只是冻结了。他们不知道你在做什么,只会减损这种经历。