问题标签 [scnaction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - SceneKit – SCNAction 和 CABasicAnimation 有什么区别?
我对 SceneKit 和 SpriteKit 还是很陌生,刚刚开始制作一些 SCNNode 的动画。
我不明白的一件事是何时使用SCNAction以及何时使用CABasicAnimation. SCNAction和之间有任何性能差异CABasicAnimation吗?
ios - Swift/IOS:SCNNode 在 SCNAction 完成后似乎回到了原来的位置,但它的实际位置被 SCNAction 改变了
我对 Swift 和 IOS 开发非常陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。
我试图通过在其中一个节点上运行 SCNAction 来为静态 DAE 模型设置动画。但是,在 SCNAction 完成后(并且节点被移动),节点位置将立即回到其原始位置(加载静态 DAE 模型时的相同位置)。但是当我打印节点的位置时,我注意到节点的位置实际上是因为 SCNAction 而改变的。当我在同一个节点上再次运行 SCNAction 时,该节点将返回到最后一个 SCNAction 产生的结束位置并从那里启动 SCNAction。我想知道为什么节点的实际位置与场景中出现的位置如此不匹配。
另一个有趣的事情是,当我将 SCNActions 按顺序排列时([action1,action2]),节点不会在动作之间返回到其原始位置。但是如果在([action1, SCNAction.wait, action2])之间添加了SCNAction.wait,则节点在等待期间会回到原来的位置,从action1的结束位置重新开始action2。
我试图在 SCNActions 结束时保持所有节点的位置。有什么办法可以防止它回到原来的位置?
不确定问题是否足够清楚。任何想法和想法都会受到赞赏。
ios - 在 SceneKit 中,当从 RunAction 的完成处理程序调用时,SCNAction 挂起
从 RunAction 的完成处理程序调用 SCNAction 似乎会挂起 SceneKit。
触摸事件或旋转设备似乎可以解除挂起。
重现:
1) 使用旋转飞船启动时使用的默认 SceneKit 项目。
2)替换动画代码:
和:
3)在模拟器或真机上运行(问题都是一样的)
4) 结果是:
宇宙飞船旋转正常
DONE ROTATE 打印出来 OK
现在挂了
点击屏幕(或将设备旋转到横向),然后移动发生 OK 并打印出 DONE MOVEBY。
我正在使用 C# 和 Visual Studio for Mac,但我怀疑它也使用 Xcode。
这是 SceneKit 中的错误吗?如何解决?
也许这与此处描述的问题相同:
swift - Swift SCNAction,旋转到四元数
我要控制的 SceneKit 场景中有一个 planeNode。为此,我想不断更新方向。由于欧拉角的奇点,我正在使用四元数。到目前为止,我正在直接更新planeNode.orientation并且效果很好。唯一的问题是,由于更新率,它在方向之间略有跳跃,这看起来不太好。我尝试使用,SCNActions但问题是我只能通过欧拉角。四元数有什么办法吗?rotateTorotaterotateTo
非常欢迎任何帮助!谢谢!
swift - 在调用 SCNNode.runAction (Scenekit) 时正在重置节点位置
我目前有一个应用程序可以让 Scenekit 中的飞船节点以恒定的速度在太空中飞行。我实现了一个 d-pad 系统,它可以根据触摸移动来旋转飞船,最终目标是用户可以在飞船在太空中飞行时旋转它,并且它会朝着你指向的方向移动。
我目前遇到的问题是船节点的位置在每次新触摸开始时都会重置,并且仅在 SCNAction 完成后才会向前移动。
下面的代码是我的 d-pad 的实现来控制船的方向:
有没有人能告诉我如何让船在飞行的同时在太空中旋转?
scenekit - SceneKit 骨架 3D 动画
我正在为 iPhone6S 实施一个应用程序,该应用程序可以帮助残疾人通过使用虚拟教练进行训练来恢复他们的四肢控制。
这个虚拟教练执行简单的动作,例如抬起和放下手臂、抬起和放下腿,然后将它们组合成各种节奏模式。
由于目标平台的原因,我无法使用强大的 ARKit,因此我不得不单独依赖 SceneeKit。
我的代码目前能够加载一个 dae,并对骨架应用多个操作。但是,我在理解 SCNAction.rotateTo 和 SCNAction.rotateBy 的行为时遇到了问题
然后调用上面的代码
它导致模型正确弯曲左腿并拉直它。
然而,当使用“rotateTo”代替时,它会进入相反的方向并且不会“回来”。
我查看了所有 DevCon SceneKit 材料和示例代码,但找不到任何解释或指导。
我的真正目标是添加更复杂的动作,例如拍手,当在这些模式上尝试相同的方法(需要 3-4 次旋转)时,结果就不太可预测了。
ios - 使用按钮执行 SCNAction (SwiftUI)
使用 UIKit,我创建了一个带有对象的 SceneView,它可以在按下按钮时执行 SCNActions:
现在我想使用 SwiftUI 实现相同的目标。
在这个例子中,虽然我可以让相机在视图加载后执行一个动作,但我不知道如何在按下按钮后让它执行另一个动作。特别是因为节点是在另一个子视图的函数中定义的。
这是我到目前为止得到的:
感谢您提供任何有用的想法。