You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改RealityKit中OrbitAnimation的旋转中心?

解决RealityKit中OrbitAnimation自定义旋转中心的问题

你说得对,RealityKit的OrbitAnimation本身确实没有直接修改旋转中心的属性,但可以通过父子实体嵌套的方式实现绕任意点(x,y,z)旋转的效果,步骤如下:

  • 创建一个空的父实体,将它的位置设置为你想要的旋转中心坐标(x,y,z)
  • 把需要执行轨道动画的目标实体作为子实体添加到这个父实体下,同时调整子实体相对于父实体的位置(比如设置为你想要的轨道半径对应的偏移量,比如(1,0,0)就是绕x轴方向半径1的轨道)
  • 给父实体添加OrbitAnimation动画,此时子实体就会跟着父实体的旋转,间接实现绕目标中心(x,y,z)的轨道运动

举个简单的代码示例:

// 1. 创建父实体,设置为旋转中心
let orbitCenter = Entity()
orbitCenter.position = SIMD3(x: 2, y: 1, z: 0) // 自定义的旋转中心坐标
arView.scene.addAnchor(orbitCenter)

// 2. 创建需要做轨道动画的实体(比如一个立方体)
let cube = ModelEntity(mesh: MeshResource.generateBox(size: 0.2))
// 设置子实体相对于父实体的偏移(轨道半径)
cube.position = SIMD3(x: 1, y: 0, z: 0)
orbitCenter.addChild(cube)

// 3. 给父实体添加OrbitAnimation
let orbitAnimation = OrbitAnimation(duration: 5, radius: 1, axis: .y)
orbitCenter.playAnimation(orbitAnimation.repeat())

这种方法相当于把原有的原点“平移”到了你想要的旋转中心,利用实体坐标系的嵌套来间接实现自定义轨道中心的效果,完全符合你提到的“将动画绑定至其他实体位置或坐标系”的思路。

内容的提问来源于stack exchange,提问作者Frank Zielen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:39:52