Rog*_*ger 8 xcode ios sprite-kit
我在使用SpriteKit场景编辑器时遇到了一些意想不到的行为,并想知道其他人是否有同样的问题.
我在场景中创建了一个精灵,并添加了动作以使用场景编辑器移动它.单击编辑器上的动画按钮时,动作可以正常运行.我使用场景编辑器中的SKReferenceNode对象将此场景的引用添加到主场景,并且精灵在编辑器中按预期显示在主场景中.然而,当我构建并运行应用程序时,精灵会出现但没有动作运行.我在Xcode 9.2 beta上试过这个并得到了相同的结果.如果我直接从主视图控制器加载精灵场景,所有的动作按预期执行,所以它似乎是引用节点的问题.我还发现,如果我在主场景swift类中覆盖didMove(to :),并在其中放置一个断点,那么只要在它到达断点时点击继续,所有Actions按照预期在引用的精灵上播放.如果我禁用断点,则没有操作在引用的精灵上播放.(所以我的解决方法是简单地使用断点,然后按下继续按钮)
另一个有趣的观察 我打开了一个使用旧版Xcode创建的示例项目,并且引用的sprite执行了他们的Action.我将这个旧的SKS文件复制到我的项目中并且Actions工作正常......直到我编辑了SKS文件(添加了另一个Action),然后它们再也没有工作过.
小智 9
我有同样的问题,这让我发疯.我尝试在场景和各个精灵上设置.isPaused.除了插入断点方法之外什么都没有用.那不是解决方案.
我发现如果我将暂停设置为true和false(这是我想要的值),那么它适用于所有精灵.
override func didMove(to view: SKView) {
self.isPaused = true
self.isPaused = false
}
Run Code Online (Sandbox Code Playgroud)
这是场景编辑器中一个非常烦人的错误,应该修复.
小智 1
前几天我问了一个类似的问题: XCode 9: SKEditorReference does not allowed Animations?
我能够让它工作的唯一方法是将 isPaused 放在我试图设置动画的确切精灵节点上(在引用节点内 - 我创建了整个 sks 场景/文件并将其拖放到我的主场景中)。
我在顶层尝试了isPaused=false,主场景didMove查看没有效果,然后在主参考节点添加isPaused=false,没有效果。仅当我添加 isPaused=false 我试图设置动画的实际精灵时,它才起作用。我从主节点和引用节点中删除了 isPaused=false ,只要它仍在精灵节点上(在引用节点内),我就尝试设置动画:成功。
底线似乎是引用节点内的任何精灵都需要 isPaused=false 。
| 归档时间: |
|
| 查看次数: |
670 次 |
| 最近记录: |