Swift 预装场景?敏捷的

Swift 预装场景?敏捷的,swift,sprite-kit,Swift,Sprite Kit,我正在制作一个platformer游戏,我的场景有400个不同的节点,所以当我从主菜单转到场景时 我在拍摄前有一个3秒的定格 我的问题是:当我在主菜单中时,有没有一种方法可以预加载场景以避免3s冻结(如果添加一些节点,冻结会增加) 我不确定您是否可以在不在主线程上的情况下添加节点。但它只是添加了需要3秒的节点,还是有更多的节点在进行?这些循环看起来像是用来添加项目的吗?也许您可以先异步创建它们,然后在一切就绪时才在主线程上添加它们?我想我错了。我试图在没有任何代码的情况下进入场景(更新函数中

我正在制作一个platformer游戏,我的场景有400个不同的节点,所以当我从主菜单转到场景时

我在拍摄前有一个3秒的定格

我的问题是:当我在主菜单中时,有没有一种方法可以预加载场景以避免3s冻结(如果添加一些节点,冻结会增加)


我不确定您是否可以在不在主线程上的情况下添加节点。但它只是添加了需要3秒的节点,还是有更多的节点在进行?这些循环看起来像是用来添加项目的吗?也许您可以先异步创建它们,然后在一切就绪时才在主线程上添加它们?我想我错了。我试图在没有任何代码的情况下进入场景(更新函数中没有代码,didMove函数中没有代码),这也花了3秒钟。因此,它似乎正在加载GameSecene.sks。如果在此处设置断点,它会花费很长时间:如果让nextScene=GameSecene(文件名为:“GameSecene”){进入下一步需要3秒?持续时间也是3秒。如果降低该值或将其删除,会发生什么情况?有几个问题:1)为什么会这样?
self.removeAllChildren()
2)如果删除转换(
let transition=SKTransition.douthood(持续时间:3)
)会发生什么?@departmentob我试过了,是的,3s冻结介于If let nextScene和let transition之间。3s的持续时间也是因为我先用1s尝试,但根本没有出现。 self.removeAllChildren()

if let nextScene = GameScene(fileNamed: "GameScene"){
      let transition = SKTransition.doorway(withDuration: 3)
      view!.presentScene(nextScene, transition: transition)
   }