1.Unity特殊文件夹
1.Unity特殊文件夹
1).Editor文件夹
a.名称固定
必须命名为Editor(大小写敏感), 可以在项目中存在多个(比如: Assets/Editor、Assets/Tools/Editor)
b.核心作用
存放仅在Unity编辑器中生效的内容, 不会被打包到游戏的运行时(移动端/PC安装包)
c.常见内容
- 编辑器工具脚本(比如: 批量打包工具、资源检测脚本)
- 编辑器扩展(如自定义Inspector、菜单栏功能)
- 仅编辑器用的资源(比如: 工具图标、EditorWindow界面预制体)
d.注意事项
- 该文件夹内的脚本不能在运行时代码中引用(否则打包会报错)
- 嵌套在其他文件夹中的Editor子文件夹, 同样会被识别为编辑器目录(比如: Assets/MyTools/Editor)
2).Plugins文件夹
a.名称固定
必须命名为Plugins
b.核心作用
存放第三方插件/原生代码库, Unity会优先编译该文件夹内的代码(编译顺序早于普通脚本)
c.常见内容
- .NET DLL库(比如: C#工具库)
- 原生插件(比如: Android的.aar、iOS的.framework、PC的.dll)
- 平台专属插件(需放在子文件夹, 比如: Plugins/Android、Plugins/iOS)
d.特殊子文件夹(平台专属)
可在Plugins下创建平台名称的子文件夹(如: Android、iOS、StandaloneWindows64), Unity会仅在对应平台打包时包含该
子文件夹的插件
e.注意事项
- 该文件夹内的脚本/插件会被打包到运行时, 需确保兼容目标平台
- 若插件有依赖关系, 需保证编译顺序(比如: A DLL依赖B DLL, B要放在Plugins中更早被编译)
3).Resources文件夹
a.名称固定
必须命名为Resources(可以有多个, 比如: Assets/UI/Resources)
b.核心作用
存放需要在运行时通过代码动态加载的资源, Unity会自动将该文件夹内的所有资源打包到安装包中(即使未被引用)
c.常见内容
- 核心配置文件(如: ScriptableObject配置)
- 运行时动态加载的预制体/纹理
d.加载方式
通过Resources.Load<T>()/Resources.LoadAsync<T>()加载
e.注意事项
- 缺点: 所有内容强制打包(易导致安装包体积膨胀)、无法热更、卸载不灵活;
- 建议: 仅放"必须运行时加载且体积小"的核心资源, 避免滥用
4).StreamingAssets 文件夹
a.名称固定
必须命名为StreamingAssets
b.核心作用
存放需要在运行时通过"文件读取"访问的原始资源, 该文件夹的内容会原封不动打包到安装包(不压缩、不做格式转换)
c.常见内容
- 视频文件(如: MP4)
- 大型配置文件(如: CSV/JSON)
- 不需要Unity导入处理的原始资源
d.访问方式
- PC / OSX: 直接用File.ReadAllText(Application.streamingAssetsPath + "/xxx.csv")
- Android: 需用UnityWebRequest访问(因为资源APK压缩包内)
比如: UnityWebRequest.Get(Application.streamingAssetsPath + "/xxx.mp4")
- iOS: 类似Android, 需用UnityWebRequest 访问
e.注意事项
- 该文件夹是只读的, 运行时无法写入内容(写入需用PersistentDataPath)
- 内容不会被Unity处理(比如: 图片不会转成纹理), 需自行解析格式
5).Editor Default Resources 文件夹
a.名称固定
必须命名为 Editor Default Resources。
b.核心作用
存放编辑器工具依赖的资源(比如自定义EditorWindow的图标、编辑器预制体),这些资源仅在编辑器中可用不会打包到运行时
c.访问方式
通过EditorGUIUtility.Load("xxx.png")加载(无需指定路径, Unity会自动在该文件夹中查找)
d.注意事项
- 区别于Resources: 该文件夹是编辑器专属的"Resources", 运行时不可用
- 适合存放编辑器工具的UI资源、图标等
6).Gizmos 文件夹
a.名称固定
必须命名为Gizmos
b.核心作用
存放Gizmos工具使用的图标, 在Scene视图中通过Gizmos.DrawIcon()显示
c.使用示例
- 把player_icon.png放入Gizmos文件夹
- 在脚本中写Gizmos.DrawIcon(transform.position, "player_icon.png", true), 即可在Scene视图中显示该图标
d.注意事项
- 图标仅在Scene视图可见, 运行时不会显示
- 支持PNG/JPG等图片格式