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, 导致所有引用

该资源的地方失效(出现粉色缺失图标)
相关推荐
天人合一peng9 小时前
unity 生成标记根据背景色标记变色
unity·游戏引擎
天人合一peng13 小时前
unity 生成标记根据背景色变色为明显的颜色
unity·游戏引擎
魔士于安13 小时前
Unity 超市总动员 超市收银台 超市货架 超市购物手推车 超市常见商品
游戏·unity·游戏引擎·贴图·模型
CandyU214 小时前
Unity —— 数据持久化
unity·游戏引擎
zh路西法14 小时前
【Unity实现Oneshot胶卷显形】游戏窗口化与Win32API的使用
游戏·unity·游戏引擎
迪捷软件15 小时前
显控系统虚拟仿真的工程化路径
游戏引擎·cocos2d
凡情18 小时前
android隐私合规检测
android·unity
小贺儿开发18 小时前
Unity3D 本地 Stable Diffusion 文生图效果演示
人工智能·unity·stable diffusion·文生图·ai绘画·本地化
Swift社区19 小时前
传统游戏引擎 vs 鸿蒙 System 架构
架构·游戏引擎·harmonyos
mxwin1 天前
Unity Shader 半透明物体为什么不能写入深度缓冲?
unity·游戏引擎·shader