首页 > 解决方案 > 如何在 RealityKit 中访问 Reality Composer 的模型组件?

问题描述

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

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

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

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

标签: swiftaugmented-realityrealitykitreality-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()     // SomeText is enum          
        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)
    }
}

在此处输入图像描述


推荐阅读