2

我最近一直在学习 RealityKit,并且遇到了 Reality Composer。但是,似乎在应用程序中,用户一次只能拥有一个锚点。

我想知道是否有可能在一个场景中有两个锚点,一个垂直的和一个水平的。我正在尝试检测可以与物理实体交互并且需要两者才能使游戏正常运行的地板和墙壁。

我不需要知道垂直锚的位置或任何东西,我只需要它们有物理体。

Reality Composer 是否允许在一个场景中使用多个锚点?我知道 RealityKit 允许这样做,但我不知道在 Reality Composer 中创建的场景是否可以。

4

1 回答 1

2

Reality Composer v1.5 目前不允许您同时使用两种不同类型的 Anchors。以下是您可以在 RC 中使用的五种锚点(每个场景只有一个锚点):

  • 水平(à la ARPlaneAnchor)
  • 垂直(à la ARPlaneAnchor)
  • 图像(à la ARImageAnchor)
  • 人脸(à la ARFaceAnchor)
  • 对象(à la ARObjectAnchor)

但是您可以在 RealityKit 中一次使用两种不同类型的 Anchors

在 RealityKit 中有三种对齐方式:

AnchoringComponent.Target.Alignment.horizontal
AnchoringComponent.Target.Alignment.vertical

/* Entity can be anchored to surfaces of Any alignment */
AnchoringComponent.Target.Alignment.any       

Alignment结构符合OptionSet协议,因此您可以同时使用两种类型:

let anchor = AnchorEntity(plane: [.horizontal, .vertical],
                  minimumBounds: [0.2, 0.2])

或者您可以通过以下方式进行设置AnchoringComponent

anchor.anchoring = AnchoringComponent(.plane(.any, 
                             classification: .any, 
                              minimumBounds: [0.1, 0.1]))

或者您可以使用reanchor()实例方法:

let houseScene = try! Experience.loadHouseScene()

houseScene.reanchor(.plane(.any, classification: .any, 
                                  minimumBounds: [0.1, 0.1]), 
                       preservingWorldTransform: false)

你可以阅读这个故事来了解它在真实代码中的样子。

于 2019-11-22T17:40:41.650 回答