ios - Xcode 9.1(和 9.2)- 引用的 Sprite 不执行场景编辑器中添加的 Action

标签 ios xcode sprite-kit

我在使用 SpriteKit 场景编辑器时遇到了一些意想不到的行为,想知道是否有其他人遇到同样的问题。

我在场景中创建了一个 Sprite ,并添加了使用场景编辑器移动它的 Action 。当我单击编辑器上的动画按钮时, Action 运行良好。我在场景编辑器中使用 SKReferenceNode 对象将对此场景的引用添加到主场景,并且 Sprite 出现在编辑器中预期的主场景中。但是,当我构建并运行该应用程序时,会出现 Sprite ,但不会运行任何操作。我已经在 Xcode 9.2 beta 上试过了,得到了相同的结果。 如果我直接从主视图 Controller 加载 Sprite 场景,所有的 Action 都会按预期执行,所以这似乎是引用节点的问题。 我还发现,如果我在主场景 swift 类中覆盖 didMove(to:),并在其中放置一个断点,然后在遇到断点时点击继续,所有 Actions 都会按预期在引用的 Sprite 上播放。如果我禁用断点,则不会在引用的 Sprite 上播放任何 Action 。 (所以我的解决方法是简单地使用断点,然后点击继续按钮)

另一个有趣的观察。我打开了一个用旧版本的 Xcode 创建的示例项目,引用的 Sprite 执行了它们的 Action 。我将这个旧的 SKS 文件复制到我的项目中,并且 Actions 工作正常......直到我编辑了 SKS 文件(添加了另一个 Action),然后他们再也没有工作过。

最佳答案

我遇到了同样的问题,这让我发疯。我尝试在场景和单个 Sprite 上设置 .isPaused。除了插入断点方法外,没有任何效果。这不是解决方案。

我发现,如果我将 is paused 设置为 true 和 false(这是我想要的值),那么它适用于所有 Sprite 。

 override func didMove(to view: SKView) {
    self.isPaused = true
    self.isPaused = false
}

这是场景编辑器中一个非常烦人的错误,应该修复。

关于ios - Xcode 9.1(和 9.2)- 引用的 Sprite 不执行场景编辑器中添加的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47615847/

相关文章:

ios - 从后台启动应用程序后,暂停层取消暂停

ios - 如何使 UIViews 以淡入方式过渡到可见状态?

ios - 应从 Azure 移动服务自定义登录返回什么 HTTPResponse 代码?

ios - 预期标识符或 ´(´ 括号错误 (?)

ios - Spotify 用户专辑不匹配

xcode - 子类化仅公开便利 init 的类

ios - uinavigationcontroller 内的选项卡栏 Controller

ios - 将 indexpath 标记传递给 tableview 中原型(prototype)单元格内的按钮

sprite-kit - GKEntity 和状态机

ios - Sprite 套件 | swift 3 |将 SKWarpGeometry 应用于节点