纳金网

标题: Unity3D脚本编译的四个步骤 [打印本页]

作者: 狂风大尉    时间: 2014-10-29 04:03
标题: Unity3D脚本编译的四个步骤

做为一名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#脚本。

       所以,放在第一组的脚本,将需要更长的编译时间,因为你编译第三组需要再次编译它们。因此如果你想要减少编译时间,把那些不常改动的放在第一组,经常改变的放在第四组。



作者: hyui    时间: 2014-10-29 04:37
Good to know 1!!
作者: oelongeo    时间: 2014-10-29 11:08
长知识了 谢谢您的解释
作者: justinluberg    时间: 2014-10-30 11:44
学习了, 详细的解释
作者: huhumark    时间: 2014-10-31 12:42
感谢分享
作者: Mr.Fair    时间: 2014-10-31 13:24
Thanks for sharing !
作者: larnya    时间: 2015-7-6 21:33
Phase 3: All other scripts that are not inside a folder called Editor.
Phase 4: All remaining scripts (ie, the ones that are inside a folder called Editor).

以上内容摘自官网manual




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5