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

该资源的地方失效(出现粉色缺失图标)
相关推荐
玖玥拾1 天前
C# 语言进阶(十四)Unity UI界面开发 + 网络消息联动
服务器·开发语言·网络·ui·unity·c#·游戏引擎
野区捕龙为宠1 天前
Unity 持久化数据
unity·游戏引擎·lucene
郝学胜-神的一滴1 天前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
_ZHOURUI_H_2 天前
MyFramework: 同样是 Unity 游戏开发框架,和 HTFramework 的设计取向有什么不同?(下)
unity·游戏引擎·游戏开发·游戏ui·手游开发
丁小未3 天前
基于MVVM框架的XUUI 扩展的UI管理系统教程
unity·mvvm·ui框架·xuui·ui管理器
丁小未4 天前
基于MVVM框架的XUUI HelloWorld 新手教程
unity·性能优化·c#·游戏引擎
丁小未4 天前
基于MVVM框架的XUUI MoreComplex案例
unity·c#
EQ-雪梨蛋花汤4 天前
【Unity笔记】VR 一体机画面锯齿、模型边缘闪烁、接缝抖动排查:MSAA、Mipmap、Render Scale、Z-Fighting 全流程记录
笔记·unity·vr
松树戈4 天前
【Godot4精进之路】03~Godot编辑器常用界面介绍
编辑器·游戏引擎·godot
YigAin4 天前
Unity Spine 资源出现白边的解决办法
unity·游戏引擎·spine