跳到主要内容
设计与3D技术

如何在Unity中导入GLB|默认不支持的原因与glTFast安装步骤

依据官方文档讲解在Unity中导入GLB的步骤。从技术角度梳理Unity默认支持的3D格式、官方包glTFast的安装、导入后生成的子资源,以及材质和着色器方面容易踩坑的地方。

Figmee 编辑部发布日期: 2026-08-19更新日期: 2026-10-2416分钟阅读
UnityGLBglTFglTFast导入
如何在Unity中导入GLB|默认不支持的原因与glTFast安装步骤

Unity 在默认状态下无法导入 GLB(glTF)文件。Unity 官方手册列为默认支持的 3D 模型格式是 .fbx / .dae(Collada)/ .dxf / .obj,glTF 和 GLB 并不在其中(来源:Unity Manual - Model file formats,截至2026年7月)。要使用 GLB,需要通过 Package Manager 添加 Unity 官方提供的包 Unity glTFast(com.unity.cloud.gltfast)。添加之后,只需把 GLB 复制到 Assets 文件夹,就会像其他 3D 格式一样被导入。

本文只聚焦于“让 Unity 读取 GLB”这一技术步骤本身。从把插画转换成 3D 模型,到绑定和动画的实际情况,完整流程已整理在如何在Unity中把2D角色插画3D化|转换、导入与让角色动起来的条件中,想了解整个工作流程的话请先阅读那篇。

※目前的 Figmee 是一项可以根据上传的绘画或插画生成并下载手办风格图像和 3D 模型数据(GLB / 3MF)的服务。实物 3D 打印品的销售正在准备中(Coming Soon)。

为什么默认无法读取

Unity 的设计是以 FBX 作为内部导入路径,官方手册也建议“尽可能使用 .fbx 是最佳实践”。而 glTF 2.0 是 Khronos Group 制定的“用于在运行时快速显示”的格式,在 Web 和实时显示领域被广泛使用。由于两者目的不同,所以 glTF 没有被纳入 Unity 核心。

格式Unity 默认支持特点
FBX支持Unity 的内部导入路径。擅长传递动画和绑定
OBJ支持以形状为主的简单格式。材质存放在单独文件中
DAE(Collada)支持基于 XML 的交换格式
DXF支持用于与 CAD 类软件交换数据
glTF / GLB不支持(通过包添加)可将颜色和纹理打包进一个文件,便于与 Web 显示共用

各格式的特性差异已在OBJ、FBX、STL、GLB有什么区别?3D文件格式选择指南中整理。如果手头的数据已经是 GLB,最直接的做法是不经转换,直接用 glTFast 读取。

安装 Unity glTFast(约 3 分钟)

Unity glTFast 是 Unity 提供的官方包,设计上注重“速度、内存效率和较小的构建体积”。它支持 glTF 2.0 规范及众多扩展,支持所有平台以及 Built-in / Universal(URP)/ High Definition(HDRP)各渲染管线(来源:Unity glTFast Documentation,截至2026年7月,版本 6.17.0)。

官方文档中记载的安装步骤如下(来源:Unity glTFast - Installation,截至2026年7月)。

  1. 打开 Unity 项目,选择 Window > Package Manager(20 秒)。
  2. 点击状态栏上的添加(+)按钮(10 秒)。
  3. 从菜单中选择 Add + package by name(10 秒)。
  4. 在 Name 栏中输入 com.unity.cloud.gltfast(20 秒)。注意不要输错。这个 ID 才是官方包的名称,而不是旧版个人仓库沿用下来的名称。
  5. 点击 Add(1 分钟)。会自动获取最新版本。视网络环境而定,可能需要几分钟。

根据用途添加的可选模块

glTFast 与 Unity 的内置包或附加包组合使用时,支持范围会更广。官方文档列出的有以下几项。

  • Image Conversion:支持 JPEG / PNG 纹理
  • Unity Web Request Texture:通过 URI 读取图像
  • Animation:播放动画
  • Physics:生成碰撞体
  • Draco for Unity / KTX for Unity / meshoptimizer decompression for Unity:使用对应的 glTF 扩展(网格压缩、纹理压缩)时

