Unity中的特殊文件夹


目录


前言

Unity中创建一个项目时,会有许多默认文件夹,这些文件夹是用来存放什么文件的呢?我们能否访问这些文件夹?本文将介绍这些文件夹。


工程路径获取

工程文件路径指的是你创建这个项目时,游戏数据文件夹的路径。这就意味着如果这个项目打包/构建后,将构建后的游戏文件夹发送到另一台电脑上,在另一台电脑上是无法获取工程文件路径的(当然也没必要获取)。
在Unity编辑模式下,我们才可能使用到工程路径。
这个路径取决于运行时所基于的平台,详见Application.dataPath.
可以使用Application.dataPatg获取其路径。

“运行时”被加粗了,这个指的是Run Time,构建后的程序实际执行的阶段。

Resources

这个文件夹在开发过程中经常使用,一些需要动态加载的资源都会放在该文件夹下。Unity创建项目模板后,不会自动创建Resources文件夹,所以我们需要手动在Assets文件夹下创建Resources文件夹。
我们能通过Application.dataPath + 路径名获得其文件夹路径。
这个文件夹有以下特点:

  1. 需要使用Resources API动态加载的资源可以放在该文件夹;
  2. 游戏构建时,该文件夹会被打包,也就是说构建后的游戏文件夹中的游戏资源不会一个一个展示,全都打包在一个文件里了;
  3. 文件夹打包时会压缩加密;
  4. 打包后的文件夹内容只可读,只能通过Resources API加载。

StreamingAssets

该文件夹和Resources一样,不会自动创建,需要我们手动创建。
Application.streamingAssetsPath获得该文件夹的路径。

打包后无法通过Application.dataPath拼接路径以获得其路径,不同平台的路径是不同的。

该文件夹具有以下特点:

  1. 打包后无加密;
  2. 移动平台只读,PC可读可写;
  3. 可以放入一些自定义加载规则的资源,比如纸牌游戏动态制卡时,存放纸牌角码和花色的XML配置文件。

PersistentDataPath

该文件夹无需自己创建。一般是游戏运行过程中保存的数据,例如存档。游戏存档在Windows平台下一般在`用户名/AppData`中能够找到。
可以使用Application.persistentDataPath获取该文件夹路径,不同平台,路径是不同的。

该文件具有以下特点:

  1. 所有平台可读可写;
  2. 一般放置动态下载或动态创建的文件,游戏的下载或创建的文件,例如存档、配置信息等。

Plugins

该文件夹存储插件、第三方库以及原生平台代码。具有以下特点:

  1. 存放插件;
  2. 存储多个平台的插件的文件夹。

Editor

该文件夹存放只在Unity编辑器中运行的脚本或工具。具有以下特点:

  1. 可以通过Application.dataPath拼接获取其路径;
  2. 存放对编辑器进行修改的相关脚本,例如自定义菜单命令和自定义Inspector面板;
  3. 不会被打包,因为只在编辑器中运行。

Standard Assets

该文件是Unity提供的默认资源文件夹和一些通用的脚本,在一些官方模板项目中会有。


总结

文件夹 是否需要手动创建 作用
Resources 是 使用相关API动态加载资源,压缩加密打包内容
StreamingAssets 是 自定义资源加载规则,打包内容不会加密
PersistentDataPath 否 放置动态下载或创建的资源,游戏下载或创建的资源
Plugins 是 存储多个平台的插件
Editor 是 放置编辑器拓展脚本
Standard Assets 是 默认资源文件夹,存放一些Unity自带组件