ngui图集优化

2015年01月31日 09:24 0 点赞 0 评论 更新于 2025-11-21 15:46

今天给大家分享一下NGUI图集优化的相关内容。因为我们开发的项目不一定都在电脑或高配置设备上运行,所以本文将着重介绍在低内存设备上进行NGUI图集优化的一些注意事项。

我正在开发一款2D简单游戏,打算全程使用NGUI来完成,包括游戏内容的呈现。起初设想很美好,开发过程也很顺利,游戏在PC上运行得十分流畅。

然而,当在诺基亚Lumia 520手机上进行测试时,问题出现了。这款手机可用内存为512M,微软标明单个程序可申请的最大内存为180M(详见:http://msdn.microsoft.com/library/windows/apps/jj681682(v=vs.105).aspx)。游戏在该手机上运行时,并非直接崩溃,而是部分资源无法加载,具体表现为有些图片无法显示,原本绚丽的背景变成了灰色块状。

经过分析发现,这些无法显示的图片来自较大的图集,例如2048 * 2048尺寸的图集。显然,是因为设备无法申请到足够的内存,不过NGUI或Unity通过某种机制保证了程序不会崩溃。

为了解决这个问题,我进行了一系列调整,最终使游戏能够在Lumia 520上较为完美地运行。以下是我总结的一些优化建议:

  1. 调整图集大小:尽量将图集大小控制在512 512以内,绝对不要超过1024 1024。因为在低内存设备上,较大的图集可能会导致内存申请失败,从而影响图片的正常显示。
  2. 区分UI和游戏内容的制作方式:对于UI部分,使用NGUI制作图集是比较合适的;而对于游戏内容方面,建议采用Native 2D的Sprite。这样可以根据不同部分的特点,更合理地利用内存资源。
  3. 使用双Camera区分游戏内容和UI:通过使用两个Camera,可以将游戏内容和UI进行有效的区分,避免它们在渲染过程中相互干扰,从而提高渲染效率,减少内存占用。
  4. 谨慎使用NGUI的Sprite Animation:虽然NGUI使用起来很方便,但在处理动画时,尽量避免使用它的Sprite Animation。因为该功能无法自由缩放精灵,相比之下,使用原生2D修改属性会更加灵活和便捷。