Tag Archives: ios

Unity如何禁止手机进入自动休眠

要禁止移动设备自动进入休眠,就一定需要调用系统API。对于Unity项目来说,有两种方法。其一是使用其它语言比如Obj-C, java为Unity写专门的库,然后通过Unity脚本调用。另一种方法是用Unity生成xcode或者eclipse工程,然后直接在工程中修改。由于第二种方法比较简单,我们在demo中采用第二种方法。

1) ios

打开xcode工程,找到UnityAppController.mm。在didFinishLaunchingWithOptions方法的return之前加上下面这行代码即可:

2) android

打开eclipse工程,找到UnityPlayerNativeActivity.java。在onCreate方法的最后加上下面这行代码即可:

 

贴图占用内存过大造成闪退的问题

最近做的小游戏,在后台开多几个程序的时候会发生闪退现象。设备是iPod touch4。经过反复测试发现是使用了3个1024×1024的大贴图导致内存占用过高引起的。经过一番google决定使用如下方法缓解:

  1. 在不明显损失画面效果的情况下尽量缩小贴图。
  2. 尽量将零散的贴图组成Sprite Sheet来使用。
  3. 在场景的init和dealloc方法中分别调用purgeCachedData来释放不使用的贴图缓存。

    之所以分开调用两次,是因为我使用了场景切换效果(CCTransitionXXX),有两个场景同时存在的情况。经过反复测试发现这样效果最好。

另外:

  • 使用removeUnusedSpriteFrames可以释放更多内容。
  • 使用dumpCachedTextureInfo可以查看缓存详情。

参考: