1.2 Unity资源分类

1.内置资源vs项目资源

2.原生资源vs导入资源


1.内置资源vs项目资源

csharp 复制代码
1).内置资源(Engine内置资源)

内置资源是Unity引擎本身自带的, 无需你手动导入到项目中, 就能直接在编辑器和运行时使用的资源, 存储在Unity引擎的

按照目录中, 而非项目文件夹内

csharp 复制代码
2).项目资源(自定义项目资源)

项目资源是你手动添加到Assets目录下的所有资源

2.原生资源vs导入资源

csharp 复制代码
该组分类的核心是"资源形态" - 是你从外部工具导出的原始文件还是Unity处理后能实际使用的资源

1).原生资源

原生资源是你直接放入Assets目录的原始文件, 是Unity的"输入源", 比如: PS导出的.png, Blender导出的.fbx

a.图片类: .png/.jpg/.psd/.tga(设计工具导出的原始图片)

b.模型类: .fbx/.obj/.blend/.max(建模工具导出的原始模型)

c.音频类: .wav/.aiff(未压缩的原始音频)

d.其他: .csv/.json(纯文本配置源文件) .cs(脚本源文件)
csharp 复制代码
核心特点:

a.Unity无法直接使用

原生资源必须经过Unity的"导入流程"处理后, 才能在编辑器/运行时使用; 比如原始.png是未压缩的位图, Unity需要将其转

换为GPU能识别的压缩纹理格式

b.存储原始数据

原生资源保留了完整的原始数据; 比如.psd包含图层、.fbx包含完整的骨骼动画数据

c.可删除(但有风险)

删除原生资源后, 对应的导入资源会失效(Unity会标记为"Missing", 但如果只是修改导入设置, 无需重新替换原生资源

d.文本类原生资源特殊

.cs脚本、.json配置等文本类原生资源, Unity无需"转换格式", 直接解析使用, 但仍会生成.meta文件

csharp 复制代码
2).导入资源

导入资源是Unity对原生资源进行导入处理后生成的序列化资源, 是Unity编辑器和运行时实际加载, 使用的对象; 它由两部

分组成:

- .meta文件: 存储资源的GUID, 导入设置, 依赖关系等数据

- Libray目录数据: Unity将原生资源处理后的二进制数据(存储在项目的Library目录, 引擎内部管理, 不可手动修改)
csharp 复制代码
a.核心理解

当你把一张player.png拖入Assets/Textures:

- Unity自动生成player.png.meta文件, 记录该资源的GUID(比如1234567890abcdef)、导入设置, 如压缩格式ASTC,分辨率

2048、开启 MipMap

- Unity根据导入设置, 将原始.png转换为GPU能高效读取的压缩纹理数据, 存储到Library/AssetDatabase/目录下

- 你在编辑器中拖入材质运行时用Resources.Load<Texture2D>()加载的, 不是原始的player.png,而是Library目录中经过

压缩、优化的导入资源

- 若你修改player.png的导入设置, Unity会重新生成Library目录中的导入资源, 而原生.png文件本身不变
csharp 复制代码
b.核心特点

- Unity的实际使用对象: 运行时加载的所有资源(纹理、模型、预制体)都是导入资源, 而非原生资源

- 平台适配性: Unity会根据目标平台(Android/iOS/PC)生成不同的导入资源(比如iOS纹理用PVRTC压缩, Android用 ASTC)

- 通过GUID标识: 导入资源的唯一标识是.meta文件中的GUID,而非文件路径 ------ 即使你把player.png从Textures移到C目录

只要.meta文件还在, GUID不变, 所有引用该资源的预制体/场景都不会失效

- 存储在Library目录: Library目录是导入资源的"缓存区", 删除Library后, Unity会重新扫描Assets目录的原生资源和

.meta文件, 重新生成所有导入资源(项目打开时会显示"Importing Assets")
csharp 复制代码
c.meta文件的作用

每个原生资源(除了文件夹)都对应一个同名的.meta文件, 它是连接原生资源和导入资源的"桥梁", 核心作用:

- 存储GUID: 全局唯一标识, Unity通过GUID找到对应的导入资源(而非路径)

- 存储导入设置: 比如纹理的压缩格式、模型的缩放比例、音频的采样率等

- 存储依赖关系: 比如预制体引用的纹理GUID、模型引用的材质GUID

- 版本控制关键: 多人协作时, 必须提交.meta文件到Git/SVN ------ 若缺失.meta, Unity会重新生成新的GUID, 导致所有引用

该资源的地方失效(出现粉色缺失图标)
相关推荐
one named slash17 小时前
BMFont在Unity中生成艺术字
unity·游戏引擎
郝学胜-神的一滴19 小时前
图形学中的纹理映射问题:摩尔纹与毛刺的深度解析
c++·程序人生·unity·游戏引擎·图形渲染·unreal engine
在路上看风景19 小时前
10. CPU-GPU协作渲染
unity
程序员agions20 小时前
Unity 游戏开发邪修秘籍:从入门到被策划追杀的艺术
unity·cocoa·lucene
JIes__20 小时前
Unity(一)——场景切换、退出游戏、鼠标隐藏锁定...
unity·游戏引擎
NIKITAshao1 天前
Unity URP Volume组件详解(笔记)
unity·游戏引擎
lingxiao168881 天前
WebApi详解+Unity注入--下篇:Unity注入
unity·c#·wpf
世洋Blog1 天前
面经-CPU、内存、GPU的性能优化
unity·性能优化
lingxiao168881 天前
WebApi详解+Unity注入--中篇:.net core的WebAPI
unity·c#·.netcore