Как остановить функцию рендерера (_: updateAtTime :) в ARSCNView? - PullRequest
1 голос
/ 10 апреля 2019

Я использую рендерер (_: updateAtTime:) , чтобы изменить положение объекта в сцене

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
    cylinder.position = SCNVector3(0, sin(time), 0)
}

Итак, если я хочу остановить сцену, которая отображается в ARSCNView, япопробуйте использовать следующий код

ARSceneView.scene.isPaused = true

, но это не помогло, поэтому мой объект все еще движется вместо того, чтобы оставаться на месте (потому что функция рендерера по-прежнему вызывается каждый кадр)

Так какя могу остановить сцену в ARSCNView?или Как я могу прекратить вызывать рендерер (_: updateAtTime :) функция?

1 Ответ

0 голосов
/ 10 апреля 2019

Я не нашел решения, как остановить renderer(_:updateAtTime:) метод экземпляра. Я мог бы предложить вам простой и надежный обходной путь:

let action = SCNAction.move(by: SCNVector3(0, sin(time), 0), duration: 2)
let repeatAction = SCNAction.repeat(action, count: 1)
cylinderNode.runAction(repeatAction)

Надеюсь, это поможет.

...