【问题标题】:Reality Composer – Is it possible to assign vertical and horizontal anchors simultaneously?Reality Composer – 是否可以同时分配垂直和水平锚点?
【发布时间】:2019-11-21 02:58:41
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: swift augmented-reality realitykit reality-composer


    【解决方案1】:

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

    • 水平的(类似于 ARPlaneAnchor)
    • 垂直(类似于 ARPlaneAnchor)
    • 图像 (à la ARImageAnchor)
    • 人脸(à la ARFaceAnchor)
    • 对象(类似于 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 协议,因此您可以同时使用两种类型:

    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)
    

    您可以阅读this story 以了解它在实际代码中的样子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多