Swift 首次加载新场景会出现延迟

Swift 首次加载新场景会出现延迟,swift,sprite-kit,skscene,Swift,Sprite Kit,Skscene,我正在用SpriteKit和swift制作一个Xcode 6游戏。当我第一次从起始场景转移到“游戏场景”时,需要5到10秒。我试着从其他场景转到这个场景,但我仍然有同样的延迟。起初我以为这是代码,但这个问题只是最近才开始的,而且,在我第一次进入这个场景后(它滞后),然后我转移到另一个场景(游戏结束),当我回到它时,它不再滞后。这只是我第一次转到这个场景时的延迟。我还尝试制作一个新项目,将所有场景中的所有代码复制粘贴到一个新场景中。如果有一个简单的解释,请帮助。我不明白为什么只有我第一次去现场时才

我正在用SpriteKit和swift制作一个Xcode 6游戏。当我第一次从起始场景转移到“游戏场景”时,需要5到10秒。我试着从其他场景转到这个场景,但我仍然有同样的延迟。起初我以为这是代码,但这个问题只是最近才开始的,而且,在我第一次进入这个场景后(它滞后),然后我转移到另一个场景(游戏结束),当我回到它时,它不再滞后。这只是我第一次转到这个场景时的延迟。我还尝试制作一个新项目,将所有场景中的所有代码复制粘贴到一个新场景中。如果有一个简单的解释,请帮助。我不明白为什么只有我第一次去现场时才会延迟。如果没有一个简单的答案,我想我必须再次通读所有的代码。感谢您的帮助。谢谢


-Callum

第一次启动场景时,您的场景可能正在将纹理或其他文件加载到内存中,然后这些纹理或文件将在会话的其余部分保留在内存中。如果有正在场景中加载的纹理地图集,则可以使用以下方法预加载这些纹理地图集:

SKTextureAtlas.preloadTextureAtlases(textureAtlases: [AnyObject]!, withCompletionHandler completionHandler: (() -> Void)!)

8个月后,我回到这个项目,发现这是因为我使用了一个非特定的字体名称。我使用的字体是“Feel Marker”,但它应该是“Feel Market Thin”。如果您没有给出确切的字体名称,则需要几秒钟的时间才能确定它不是特定的,因此将使用默认字体

以下是所有IOS字体及其特定类型的列表:


确保重复使用纹理引用,而不是每次分配相同的纹理。使用地图集并直接从地图集加载(即不要让sprite工具包搜索您的地图集)。尝试在后台预加载一些地图集。如果资源太多,无法避开延迟,则显示加载屏幕并在后台线程上初始化场景。这将允许您在主线程上显示动画加载屏幕。