在以下层次结构的根上应用 generateCollisionShapes() 时,没有任何反应。根实体的“碰撞”组件仍然为零。
根实体类如下所示:
class SomeEntity: Entity, HasAnchoring, HasModel, HasCollision
子实体从 .usdz 文件中加载,其层次结构为:Entity -> [ModelEntity, ModelEntity]
所以最终的层次结构是:
SomeEntity -> Entity -> [ModelEntity, ModelEntity].
现在,当应用以下行时,SomeEntity 的碰撞组件保持为零,我收到以下日志消息:
someEntity.generateCollisionShapes(recursive: true)
arView.scene.addAnchor(someEntity)
arView.installGestures([.all], for: someEntity)
日志消息是:[碰撞] 错误参数 (SphereRadius),值 = 0.000000,传递给形状创建。
- 听起来没有模型组件的实体会破坏递归操作
编辑 1:它适用于在代码或 Reality Composer 中创建的模型实体。对于从 USDZ 文件加载的实体,这种行为是出乎意料的,因为模型层次结构似乎发挥了重要作用。