【问题标题】:Handle too many textures Unity处理太多纹理 Unity
【发布时间】:2018-04-27 18:41:51
【问题描述】:

目前我的一个问答游戏需要很多基于提问的鲜花图片。 我可以说总共有 250 多张图像,每张分辨率为 512x435。 加上其他游戏纹理一次加载。

因此,当打开显示所有这些图像的游戏屏幕时,它会当场崩溃。 我正在 iPhone 设备上对此进行测试。那么如何处理这么多纹理呢?我被困在这一点上。

这里是花朵纹理的概述。

我在网格视图中显示所有这些,因此在一个可滚动的屏幕中全部显示。 现在我希望你能理解我的观点。

【问题讨论】:

  • 通常对于这么多纹理,您会使用纹理映射,而且由于您不会为苹果设备使用 512x435 尺寸,因此您可以大大降低它们的质量,并且它们不会占用尽可能多的 RAM,这很可能是您的原因粉碎,因为您试图加载太多对象并溢出 RAM。

标签: unity3d textures sprite texture-atlas


【解决方案1】:

哇。好多花啊。。。。 好的,如果您需要所有这些纹理,并且只在编辑器中显示它们,我会将它们分组到文件夹中。

即使您将蓝色从红色排序.....等只是人类可读的目录,它也会有很大帮助,因为您不会一次加载所有图像。

如果您在运行时加载所有这些纹理,我认为您不会因为统一优化您构建的可执行文件,我建议您不要一次加载所有图像,因为您将使用大量 RAM,尤其是如果这些图像是 512 像素或更大。

【讨论】:

  • 只需将鲜花分成一组,例如,25 朵左右到单独的文件夹中。如果您使用的是低端 PC,它会在您浏览项目时加快加载时间,并且不必在一个文件夹中加载 250 多个纹理。
【解决方案2】:

在应用程序中,您可以在屏幕上一次将它们拆分为 25 个,您可以向右滑动以转到下一个 25 个或滑动回上一个。这就是我不久前统一解决类似问题的方式。

【讨论】:

    【解决方案3】:

    您需要减少一次加载的这些图像的数量,尝试在看不到它们时使用某种管理脚本禁用大多数图像渲染组件,而不是简单地将它们从相机上移开并尝试调节一次渲染的数量。如果这不起作用,问题可能是图像的总大小大于设备的内存量。即使 iPhone X 只有 3GB 内存,请检查您的图像总数是否大于或接近 1GB-3GB 范围,unity remote 5 可能将这些图像存储在内存或临时内存中。无论如何,在使用移动设备时尝试压缩图像总是一个好主意,尝试将它们放入纹理图集中或降低它们的质量,直到 iphone 可以处理它,你不应该依赖移动设备来渲染一次处理大量图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多