UEDL15——CompilationPipeline公共类
UEDL15——CompilationPipeline公共类
本章代码关键字
1 | CompilationPipeline //用于处理代码编译相关的操作和事件的公共类 |
CompilationPipeline公共类
它是 Unity 编辑器中的一个公共类,用于处理代码编译相关的操作和事件的
对于我们来说,我们最常用的是利用它得知代码是否编译结束,比如动态生成脚本时,我们需要在编译结束后才能使用新的脚本
关于CompilationPipeline
的更多内容:
- Compilation.CompilationPipeline - Unity 脚本 API(中文文档,部分翻译缺失)
- Unity - Scripting API: CompilationPipeline (unity3d.com)(英文文档)
常用API
-
CompilationPipeline.assemblyCompilationFinished
命名空间:UnityEditor.Compilation;
主要作用:当一个程序集编译结束会主动调用该回调函数
传入的两个参数分别是:-
string arg1
:编译完成的程序集名 -
CompilerMessage[] arg2
:编译完成后产生的编译消息数组,包括编译警告和错误信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18private void OnEnable()
{
CompilationPipeline.assemblyCompilationFinished += CompilationPipeline_assemblyCompilationFinished;
}
private void OnDestroy()
{
CompilationPipeline.assemblyCompilationFinished -= CompilationPipeline_assemblyCompilationFinished;
}
private void CompilationPipeline_assemblyCompilationFinished(string arg1, CompilerMessage[] arg2)
{
Debug.Log($"程序集名:{arg1}");
for (int i = 0; i < arg2.Length; i++)
{
Debug.Log(arg2[i]);
}
}当编译结束时,输出内容:
-
-
CompilationPipeline.compilationFinished
命名空间:UnityEditor.Compilation;
主要作用:当所有程序集编译结束会主动调用该回调函数
参数:-
object obj
:ActiveBuildStatus
活动生成状态对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14private void OnEnable()
{
CompilationPipeline.compilationFinished += CompilationPipeline_compilationFinished;
}
private void OnDestroy()
{
CompilationPipeline.compilationFinished -= CompilationPipeline_compilationFinished;
}
private void CompilationPipeline_compilationFinished(object obj)
{
Debug.Log("所有程序集编译结束" + obj.ToString());
}当编译结束时,输出内容:
-
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!