我正在使用以下代码旋转从 Reality Composer 加载的实体。我希望球体会简单地旋转。但是,我留下了新的旋转实体和旧实体。以为这很简单。
我该怎么做才能旋转实体而不复制它?
ball?.transform.rotation = simd_quatf(angle: GLKMathDegreesToRadians(90),
axis: SIMD3(x: 0, y: 1, z: 0.5))
我正在使用以下代码旋转从 Reality Composer 加载的实体。我希望球体会简单地旋转。但是,我留下了新的旋转实体和旧实体。以为这很简单。
我该怎么做才能旋转实体而不复制它?
ball?.transform.rotation = simd_quatf(angle: GLKMathDegreesToRadians(90),
axis: SIMD3(x: 0, y: 1, z: 0.5))
旋转球时可能会出现两个问题:
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