Как получить доступ к компоненту модели Reality Composer в RealityKit?

Я пытаюсь изменить компонент модели текстового объекта, созданного в Reality Composer, в моем коде, но это как! приведение сущности, созданной с помощью графического интерфейса, к ссылке на сущность с компонентом модели не удалось.

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

Текстовый объект в RealityKit должен иметь свойство модели, поскольку он визуально отображается в ARView, но я не знаю, как получить к нему доступ. Кто-нибудь знает как?

Есть ли другие простые способы динамически отображать другой текст в одном месте с помощью _2 _ / _ 3_?


person Sam Donovan    schedule 18.01.2020    source источник


Ответы (1)


Чтобы получить доступ к ModelComponent Reality Composer в RealityKit, попробуйте следующий подход:

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)
    }
}

введите описание изображения здесь

person Andy Fedoroff    schedule 20.01.2020
comment
Какой класс SomeText в этом сценарии? - person Mochi; 04.07.2021
comment
SomeText.rcproject - это перечисление, созданное в Reality Composer. - person Andy Fedoroff; 04.07.2021