Unity的使用(三):编译顺序,文件类型和生命周期

我们写好的脚本,是经过编译之后才被使用,而Unity游戏引擎对脚本的编译顺序也是顺序的,了解这个顺序会对程序编码大有裨益。同时,写在我们脚本中的函数也是按一个固定的执行顺序执行的,这个固定的执行顺序就是Unity的生命周期,这是Unity学习者必须掌握的。

一. Unity中脚本编译顺序

编译的原则是在第一个引用前编译它,因此,将脚本放在Assets不同文件夹下不同位置会有不同的编译顺序。官方给出的编译顺序如下:
官方脚本编译顺序
其中各个特殊文件夹是什么请参考本系列的第一篇文章。可以看到,编译一共分为四个阶段,两大块(标准资源配置块和自定义块),且每个块下的Editor文件夹中的资源编译靠后(可以理解Editor编写的为引擎工具,是对其所属块内资源的编辑使用,因此要靠后编译)。

二. Unity中的文件类型

在Unity中一般存在这么几种文件类型:资源文件(Imported Assset),代码文件,序列化文件(Native Asset),文本文档,非序列化文件,meta文件。

1. 编译产生的文件

每个编译阶段都会产生对应的项目文件。以C#为例,当项目中包含有C#脚本时,Unity引擎会产出以Assembly-CSharp为前缀,csproj为后缀的文件,名称中包含“vs”表示是给Visual Studio用的,不含则是给Mono Develop用的。
四个编译阶段产生的对应项目文件
可能部分初学者没看过Assembly-CSharp-firstpass.csproj文件,那是因为你的项目里没有Standard Assets, Pro Standard Assets和Plugins三个文件夹中的任何一个,自然也不会编译产生这个项目文件。

在产生这些项目文件的编译过程中,同时也会在工程根目录/Library/ScriptAssemblies下生成dll,分别为:
Assembly-CSharp-Editor.dll:包含所有Editor下的脚本;
Assembly-CSharp-firstpass.dll:包含Standard Assets, Pro Standard Assets, Plugins文件夹下的脚本(不含Editor文件夹)
Assembly-CSharp.dll:包含除了以上两种所有位于Assets目录中的脚本;

不同语言的脚本,编译出的工程文件的前后缀也不同,也会生成不同的dll文件&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值