我最近一直在学习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)
您可以阅读此故事以了解它在实际代码中的外观。