不必一开始就全部安装。等出现“纹理不显示”“压缩过的 GLB 打不开”之类的症状时,再添加相应模块即可。

导入 GLB(约 2 分钟)

安装完成后,处理方式就和其他 3D 格式相同了。

  1. 将 GLB 文件移动或复制到项目的 Assets 文件夹(30 秒)。官方文档说明:“可以像其他 3D 格式一样,把 glTF 文件移动或复制到项目的 Assets 文件夹。Unity glTFast 会将其导入为 Unity 原生预制体,并添加到资源数据库中”(来源:Unity glTFast - Editor Import,截至2026年7月)。
  2. 如果是 .gltf 格式,要把附带文件一起复制(30 秒)。同一文档明确写道:“别忘了同时复制附带的缓冲区(.bin)和图像文件。文件名和相对路径不能更改,否则可能导致引用失效。”.glb 是打包在一个文件里的,所以没有这个顾虑。这也是交付时常选择 GLB 的原因之一。
  3. 在 Project 视图中选中文件,查看 Inspector(1 分钟)。导入设置以及警告、错误(如果有)都会显示在这里。读取结果与预期不符时,先看这里的信息。
  4. 在 Project 视图中展开文件(30 秒)。导入后的组成部分会列出 Scenes / Meshes / Materials / AnimationClips / Textures。想把单个网格或材质复用到其他对象上时,就从这里取用。
  5. 拖入场景进行放置(10 秒)。操作与普通预制体相同。

关于扩展名关联

glTFast 安装后,会把自己注册为 .gltf 和 .glb 的默认导入器。也就是说,安装之后无需任何特别操作,这些扩展名的文件就会自动通过 glTFast 读取。

如果已经在使用其他 glTF 导入器并发生冲突,可以在项目的脚本符号中添加 GLTFAST_FORCE_DEFAULT_IMPORTER_OFF,以禁用 glTFast 的默认导入器注册。在同时使用多个 glTF 类资源的项目中,若“读取结果与预期不符”,请首先怀疑究竟是哪个导入器在起作用。

如何解读生成的子资源

在 Project 视图中展开 GLB 后出现的 5 种内容,各自作用不同。掌握这些之后,日后遇到“只想复用一部分”“只想替换材质”之类的需求时就能迅速应对。

子资源内容常见使用场景
Scenes节点的层级结构放置到场景中的主体。通常拖动的就是它
Meshes形状数据只把网格复用到其他对象上
Materials颜色与质感设置替换着色器/配合项目的表现风格
Textures图像数据按项目标准统一压缩设置和分辨率
AnimationClips动画仅当原始数据包含动画时才会出现

如果 AnimationClips 是空的,这并不是导入失败,而是说明原始 GLB 中没有动画。由一张画生成的 3D 模型是静态网格,因此这一项通常为空。

Materials 中列出的材质遵循 glTF 核心规范。glTF 材质由基础色、金属度、粗糙度、环境光遮蔽、法线贴图、自发光等通道构成,在 Unity 端会被分配到项目的着色器上。觉得“比想象中更像金属”“太亮太反光”时,需要调整的通常就是金属度和粗糙度这两项。

也要了解其他选择

在 Unity 中处理 glTF 的手段不只有 glTFast。Khronos Group 公开的 UnityGLTF(截至2026年7月)是面向 Unity 的运行时 glTF 2.0 加载器/导出器,同样以开源形式提供。如果重视导出功能,或者现有项目已经采用了它,它会是有力的选择。

这并不是孰优孰劣的问题,根据项目需求(需要支持的扩展、是否需要导出、现有资源)来选择才更务实。如果是新项目且只需读取,作为 Unity 官方包可从 Package Manager 安装的 glTFast 导入更简单。

导入后务必确认的 3 点

能读取进来,并不代表就能直接使用。

