• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Xcode 9.1(和9.2) – 引用的精灵未执行在场景编辑器中添加的动作

IOS 来源:Roger 6次浏览

使用SpriteKit场景编辑器时遇到了一些意外的行为,并怀疑是否有其他人有相同的问题。Xcode 9.1(和9.2) – 引用的精灵未执行在场景编辑器中添加的动作

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

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


===========解决方案如下:

我问过类似的问题只是一天: XCode 9: SKEditorReference doesn’t allow animations?

我能得到这个工作的唯一办法是把isPaused得到我想要进行动画确切精灵节点(A REF内节点 – 我创建了一个完整的sks场景/文件并将其拖放到我的主场景中)。

我在顶层尝试isPaused = false,主场景didMove查看无效,然后将isPaused = false添加到主参考节点,无效。它只有在我添加isPaused = false的时候才起作用,我试图进行动画处理。我从主要的& ref节点中删除了isPaused = false,并且只要它仍然在精灵节点上(在ref节点内),我正尝试设置动画:成功。

底线似乎是在参考节点内的任何精灵都需要isPaused = false。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)