做为一名unity3d开发者,熟悉Unity3D脚本的编译步骤是很有必要的。这样可以让我们更加高效地编写自己的代码,如果代码出现了问题,还能有效地改正错误。总之,好处多多,今天就来了解一下吧。
Unity3D将脚本编译成.NET dll文件,dll文件将在运行时被实时编译执行。这比传统的javascript快20倍,比C++慢一半左右。在保存的时候,Unity使用一些时间编译你的脚本。在编译的时候,你能看到Unity的主窗口右角有进度符号。
以下是编译的四个步骤: 一、所有在Standard Assets, Pro Standard Assets, Plugins中的脚本被首先编译。 在这些文件夹之内的脚本不能直接访问这些文件夹以外的脚本。不能直接引用类或它的变量,但是可以使用GameObject.SendMessage与他们通信。
二、所有在Standard Assets/Editor, Pro Standard Assets/Editor, Plugins/Editor中的脚本被首先编译。 如果你想要使用UnityEditor命名空间,你必须放置你的脚本到这些文件夹。例如添加菜单或写入自定义wizards你必须放置你的脚本到哪些文件夹。这些脚本可以访问所有前面组中的脚本。
三、然后所有在Editor中的脚本被编译 当编写编辑器代码来编辑那些在后面组中的脚本时,有两种解决方法:1、放置其他脚本到"Plugins"文件夹。2、利用JavaScript动态类型。在JavaScript你不需要知道类的类型再使用它,当使用GetComponent时,你可以使用一个字符串来代替类型,还可以使用SendMessage。
四、所有其他的脚本被最后编译 所有没在上述文件夹的脚本被最后编译。所有这步里编译的脚本有权使用第一组的所有脚本("Standard Assets", "Pro Standard Assets" or "Plugins")。这允许你使用不同的脚本语言相互操作。例如,如果你想要创建一个Javascript,它将使用一个C#脚本。放置C#脚本到"Standard Assets"文件夹,Javascript放在在此文件夹之外,Javascript便可以直接引用C#脚本。 所以,放在第一组的脚本,将需要更长的编译时间,因为你编译第三组需要再次编译它们。因此如果你想要减少编译时间,把那些不常改动的放在第一组,经常改变的放在第四组。
|