目前,我正在使用SKS文件通过空节点设置我的精灵位置,或者在某些情况下,我实际上是将精灵拖放到场景编辑器中。在遇到一些加载问题之后,我被建议通过纹理图集预加载所有纹理。在转向此方案之前我遇到的一个问题是,每次加载和重新加载场景时,我的didMoveToView
方法使用的内存越来越多。我的SpriteKit游戏中有3个场景:主菜单,关卡选择和关卡场景。我的场景应如何管理?我应该创建每个实例并将它们全局存储以避免使用太多内存吗?目前,每个场景都能够初始化并调用presentScene
。在我的关卡场景中,需要完成大量的设置,当从关卡选择场景加载时,我不确定是否应该一遍又一遍地重新创建。我希望这清楚地表明我在问什么。提前谢谢。
答案 0 :(得分:0)
SK在幕后完成所有内存管理和缓存。你真的无法控制任何一个。如果您的代码缺少内存泄漏或保留某个周期,您的应用程序的内存使用量将在某个时间点达到最高。
如果需要,您可以在[self removeAllChildren];
方法中手动“取消”所有场景对象和-(void)willMoveFromView:(SKView *)view
。