3

我对 Swift 和 IOS 开发非常陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。

我试图通过在其中一个节点上运行 SCNAction 来为静态 DAE 模型设置动画。但是,在 SCNAction 完成后(并且节点被移动),节点位置将立即回到其原始位置(加载静态 DAE 模型时的相同位置)。但是当我打印节点的位置时,我注意到节点的位置实际上是因为 SCNAction 而改变的。当我在同一个节点上再次运行 SCNAction 时,该节点将返回到最后一个 SCNAction 产生的结束位置并从那里启动 SCNAction。我想知道为什么节点的实际位置与场景中出现的位置如此不匹配。

另一个有趣的事情是,当我将 SCNActions 按顺序排列时([action1,action2]),节点不会在动作之间返回到其原始位置。但是如果在([action1, SCNAction.wait, action2])之间添加了SCNAction.wait,则节点在等待期间会回到原来的位置,从action1的结束位置重新开始action2。

我试图在 SCNActions 结束时保持所有节点的位置。有什么办法可以防止它回到原来的位置?

不确定问题是否足够清楚。任何想法和想法都会受到赞赏。

4

1 回答 1

1

您是否验证过该节点不附带 Collada 文件中的动画?动画和动作一个接一个地被评估。这些动作可能会覆盖动画的效果,直到它们完成(或暂停)。

与动作不同,动画不写在模型树 ( node.position) 中,而只写在表示树 ( node.presentationNode.position) 中。

于 2019-03-04T11:48:25.853 回答