# 编译和代码重新加载

> How Unity transforms the code you write into code that runs, and the implications for development iteration times and your application's runtime behavior.

编译会将编写的代码转换为，可在给定平台上的，给定上下文中运行的代码。在 Unity 编辑器中工作时，Unity 可能会在几种情况下重新编译并重新加载代码。根据设置和代码的位置，首次打开 Editor、修改代码、重新导入脚本资源以及进入播放模式都可以触发代码重新加载。

重新加载代码是在切换上下文时保留数据并确保相关更改生效的重要方法，但可能会对开发迭代时间产生负面影响。了解 Unity 何时、为何、如何编译和重新加载代码以及如何配置此行为至关重要。了解 Unity 如何确定编译代码各部分的执行优先级，以确保事情按预期顺序发生，这一点也很重要。

| **主题**                                                                                                     | **描述**                                                         |
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| [脚本编译](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation.md)                  | Unity 编译脚本的方式和顺序，以及如何将脚本组织到程序集。                                |
| [脚本后端](/engine/6000.0/manual/scripting/compilation-and-code-reload/backends.md)                            | Unity 为脚本的编译和运行提供的不同选项。                                        |
| [在 Unity 编辑器中重新加载代码](/engine/6000.0/manual/scripting/compilation-and-code-reload/code-reloading-editor.md) | Unity 何时、如何重新加载脚本代码以及这对应用程序性能有何影响。                             |
| [脚本序列化](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-serialization.md)               | 有关 Unity 如何将脚本化的数据结构和对象状态转换为序列化格式以供以后存储或重建，以及这对应用程序性能的影响的详细信息。 |
| [集成第三方代码库（插件）](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins.md)                    | 将第三方代码库添加到 Unity 项目中。                                          |

## 其他资源##additional-resources

* [C# 编译器](/engine/6000.0/manual/scripting/environment-and-tools/overview-of-dot-net-in-unity/csharp-compiler.md)
