Как повернуть сущность в RealityKit, не дублируя ее? - PullRequest
1 голос
/ 30 марта 2020

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

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

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

1 Ответ

1 голос
/ 01 апреля 2020

Есть две возможные проблемы, которые могут возникнуть при вращении шара:

  • В сцене Реальность 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 - это класс publi c, соответствующий протоколу RealityKit.HasAnchoring и содержащий объект ball, который на самом деле RealityKit.Entity.

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

ballAnchor.ball?.position.x = 0.5

Но не так:

ball?.position.x = 0.5
...