我如何在RealityKit中访问Reality Composer的模型组件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在RealityKit中访问Reality Composer的模型组件?相关的知识,希望对你有一定的参考价值。

我正在尝试在我的代码中更改在Reality Composer中创建的文本实体的模型组件,但这是!将gui创建的实体强制转换为对具有模型组件的实体的引用。

self.entityReference = scene.realityComposerEntity as! HasModel
textEntity.model!.mesh =  MeshResource.generateText("New Text")

RealityKit中的文本实体应该具有模型属性,因为它在ARView中具有视觉外观,但是我不知道如何访问它。有谁知道如何?

还有其他简便的方法可以使用RealityKit / Reality Composer在同一位置动态显示不同的文本吗?

答案

要在RealityKit中访问Reality Composer的ModelComponent,请尝试以下方法:

import RealityKit

class ViewController: UIViewController 

    @IBOutlet var arView: ARView!

    override func viewDidLoad() 
        super.viewDidLoad()            
        arView.environment.background = .color(.darkGray)

        let textAnchor = try! SomeText.loadTextScene()           
        let textEntity: Entity = textAnchor.realityComp!.children[0]
        textEntity.scale = [5,5,5]

        var textModelComp: ModelComponent = textEntity.children[0].components[ModelComponent]!

        var material = SimpleMaterial()
        material.baseColor = .color(.systemTeal)
        textModelComp.materials[0] = material

        textAnchor.realityComp!.children[0].children[0].components.set(textModelComp)
        arView.scene.anchors.append(textAnchor)
    

enter image description here

以上是关于我如何在RealityKit中访问Reality Composer的模型组件?的主要内容,如果未能解决你的问题,请参考以下文章

在 macOS 上使用 RealityKit ARView

如何在运行时将 3D 内容加载到 RealityKit 应用程序中?

如何在realitykit中显示来自画廊的图像?

ARKit 或 RealityKit——我们如何检测真实世界的物体?

如何使用 RealityKit 将 3D 模型放置在参考图像之上?

RealityKit - 隐藏和显示 usdz 模型的部分(网格)