swift - 如何在 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() // 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)
}
}
推荐阅读
- mpi - “mpirun 无法启动指定的应用程序,因为它无法更改到指定的工作目录”错误
- java - Traefik 打破标头和 Tomcat 保持流活着直到超时
- java - Java的记录类是如何实现同步的?
- mongodb - 我想在 mongo 中为特定用户执行搜索操作
- freeradius - freeradius 身份验证如何与 Microsoft Active Directory 配合使用?
- c++ - 可执行文件在 apt 安装阶段找不到共享库
- bash - 我想获取gcs每个目录下的最新文件名
- python - 如何使用 geopandas 迭代地对 shapefile 中的特征进行 sjoin,然后对分类数据进行编码?
- ruby-on-rails - 表单错误验证时,主动存储可防止客户端重新上传文件
- c# - 我如何过滤准备物理计数