我正在尝试最大程度地使用 RealityKits 实体组件系统,但我在将几个部分组装在一起时遇到了困难。特别是围绕
HasModel
组件。
在 Reality Composer 中,我制作了一个由三个基本对象组成的简单模型。我将其导出为
.USDZ
文件并将其放入我的 Xcode 项目中。
然后我从磁盘加载模型,如下所示:
guard let basicLabelFileURL = Bundle.main.url(forResource: "label", withExtension: "usdz") else {
fatalError("Could not find label file")
}
let basicLabel = try ModelEntity.loadModel(contentsOf: basicLabelFileURL)
然后我有一个名为
LabelEntity
的自定义实体
class LabelEntity: Entity, HasAnchoring, HasModel {
required public init() {
super.init()
}
public init(entity: Entity) {
super.init()
self.model = ??? entity?
}
}
使用磁盘中的模型进行初始化。
let newLabelEntity = LabelEntity(entity: basicLabel)
如您所见,我不想使模型从磁盘加载为我的自定义实体的
ModelComponent
。然而,ModelComponent
初始化器只接受单个网格,然后接受材料数组。
我的知识差距在哪里?如何使用复杂的网格层次结构(其他模型)中的 ModelComponent 来创建自定义实体?
我刚刚最终将加载的模型作为子实体添加到“包装器”实体中。