Как повернуть объект в RealityKit, не дублируя его?

Я вращаю объект, загруженный из Reality Composer, с помощью приведенного ниже кода. Я ожидаю, что сфера будет просто вращаться. Однако у меня остается как новая повернутая сущность, так и старая сущность. Думал, это будет просто.

Что мне делать, чтобы просто повернуть объект, не дублируя его?

ball?.transform.rotation = simd_quatf(angle: GLKMathDegreesToRadians(90), 
                                       axis: SIMD3(x: 0, y: 1, z: 0.5))

person user1905842    schedule 30.03.2020    source источник


Ответы (1)


При вращении мяча могут возникнуть две возможные проблемы:

  • В сцене Reality Composer иногда создавались два шара, и вы вращаете родительский объект (узел) для обоих.

  • В вашем приложении есть ошибка (поэтому мы не рассматриваем ее здесь ...)


Обычно код для поворота и масштабирования модели в RealityKit выглядит так:

let ballAnchor: Experience.Ball = try! Experience.loadBall()

ballAnchor.ball?.orientation = simd_quatf(angle: Float.pi/4, 
                                           axis: [0, 1, 0])

ballAnchor.ball?.scale = [9, 9, 9]

arView.scene.anchors.append(ballAnchor)

Где Ball - это открытый класс, соответствующий протоколу RealityKit.HasAnchoring и содержащий объект ball, который на самом деле является RealityKit.Entity.

Поэтому, если вы хотите изменить положение по оси X объекта шара, просто используйте:

ballAnchor.ball?.position.x = 0.5

Но не так:

ball?.position.x = 0.5
person Andy Fedoroff    schedule 01.04.2020
comment
Спасибо за уделенное время, Энди. - person user1905842; 01.04.2020