1. 材质与渲染管线

这是最常见的坑。glTFast 对 Built-in / URP / HDRP 全都支持,但如果项目的管线与材质的着色器不匹配,就会显示为纯白、纯黑或洋红色(粉色)。洋红色是 Unity 找不到着色器时的默认显示,所以出现这种颜色时,请先怀疑管线不匹配。同时也要确认场景中是否放置了灯光。

2. 缩放与原点

有时刚放置时,角色会显得巨大或极小。这是原始数据没有按真实尺寸制作时出现的现象,并不是错误。可以通过 Transform 的 Scale 进行调整,或者与地面、已有对象并排比较来相对确定大小。原点(在脚下还是身体中心)也最好在这个阶段确认,之后的摆放会更轻松。

3. 面数与显示负载

AI 生成的模型或精细制作的模型,按实时显示的标准来看面数可能偏多。面数越多,绘制和处理负载越高,面向移动端时影响越明显(什么是多边形数?多了会怎样?按用途的参考值与计数方法通俗讲解)。以同时显示多少个角色为基准,必要时先在 Blender 等软件中减面,再重新导入。

故障排查表

症状可能原因解决方法
放入 GLB 后没有任何反应未安装包在 Package Manager 中添加 com.unity.cloud.gltfast
运行的导入器与预期不同与其他 glTF 资源冲突用 GLTFAST_FORCE_DEFAULT_IMPORTER_OFF 切换
显示为洋红色(粉色)着色器与管线不匹配替换为适合项目管线的着色器
.gltf 不显示纹理未复制 .bin 或图像文件将附带文件按相同相对路径一起放置
压缩过的 GLB 打不开未安装对应扩展的模块添加 Draco / KTX / meshoptimizer 各包
显示为纯黑场景中没有灯光放置灯光,并在材质预览中确认
无法活动、无法改变姿势没有骨骼需要另外进行绑定(什么是绑定?)

常见问题

Unity 默认有 glTF / GLB 导入功能吗?

没有。Unity 官方手册列为默认支持的格式是 .fbx / .dae / .dxf / .obj。要使用 GLB,需要通过 Package Manager 添加 Unity 官方包 glTFast(com.unity.cloud.gltfast)。添加后它会注册为这些扩展名的默认导入器,之后就能像普通资源一样处理。

先转换成 FBX 再导入,和直接导入 GLB,哪种更好?

如果手头已经有 GLB,不经转换直接用 glTFast 读取,步骤更少,也不容易丢失颜色和纹理。另一方面,如果整个团队的交付格式统一为 FBX,或者需要交换带动画的数据,选择 FBX 也是合理的判断。该格式的特性在GLB文件是什么?打开方式、用途与转换方法通俗讲解中有讲解。

可以在运行时(游戏中)读取 GLB 吗?

可以。glTFast 不仅支持在编辑器中导入,也支持在运行时读取。可以实现在应用内显示用户自带模型之类的设计。不过读取处理的异步化和错误处理需要自己实现,因此稳妥的做法是先通过编辑器导入确认显示效果,再推进运行时支持。

总结

在 Unity 中处理 GLB 的步骤可以归纳为 3 步:① 通过 Package Manager 添加官方包 com.unity.cloud.gltfast → ② 将 GLB 复制到 Assets → ③ 在 Inspector 中确认警告并放置到场景中。Unity 默认无法读取 GLB 是规格使然,只要安装一个包,之后就是标准的操作。

如果遇到问题,几乎都出在材质与渲染管线的匹配上。显示洋红色就查着色器,纯黑就查灯光,纹理缺失就查 .gltf 的附带文件——这样逐一排查,大多能在短时间内解决。如果打算让导入后的模型“动起来”,还需要另外准备骨骼和绑定,请在如何在Unity中把2D角色插画3D化|转换、导入与让角色动起来的条件中确认整体流程。

相关指南

分享这篇文章

将孩子的画变成3D 模型

孩子的画作将变成独一无二的3D 模型。

前5次免费