#swift #scenekit #augmented-reality #arkit
#swift #scenekit #дополненная реальность #arkit
Вопрос:
Я использую функцию рендеринга (_: updateAtTime:) для изменения положения объекта в сцене
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
cylinder.position = SCNVector3(0, sin(time), 0)
}
Итак, если я хочу остановить сцену, которая отображается в ARSCNView, я пытаюсь использовать следующий код
ARSceneView.scene.isPaused = true
но это не помогло, поэтому мой объект все еще движется, а не остается на месте (потому что функция рендеринга по-прежнему вызывается каждый кадр)
Итак, как я могу остановить сцену в ARSCNView? или как я могу прекратить вызывать функцию renderer(_:updateAtTime:)?
Комментарии:
1. Все
cylinder.position
еще изменяется, или объект движется вместе с камерой, и вы хотите, чтобы он зафиксировал свое положение на экране?2. cylinder.position все еще изменяется.
Ответ №1:
Я не нашел решения, как остановить renderer(_:updateAtTime:)
метод экземпляра. Вместо этого я мог бы предложить вам простой и надежный обходной путь:
let action = SCNAction.move(by: SCNVector3(0, sin(time), 0), duration: 2)
let repeatAction = SCNAction.repeat(action, count: 1)
cylinderNode.runAction(repeatAction)
Надеюсь, это поможет.