通常可为创建的文件夹选择任何名称来组织 Unity 项目。但是,Unity 出于特殊目的保留了一些文件夹名称。例如,必须将编辑器脚本放在名为 Editor 的文件夹中才能使这些脚本正常工作。
本页面包含 Unity 使用的特殊文件夹名称的完整列表。这些文件夹名称如下:
Assets 文件夹是包含 Unity 项目使用的资源的主文件夹。编辑器中的项目 (Project) 窗口的内容直接对应于 Assets 文件夹的内容。大多数 API 函数都假定所有内容都位于 Assets 文件夹中,因此不要求显式提及该文件夹。但是,有些函数需要将 Assets 文件夹添加为路径名的一部分(例如,AssetDatabase 类中的一些函数)。
编辑器脚本在开发期间向 Unity 添加功能,但在运行时在构建中不可用。Editor 文件夹中的脚本以编辑器脚本的形式运行,而不是运行时脚本。
可在 Assets 文件夹中的任何位置添加多个 Editor 文件夹。应将编辑器脚本放在 Editor 文件夹内或其中的子文件夹内。
Editor 文件夹的确切位置会影响其脚本相对于其他脚本的编译时间。请参阅有关特殊文件夹和脚本编译顺序的文档以了解完整的描述。
使用编辑器脚本中的 EditorGUIUtility.Load 函数可从 Editor 文件夹中的 Resources 文件夹加载资源。这些资源只能通过编辑器脚本加载,并会从构建中剥离。
注意:如果脚本位于 Editor 文件夹中,Unity 不允许将派生自 MonoBehaviour 的组件分配给游戏对象。
编辑器脚本可以使用 EditorGUIUtility.Load 函数以利用按需加载的资源文件。此函数在名为 Editor Default Resources 的文件夹中查找资源文件。
只能有一个 Editor Default Resources 文件夹,且必须将其放在项目的根目录中;直接位于 Assets 文件夹中。将所需的资源文件放在此 Editor Default Resources 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 EditorGUIUtility.Load 函数的路径中包含子文件夹路径。
辅助图标 (Gizmos) 允许将图形添加到场景 (Scene) 视图,以帮助可视化不可见的设计细节。Gizmos.DrawIcon 函数在场景中放置一个图标,作为特殊对象或位置的标记。必须将用于绘制此图标的图像文件放在名为 Gizmos 的文件夹中,这样才能被 DrawIcon 函数找到。
只能有一个 Gizmos 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。将所需的资源文件放在此 Gizmos 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 Gizmos.DrawIcon 函数的路径中包含子文件夹路径。
可从脚本中按需加载资源,而不必在场景中创建资源实例以用于游戏。为此,应将资源放在一个名为 Resources 的文件夹中。通过使用 Resources.Load 函数即可加载这些资源。
可在 Assets 文件夹中的任何位置添加多个 Resources 文件夹。将所需的资源文件放在 Resources 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 Resources.Load 函数的路径中包含子文件夹路径。
__注意__:如果 Resources 文件夹是 Editor 的子文件夹,则其中的资源可通过编辑器脚本加载,但会从构建中删除。
在导入标准资源 (Standard Asset) 包时,Unity 会将资源放在名为 Standard Assets 的文件夹中。除了容纳资源之外,这些文件夹还会影响到脚本编译顺序。有关更多信息,请参阅有关特殊文件夹和脚本编译顺序的页面。
只能有一个 Standard Assets 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。请将所需的资源文件放在 <project-root>/Assets/Standard Assets 文件夹或其中的一个子文件夹中。
尽管将资源直接合并到构建中更为常见,但您有时可能希望资源以其原始格式作为单独的文件提供。例如,您需要使用 Handheld.PlayFullScreenMovie 从文件系统访问视频文件才能在 iOS 上播放。
要包含流媒体资源,请执行以下操作:
请参阅关于流媒体资源的页面以了解更多详细信息。
只能有一个 StreamingAssets 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。请将资源文件放在 StreamingAssets 文件夹或其子文件夹内。如果资源文件位于子文件夹中,请始终在用于引用流媒体资源的路径中包含子文件夹路径。
Unity 会将任何以 .androidpack 结尾的文件夹认定为 Android 资源包。有关更多信息,请参阅创建自定义资源包。
Unity 会将任何以 .androidlib 结尾的文件夹认定为 Android 库项目。有关更多信息,请参阅导入 Android 库项目。
在导入过程中,Unity 忽略 Assets 文件夹(或其子文件夹)中的以下文件和文件夹:
这可以防止导入由操作系统或其他应用程序创建的特殊文件和临时文件。