3D Touch Peek和Pop弄乱了SpriteKit的物理原理

cra*_*777 5 peek sprite-kit swift 3dtouch

我已经在游戏中实现了3DTouch监视和弹出动作。

本质上,我有一个MenuScene和一个GameScene。在MenuScene我有2 CollectionViewControllers(世界选择和级别选择)。我可以从世界选择菜单中使用“窥视”和“弹出”来预览级别选择菜单。一切正常,但是我有1个问题。

当我在中使用peek和pop时MenuScene,然后过渡GameScene到玩游戏时,物理状态似乎混乱了。施加的冲动非常低,因此我的球员只跳了大约1/5的高度。

即使增加在这种情况下进行调整的冲动也不起作用,但跳跃高度始终保持不变,无论我使用什么值都无所谓。

看来applyForce,我将其与核心运动配合使用来移动播放器的速度更加缓慢。

奇怪的是,它似乎只影响跳跃。我的拍摄代码(也使用脉冲)仍然可以正常工作。

当我在菜单场景中使用“窥视”和“弹出”按钮时,几乎感觉像是播放器较重,但是我看不到任何迹象表明。

如果我不使用peek和pop,MenuScene而只是转到GameScene我没有这个问题,那么一切都会像往常一样。

到目前为止,我尝试的步骤均无济于事。

  1. 退出时尝试取消注册预览委托MenuScene

     unregisterForPreviewing(withContext: ...)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将预览委托直接添加到世界菜单CollectionViewController,而不是将其添加到r ootviewcontroller

  3. 使用控制台打印出我的GameScene物理值,看是否有些混乱。

我想念什么吗?偷看动作和流行动作为什么会弄乱SpriteKit的物理特性?