现实作曲家 – 是否可以同时分配垂直和水平锚点?



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

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

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

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

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

  • Horizontal (à la ARPlaneAnchor(
  • Vertical (à la ARPlaneAnchor(
  • Image (à la ARImageAnchor(
  • Face (à la ARFaceAnchor(
  • Object (à la ARObjectAnchor(

但是,您可以在 RealityKit 中一次使用两种不同类型的定位点

在RealityKit中,有三种类型的对齐:

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

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

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)

您可以阅读此故事以了解它在实际代码中的外观。

最新更新