swift - 如何在 ARSCNView 中停止渲染器(_:updateAtTime:) 函数?
问题描述
我使用renderer(_:updateAtTime:)函数来改变场景中对象的位置
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
cylinder.position = SCNVector3(0, sin(time), 0)
}
所以,如果我想停止 ARSCNView 中显示的场景,我尝试使用以下代码
ARSceneView.scene.isPaused = true
但它没有帮助,所以我的对象仍在移动而不是保持在原地(因为渲染器函数仍然在每一帧都被调用)
那么如何在 ARSCNView 中停止场景呢?或如何停止调用 renderer(_:updateAtTime:) 函数?
解决方案
我还没有找到如何停止renderer(_:updateAtTime:)
实例方法的解决方案。我可以为您提供一个简单而强大的解决方法:
let action = SCNAction.move(by: SCNVector3(0, sin(time), 0), duration: 2)
let repeatAction = SCNAction.repeat(action, count: 1)
cylinderNode.runAction(repeatAction)
希望这可以帮助。
推荐阅读
- android - Flutter 后台服务并使用 Firebase 消息打开应用程序
- javascript - Polarion - 向用户显示消息框
- java - 在 UI 上显示值更快 Android JAVA
- python - TypeError:不可散列的类型:下拉菜单中的'set' plotly python
- python - 当我的所有语法都正确时,为什么在 python 中使用'if'会给我语法错误结果?
- python - Microsoft Translator v. 3.0 中没有替代语言检测 JSON 响应
- python - Django REST:项目与应用
- wordpress - Sabre WordPress 集成
- vue.js - Vuejs- if..else 语句中未达到第二个 axios.get
- javascript - 如何在 p5.js 中获得顶视图房子