返回「计算机、信息技术与工程」
Unity editor模式不运行游戏的情况下,内存加载的图片导致游戏图集加载错误
本文目录 3 个章节
Unity editor模式不运行游戏的情况下,内存加载的图片导致游戏图集加载错误
note · 我的 UWA 问答 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者;回答保留当时语境,技术结论可能受 Unity 版本、平台和项目条件限制。
问题
Unity editor模式下编辑prefab,图片会加载到内存中。导致一开始运行游戏的时候会触发相关图集SpriteAtlasManager.atlasRequested的提前调用,导致图集加载错误。

上图是,过早的图集加载,失败时检测到内存中加载的图片。
有没有办法在运行游戏的时候清除编辑预制体时内存中的图片图集?或者类似的办法?
补充:在不运行游戏的情况下调用内存查看的接口,发现内存中仍然有很多图片被加载了

- 提问者:潜行医生-577493
- 提问时间:2021-04-13 18:12:33
我的回答
这个问题本质上是,当引用到Atlas的Sprite加载时,如果内存中没有Atlas,就会触发加载图集的”请求“(atlasRequested)。Editor下编辑prefab,会生成这个请求,在游戏运行的第一帧,这个请求函数会被调用。而这个请求是由Native层发出的([RequiredByNativeCode]),所以我们没有办法控制,跟卸载内存中的资源是没有关系的。

而这个请求也只会在运行时的第一帧进行调用,所以,不要在第一帧注册atlasRequested事件,在第一帧之后,或者在需要加载相应Prefab时注册该函数,就可以避免在启动游戏时调用该函数。

- 回答时间:2021-04-14 07:05:16
- 最后更新:2021-04-14 07:05:16
- 采纳状态:已采纳
来源与关系
- 上位集合:我的 UWA 问答
- UWA 标签:项目管理、资源管理、内存管理
- 原始问题:Unity editor模式不运行游戏的情况下,内存加载的图片导致游戏图集加载错误
- 源页最后更新:2021-04-14 07:05:16