gpt4 book ai didi

swift - RealityKit – 从 USDZ 文件中获取模型实体

转载 作者:行者123 更新时间:2023-12-05 04:35:28 25 4
gpt4 key购买 nike

我有一个名为 matrix.usdz 的文件(存在于主包中并选中了目标成员资格)并且需要加载它

 do {
let path = Bundle.main.path(forResource: "Matrix", ofType: "usdz")!

let url = URL(fileURLWithPath: path)

let assetsLoader = try Entity.load(contentsOf: url)
}
catch {
print(error)
}

但是它崩溃了

Thread 1: signal SIGABRT

在这条线上

let assetsLoader = try Entity.load(contentsOf: url)

预览

enter image description here

最佳答案

您必须创建一个 anchor如果您需要将实体加载到场景中。为了得到一个ModelEntity,你需要从场景中抓取它hierarchy使用 .children[X] 下标。

import RealityKit

class ViewController: UIViewController {

@IBOutlet var arView: ARView!

override func viewDidLoad() {
super.viewDidLoad()
do {
let path = Bundle.main.path(forResource: "Matrix", ofType: "usdz")!

let url = URL(fileURLWithPath: path)

// Scene
let scene = try Entity.load(contentsOf: url)
print(scene)

// Entity
let entity = scene.children[0].........children[0] as! ModelEntity

entity.model?.materials[0] = UnlitMaterial(color: .red)

let anchor = AnchorEntity(plane: .any)
anchor.addChild(scene)
arView.scene.anchors.append(anchor)

} catch {
print(error)
}
}
}

您也可以通过这种方式获得模型:

let modelEntity = try Entity.loadModel(contentsOf: url)

modelEntity.model?.materials[0] = UnlitMaterial(color: .red)


附言

我应该说你有一个明显的命名错误——“矩阵”与“矩阵”。 Matrix.rcprojectMatrix.usdz 也不一样。要加载 Matrix.rcproject(Reality Composer 项目),请使用以下方法:

enter image description here

// .rcproject
let scene = try! Matrix.loadCircle()

let circleEntity = scene.children[0]...........children[0] as! ModelEntity

加载 USDZ 模型使用这个:

// .usdz
let model = try! Entity.loadModel(named: "Matrix", in: nil)

但据我所知,您不需要 RC 项目,所以从 Reality Composer 导出 USDZ。

enter image description here

要加载 .reality 文件,请使用以下方法:

// .reality
let carModel = try! Entity.loadAnchor(named: "car")
print(carModel)

arView.scene.addAnchor(carModel)


这是您在 iOS 模拟器上的 USDZ 模型:

enter image description here

关于swift - RealityKit – 从 USDZ 文件中获取模型实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71035170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com