【前言】
我们知道从源代码到可执行文件有四个步骤:预编译、编译、汇编、链接
- 预编译:处理源代码文件中的以“#”开始的各种预编译指令
- 编译:通过语法语义分析等将源代码文件转为中间语言文件并进行优化,再生成汇编代码文件
- 汇编:将汇编代码文件翻译成机器指令格式的二进制文件,即生成目标文件
- 链接:将多个目标文件链接起来生成可执行文件
Unity本身不会去构建出来一个可执行文件,最终的构建流程还是依托与不同平台的构建工具,Unity的构建相当于为平台构建工具提供数据,这些数据只要是三类:代码文件、资源文件、配置文件。例如,构建出Apk最终还是需要调用Android SDK和NDK,构建出IPA最终还是要在Xcode中进行的。
一般来说,构建会在软件上提供交互入口,点击后开始自动构建,这种方式用的是软件提供的自动构建流程。
我们会有自定义构建处理的需求,在整个构建流程中会提供Hook让我们在代码中去做自定义处理。一般有三种方式:
- 提前注册
- 继承接口
- 使用特性
【Unity构建流程】
构建流程为:准备构建->资源收集->脚本编译->Shader编译->配置文件生成->平台构建
1.发起构建:调用BuildPipeline.BuildPlayer(buildPlayerOptions)发起构建,buildPlayerOptions内容如下:
- string[] scenes 要构建的场景的路径
- string locationPathName 输出路径