1

我正在使用以下代码旋转从 Reality Composer 加载的实体。我希望球体会简单地旋转。但是,我留下了新的旋转实体和旧实体。以为这很简单。

我该怎么做才能旋转实体而不复制它?

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

1 回答 1

3

旋转球时可能会出现两个问题:

  • 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)

其中 aBall是符合RealityKit.HasAnchoring协议的公共类并包含ball实际为RealityKit.Entity.

因此,如果您想更改球对象的 X 轴位置,只需使用:

ballAnchor.ball?.position.x = 0.5

但不是这样:

ball?.position.x = 0.5
于 2020-04-01T11:15:04.217 回答