Unity 保留了一些项目文件夹名称,以表明其内容具有特殊用途。其中一些文件夹会影响脚本编译顺序。这些文件夹名称包括:
有关这些文件夹的更多信息,请参阅 特殊文件夹名称。
Unity 根据脚本文件在项目文件夹结构中的位置,将脚本一段代码,允许您创建自己的组件,触发游戏事件,随时间推移修改组件属性,并以您喜欢的任何方式响应用户输入。 更多信息
参见 词汇表 分成四个独立的阶段进行编译。Unity 为每个阶段创建一个单独的 CSharp 项目文件 (.csproj) 和一个预定义的程序集。(如果某个编译阶段没有符合条件的脚本,Unity 不会创建相应的项目文件或程序集。)
当脚本引用在不同阶段(因此位于不同程序集)编译的类时,编译顺序很重要。基本规则是,在当前阶段之后编译的任何内容都不能被引用。在当前阶段或更早阶段编译的任何内容都可以完全使用。
编译阶段如下所示
阶段 | 程序集名称 | 脚本文件 |
---|---|---|
1 | Assembly-CSharp-firstpass | 位于名为 Standard Assets、Pro Standard Assets 和 Plugins 的文件夹中的运行时脚本。 |
2 | Assembly-CSharp-Editor-firstpass | 位于名为 Editor 的文件夹中的编辑器脚本,这些文件夹位于名为 Standard Assets、Pro Standard Assets 和 Plugins 的顶级文件夹中。 |
3 | Assembly-CSharp | 所有不在名为 Editor 的文件夹中的其他脚本。 |
4 | Assembly-CSharp-Editor | 所有剩余的脚本(位于名为 Editor 的文件夹中)。 |
注意:Standard Assets 仅适用于Assets游戏中或项目中可以使用的任何媒体或数据。资源可能来自在 Unity 之外创建的文件,例如 3D 模型、音频文件或图像。您也可以在 Unity 中创建一些资源类型,例如动画控制器、音频混合器或渲染纹理。 更多信息
参见 词汇表根文件夹。
您可以使用自己的程序集通过创建程序集定义文件来组织项目中的脚本。定义自己的程序集可以减少在进行无关代码更改时需要重新编译的代码量,并且可以提供更多对其他程序集依赖项的控制。有关更多信息,请参阅 脚本编译 - 程序集定义文件。