在Unity中,为什么精灵图集中的精灵也会单独加载到真机内存中?

问题描述 投票:0回答:1

如上面 android 设备上的内存分析器快照的屏幕截图所示,精灵(绿色框中所示)实际上全部打包到精灵图集(蓝色框中所示)中。这应该是正确的吗?如果不是我该如何解决这个问题?

一些细节:

  1. 我没有使用Resources文件夹。 “Sprites”文件夹和 Sprite Atlas 资源都存在于我为它们创建的文件夹中,位于资源下方。
  2. 为了获取精灵,我尝试了
    return _atlas.GetSprite(key);
    ,或者只是直接引用精灵本身
    public Sprite spriteExample;
    。内存快照显示几乎相同的结果。相同的绘制调用、单独加载的精灵、内存使用几乎相同。有人可以确认第二种使用精灵图集的方法是否正确吗?谢谢!
  3. 我知道分析器还分析编辑器相关的内容,这就是我在网上搜索的大多数类似问题的原因。然而我的内存快照是从真正的 Android 手机上拍摄的。
unity-game-engine
1个回答
0
投票

我自己找到了答案。在一些图像中,我使用粒子系统使其更加精美,其中在形状部分下,我使用了与发射器形状相同的纹理。这导致内存中出现重复的纹理。我现在没有好的解决方案,所以我只是删除了粒子系统。节省约 100 MB 内存。

© www.soinside.com 2019 - 2024. All rights reserved.