You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载含标准抖动行为的USDZ文件致iOS应用崩溃求助

解决Reality Composer添加行为后USDZ加载崩溃的问题

问题原因

崩溃日志里的-[USKObjectPath UTF8String]: unrecognized selector错误,本质是因为你用了Entity.loadModel(named:)方法加载包含Reality Composer行为的USDZ文件。这个方法仅支持加载纯模型USDZ,无法解析Reality Composer添加的行为、动画等额外逻辑(这些逻辑属于RealityKit场景数据范畴,不是纯模型数据)。而未添加行为的USDZ是纯模型,所以能正常加载。

解决方法

将加载代码中的Entity.loadModel(named:)替换为Entity.load(named:),这个方法可以完整加载包含Reality Composer行为、动画的USDZ文件:

let nextAsset = "rook12"

do {
    let asset2Load = try Entity.load(named: nextAsset)
    // 加载成功后可将实体添加到场景中
    // arView.scene.addAnchor(asset2Load)
} catch {
    print("加载失败:\(error)")
}

额外验证建议

  • 确认从Reality Composer导出USDZ时,已勾选保留所有行为和动画设置
  • 如果需要更灵活的控制,也可以放弃用Reality Composer添加行为,改用代码直接给纯模型实体添加抖动动画,示例如下:
// 加载纯模型
let model = try Entity.loadModel(named: "rook12")
// 添加循环抖动动画
let shakeAnimation = FromToByAnimation(
    duration: 0.2,
    from: Transform(pitch: 0, yaw: 0, roll: -0.1),
    to: Transform(pitch: 0, yaw: 0, roll: 0.1),
    repeatMode: .loop,
    autoreverses: true
)
model.playAnimation(shakeAnimation)

内容的提问来源于stack exchange,提问作者user3069232

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:05:16