Skip to main content

特殊文件夹

面试题

  1. Unity 中特殊文件夹都有哪一些?
  2. Unity 中持久化文件夹都有哪一些?

📂 特殊文件夹

img

文件夹是否打包访问方式典型用途
Resources✅ 强制打包Resources.Load()动态加载的预制体
StreamingAssets✅ 原样拷贝Application.streamingAssetsPath视频/配置文件
Editor❌ 不打包仅编辑器脚本扩展Unity编辑器
Plugins/Android✅ 平台适配自动链接Android SDK集成

1️⃣ 资源加载类文件夹

Resources

  • 作用:通过Resources.Load()动态加载资源,所有内容无条件打包到最终构建中。

  • 特点

  • 支持多层级嵌套(如Resources/UI/Buttons

  • 资源加密压缩,适合预制体/小纹理

  • 慎用:过度使用会导致包体膨胀。

StreamingAssets

  • 作用:存放需原样打包的原始文件(如视频、JSON配置),通过Application.streamingAssetsPath访问。

  • 跨平台差异

  • Android:压缩在APK内,需用WWW/UnityWebRequest加载

  • iOS:直接拷贝到沙盒路径

2️⃣ 编辑器扩展类文件夹

Editor

  • 作用:存放编辑器脚本,可调用UnityEditor API,不参与运行时构建

  • 规则

  • 可存在于任意层级(如Assets/Scripts/Editor

  • 禁止挂载到GameObject

Editor Default Resources

  • 作用:存储编辑器GUI资源(如图标),仅能通过EditorGUIUtility.Load()加载。
  • 路径限制:必须直接位于Assets根目录下。

3️⃣ 平台适配类文件夹

Plugins

  • 子目录

  • x86/x86_64:平台原生库(如.dll

  • Android:存放.jar.so文件

  • iOS.a.m文件。

  • 编译顺序:优先编译,供其他脚本调用。

Standard Assets

  • 作用:存放优先编译的标准资源脚本,编译到Assembly-CSharp-firstpass
  • Pro版专属Pro Standard Assets为付费功能资源。

4️⃣ 辅助功能类文件夹

Gizmos

  • 作用:存放场景编辑器的辅助图标,通过Gizmos.DrawIcon调用。

Hidden Assets

  • 规则:以下内容被Unity忽略:

  • .开头的文件夹(如.temp

  • cvs.tmp文件。

📂 持久化文件夹

img

文件夹读写权限数据保留策略典型用途
persistentDataPath读写永久保存用户存档、设置
streamingAssetsPath只读随应用包存在初始配置、视频
temporaryCachePath读写可能被系统清理临时缓存、下载

1️⃣ Application.persistentDataPath(全平台读写)

  • 作用:存储需长期保存的用户数据(如存档、配置),唯一全平台可读写路径

  • 跨平台路径示例

  • Android/data/data/<包名>/files

  • iOS/var/mobile/Containers/Data/Application/<UUID>/Documents

  • PCC:/Users/<用户名>/AppData/LocalLow/<公司名>/<产品名>

  • 特点

  • 数据卸载应用后仍保留(除非用户手动清除)

  • 支持文件操作(如JSON、二进制存档)。

2️⃣ Application.streamingAssetsPath(只读静态资源)

  • 作用:存放打包时需原样拷贝的静态资源(如视频、初始配置)。

  • 跨平台差异

  • Android:压缩在APK内,需WWWUnityWebRequest加载

  • iOS/PC:直接访问文件系统路径

  • 限制不可写入,仅用于读取初始数据。

3️⃣ Application.temporaryCachePath(临时缓存)

  • 作用:存储临时文件(如下载资源、缓存数据),可能被系统自动清理

  • 示例路径

  • Android/data/data/<包名>/cache

  • iOS/var/mobile/Containers/Data/Application/<UUID>/tmp

  • 适用场景:断点续传、非关键性临时数据。