swift 使用标准行为加载USDZ文件会导致应用程序崩溃

rta7y2nd  于 2022-12-17  发布在  Swift
关注(0)|答案(1)|浏览(124)

使用iOS 16.1 Xcode 14.1
使用reality converter将我的 *.usd模型更改为 *.usdz使用reality composer添加一个标准的抖动行为,现在尝试将其加载到我的项目中。
但当它这样做时,它崩溃了...

2022-12-10 20:33:07.457940+0100 LAC[6905:4041138] -[USKObjectPath UTF8String]: unrecognized selector sent to instance 0x281a5c560
2022-12-10 20:33:07.458127+0100 LAC[6905:4041138] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[USKObjectPath UTF8String]: unrecognized selector sent to instance 0x281a5c560'
*** First throw call stack:
(0x186e59e88 0x1801878d8 0x186fce84c 0x186e6ffa0 0x186ed8350 0x195271bfc 0x1952710c4 0x1952783ac 0x195271238 0x1f8f9cf5c 0x1f8cd20f0 0x1f8cd2708 0x1f8cd23dc 0x1f8cd18a8 0x1f8d5225c 0x1f8f9000c 0x1f8f9026c 0x1f8f9026c 0x1f8f9093c 0x1f8f9128c 0x1f8f8eddc 0x1f8f92308 0x1f8f8efb8 0x201738af4 0x1f8f8dfac 0x1f8f8df48 0x1f8f247ec 0x1f8f338a8 0x1f8d3891c 0x1026945a8 0x10269605c 0x10269e10c 0x10269ee68 0x1026abcbc 0x1d3eafdf8 0x1d3eafb98)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[USKObjectPath UTF8String]: unrecognized selector sent to instance 0x281a5c560'
terminating with uncaught exception of type NSException

尝试这样做没有行为,它的工作!所以没有行为的 *.usdz文件是好的...它显然是标准行为?
我应该补充的是,我可以在xcode中选择 *.usdz文件,它显示的内容没有问题,所以它会出现的文件没有损坏?我只是错过了代码中的一些东西,当我导入它。
有人成功地做到了这一点吗?这几行代码将使它崩溃.. loadModel

let nextAsset = "rook12"

do {
    let asset2Load = try Entity.loadModel(named:nextAsset)
} catch {
    print("error \(error)")
}
bsxbgnwa

bsxbgnwa1#

尝试load(named:in:)类型方法。它总是能节省时间。

  • xcode 14.2 RC*。
let nextAsset = "qwerty.usdz"
    
do {
    let asset2Load = try Entity.load(named: nextAsset)
    print(asset2Load)
    
    let me = asset2Load.findEntity(named: "Mesh0")?.children[0] as? ModelEntity
    me?.model?.materials[0] = UnlitMaterial(color: .orange)
    
    let anchor = AnchorEntity()
    asset2Load.setParent(anchor)
    arView.scene.anchors.append(anchor)

} catch {
    print("Error: \(error.localizedDescription)")
}

.usdz模型的组件层次结构。

相关问题