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

Unity代码无法创建Model类型预制体,总是生成Regular类型求助

Unity代码创建Model类型预制体失败的解决方法

你当前的代码逻辑存在核心问题:直接加载FBX的GameObject模板并调用SaveAsPrefabAsset,本质是创建了一个独立的Regular预制体,没有保留与源FBX资产的依赖关联,因此无法生成Model类型预制体。Model预制体的核心是对源模型资产的包装引用,而非复制对象数据。

修正方案

使用PrefabUtility.SaveAsPrefabAssetAndConnect替代SaveAsPrefabAsset,该方法会自动建立预制体与源FBX的依赖关系,生成Model类型预制体。修正后的代码如下:

// 加载原始FBX资产(path需指向FBX文件路径,如"Assets/Models/Character.fbx")
GameObject fbxAsset = AssetDatabase.LoadAssetAtPath<GameObject>(path);

// 重置变换(按需保留)
fbxAsset.transform.Reset();

// 创建关联源FBX的Model预制体
PrefabUtility.SaveAsPrefabAssetAndConnect(
    fbxAsset,
    s_path,
    InteractionMode.UserAction
);

// 刷新资源数据库确保变更生效
AssetDatabase.Refresh();

关键说明

  • SaveAsPrefabAssetAndConnect的作用:该方法专门用于创建与源资产绑定的预制体,Unity会自动识别源模型类型,生成Model预制体,并在资产依赖中保留FBX的引用。
  • 路径正确性:确保path是原始FBX文件的路径,而非场景对象或其他预制体的路径。
  • InteractionMode参数:设置为UserAction模拟用户手动创建预制体的流程,保证资产依赖关系正确建立。

验证方法

生成预制体后,选中预制体查看Inspector面板:

  • 若Prefab Mode显示为Model Prefab
  • 在Dependencies面板中能看到对应的FBX文件
    则说明Model类型预制体创建成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:45:18