目录
一、工程路径
即你创建的Unity工程所在的路径,可以这样得到
Debug.Log(Application.dataPath);
注意 该方式 获取到的路径 一般情况下 只在编辑器模式下使用
我们不会在实际发布到游戏后 还使用该路径
游戏发布过后 该路径就不存在了
特性:
编辑器模式下指向项目Assets文件夹的上级目录
打包后路径结构会改变(移动平台变为.apk/.ipa包内路径)
发布后不可写,仅用于读取初始资源
二、Resources 资源文件夹
路径获取:Debug.Log(Application.dataPath + "/Resources");
一般不获取
只能使用Resources相关的API进行加载
如果硬要获取 只能通过工程路径拼接
注意:
需要我们自己创建
作用:
资源文件夹
1-1需要通过Resources 相关的API动态加载的资源需要放在其中
1-2该文件夹下的所有文件都会被打包出去
1-3打包时Unity会对其压缩加密
1-4该文件夹打包后仅可读 只能通过Resources相关API加载
支持子文件夹Resources/SubFolder的多级嵌套
使用Resources.Load()加载时不需要文件扩展名
可通过Resources.LoadAll()批量加载
建议通过Resources.UnloadUnusedAssets()释放资源
过度使用会导致包体膨胀,建议仅存放必需资源
三、StreamingAssets 流动资源文件夹
路径获取
Debug.Log(Application.streamingAssetsPath);
注意
必须手动创建
作用:
流文件夹
2-1打包出去不会被压缩加密 可以任由我们摆布
2-2移动平台仅可读 PC端可读可写
2-3可以放入一些需要自定义动态加载的初始资源
四、persistentDataPath文件夹
//路径获取
Debug.Log(Application.persistentDataPath);
注意:
不需要手动创建
作用:
固定数据文件夹
3-1所有平台可读可写
3-2一般用于放置动态下载或者动态创建的文件,游戏中创建或者获取到的文件都放在其中
五、Plugins插件文件夹
路径获取 一般不获取
注意:
需要我们自己手动创建
作用
插件文件夹
不同平台的插件相关文件放在其中
比如ios和Android平台
六、Editor编辑器文件夹
路径获取
Debug.Log(Application.dataPath + "/Editor");
一般不获取 因为不会改动他
如果硬要获取 只能拼接
注意:
需要我们自己手动创建
作用:
编辑器文件夹
6-1开发Unity编辑器时,编辑器相关的脚本放在该文件夹中
6-2该文件夹中内容不会被打包出去
七、默认资源文件夹 Standard Assets
路径一般不获取
注意:
需要我们自己手动创建
作用:默认的资源文件夹
一般Unity自带资源都会被放在这个文件夹下
代码和资源优先被编译
八、Hidden Assets
路径:任何以.
开头的文件夹
特性:
不会被Package Manager识别
常用于存放临时文件/测试资源
仍需手动管理避免资源冗余
九、Editor Default Resources
路径:Assets/Editor Default Resources
作用:
存放编辑器默认资源(图标、预设等)
通过
EditorGUIUtility.Load()
加载示例:
Texture2D icon = EditorGUIUtility.Load("Icons/PlayButton.png") as Texture2D;
十、Gizmos 标注资源文件夹
路径:Assets/Gizmos
用途:
存放场景视图的标注图标
通过
Gizmos.DrawIcon()
显示支持自定义
.png
图标(需开启alpha通道)
十一、WebGLTemplates
路径:Assets/WebGLTemplates
作用:
自定义WebGL加载页面
包含
index.html
模板文件可修改加载动画/背景样式
十二、Tests 测试文件夹
路径:Assets/Tests
特性:
存放单元测试脚本
使用Unity Test Framework
支持EditMode/PlayMode测试
总结啦总结啦
文件夹名称 | 路径获取方式 | 是否手动创建 | 作用 | 注意事项 | 特性 |
---|---|---|---|---|---|
工程路径 | Application.dataPath (上级目录) |
否 | 编辑器模式下工程根路径 | 发布后路径不可用 | 仅编辑器可用,发布后路径结构改变 |
Resources | Application.dataPath + "/Resources" |
是 | 动态加载资源 | 必须通过Resources.Load() 加载 |
- 打包压缩加密 - 仅可读 - 所有资源强制打包 |
StreamingAssets | Application.streamingAssetsPath |
是 | 存放初始可读写资源 | 移动平台只读 | - 不压缩加密 - PC端可写 - 跨平台路径差异大 |
persistentDataPath | Application.persistentDataPath |
否 | 持久化数据存储 | 所有平台可读写 | - 用户数据存储核心位置 - 适合存档/下载内容 |
Plugins | 不常用 | 是 | 存放平台原生插件 | 需按平台分类(如Plugins/Android ) |
- 不同平台独立编译 - 支持 [DllImport] 调用 |
Editor | Application.dataPath + "/Editor" |
是 | 存放编辑器脚本 | 不打包到最终产品 | - 仅编辑器编译 - 可使用 UNITY_EDITOR 宏 |
Standard Assets | 不常用 | 是 | Unity标准资源库 | 逐步被Package替代 | - 代码优先编译 - 包含基础着色器/脚本 |
Hidden Assets | 任何以. 开头的文件夹 |
是 | 隐藏临时/测试资源 | 需手动管理 | - 资源管理器不可见 - 仍会被打包 |
Editor Default Resources | Assets/Editor Default Resources |
是 | 存放编辑器默认资源 | 必须通过EditorGUIUtility.Load() 加载 |
- 专用加载API - 存放编辑器图标/预设 |
Gizmos | Assets/Gizmos |
是 | 场景视图标注图标 | 需开启Alpha通道 | - 通过Gizmos.DrawIcon() 显示- 支持自定义调试工具 |
WebGLTemplates | Assets/WebGLTemplates |
是 | 自定义WebGL加载页面 | 需要index.html 模板 |
- 修改加载动画/背景 - 支持自定义HTML/CSS |
Tests | Assets/Tests |
是 | 单元测试脚本 | 需安装Test Framework | - 支持EditMode/PlayMode测试 - 生成测试报告 |
补充说明表格:
关键区别 | Resources | StreamingAssets | persistentDataPath |
---|---|---|---|
可写性 | 只读 | PC可写,移动端只读 | 全平台可写 |
压缩加密 | ✔️ | ❌ | ❌ |
典型用途 | 必须立即加载的资源 | 初始AB包/视频 | 用户数据/下载内容 |
加载方式 | Resources.Load() |
UnityWebRequest /File.ReadAllBytes() |
File.ReadAllText() |
打包体积影响 | 强制包含所有资源 | 按需使用 | 动态生成不影响包体 |