Как я могу повернуть объект и заменить этот объект в SCNScene? - PullRequest
0 голосов
/ 05 апреля 2019

В настоящее время я делаю демо о ARKit.Я использую два 3D объекта .dae файлы.Также реализация вращения этого объекта, но здесь я получаю вопрос, как мы делаем вращение только один раз, потому что объект непрерывно вращается?

Как заменить эти объекты на экране?

Я также упоминаю ниже код.

func addAction(node:SCNNode) {
    let rotateOne = SCNAction.rotateBy(x: CGFloat(Float.pi), 
                                       y: 0, 
                                       z: 0, 
                                duration: 5.0)
    node.runAction(rotateOne)
}

1 Ответ

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

На самом деле ваша функция вращает объект только один.Главный вопрос, где вы вызываете этот метод?Убедитесь, что вы не вызываете это внутри рендерера (_: updateAtTime:) или подобного, в противном случае ваш метод будет называться бесконечностью.
Если вы хотите заменить этот объект после анимации, вы можете использовать действие с closure .
Например:

func addAction(node:SCNNode) {
    let rotateOne = SCNAction.rotateBy(x: CGFloat(Float.pi), y: 0, z: 0, duration: 5.0)
    node.runAction(rotateOne) {
        node.removeFromParentNode()
        yourRootNode.addChildNode(newNode)
    }
}

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

...