Swift/IOS: SCNNode在SCNAction完成后出现return到它原来的位置,但是它的实际位置被SCNAction改变了
Swift/IOS: SCNNode appeared to return to its original position after SCNAction is finished, but its actual position was changed by SCNAction
我对 Swift 和 IOS 开发还很陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。
我试图通过 运行 一个节点上的 SCNAction 为静态 DAE 模型制作动画。然而,在 SCNAction 完成后(并且节点被移动),节点位置将立即回到其原始位置(加载静态 DAE 模型时的相同位置)。但是当我打印节点的位置时,我注意到节点的位置实际上因为 SCNAction 而改变了。当我在同一个节点上再次 运行 SCNAction 时,该节点将返回到最后一个 SCNAction 产生的结束位置,并从那里开始 SCNAction。我想知道为什么节点的实际位置和场景中出现的位置不匹配。
另一个有趣的事情是,当我按顺序 ([action1, action2]) 放置 SCNActions 时,节点不会 return 到其在动作之间的原始位置。但是如果在([action1, SCNAction.wait, action2])之间添加了SCNAction.wait,节点在等待的时候会return到原来的位置,然后从action1的结束位置重新开始action2 .
我试图在 SCNActions 结束时保持所有节点的位置。有什么方法可以防止它回到原来的位置吗?
不确定问题是否足够清楚。任何想法和想法表示赞赏。
您是否已确认该节点没有来自 Collada 文件的动画?动画和动作被一个接一个地评估。这些动作可能会覆盖动画的效果,直到它们完成(或暂停)。
与动作不同,动画不写入模型树 (node.position
),而只写入表示树 (node.presentationNode.position
)。
我对 Swift 和 IOS 开发还很陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。
我试图通过 运行 一个节点上的 SCNAction 为静态 DAE 模型制作动画。然而,在 SCNAction 完成后(并且节点被移动),节点位置将立即回到其原始位置(加载静态 DAE 模型时的相同位置)。但是当我打印节点的位置时,我注意到节点的位置实际上因为 SCNAction 而改变了。当我在同一个节点上再次 运行 SCNAction 时,该节点将返回到最后一个 SCNAction 产生的结束位置,并从那里开始 SCNAction。我想知道为什么节点的实际位置和场景中出现的位置不匹配。
另一个有趣的事情是,当我按顺序 ([action1, action2]) 放置 SCNActions 时,节点不会 return 到其在动作之间的原始位置。但是如果在([action1, SCNAction.wait, action2])之间添加了SCNAction.wait,节点在等待的时候会return到原来的位置,然后从action1的结束位置重新开始action2 .
我试图在 SCNActions 结束时保持所有节点的位置。有什么方法可以防止它回到原来的位置吗?
不确定问题是否足够清楚。任何想法和想法表示赞赏。
您是否已确认该节点没有来自 Collada 文件的动画?动画和动作被一个接一个地评估。这些动作可能会覆盖动画的效果,直到它们完成(或暂停)。
与动作不同,动画不写入模型树 (node.position
),而只写入表示树 (node.presentationNode.position
)。