您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 程序开发 > 开发经验 >
    Unity3D四步解决高级脚本编译
    时间:2015-05-04 10:12 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    Unity把所有的脚本编译为.NET dll文件,这些 dll文件将在运行时实时地进行汇编。这使得Unity的脚本运行速度非常快,比传统的 JavaScript快 20倍左右,只比本地 C++代码慢50%左右。在保存脚本时,Unity 便会花极少的时间对它们进行编译,在编译的过程中,你可以看到在主窗口的右下角会显示一个小型旋转进展图标。

    脚本编译分为四步进行:

    1、在“Standard Assets”、“Pro Standard Assets”和“Plugins”中的脚本,首先进行编译。一个文件夹中的脚本不能在另一个文件夹的脚本中直接使用,但可以通过使用GameObject.SendMessage 来进行交互。

    2、在“Standard Assets/Editor” 、“Pro Standard Assets/Editor”和“Plugins/Editor”中的脚本,其次进行编译。如果你想要使用 UnityEditor 命名空间,你必须把脚本放到这些文件夹中。例如,增加菜单项或自定义导航, 你必须把相应的脚本放到这些文件夹中。这些脚本能够访问上级组中的脚本。Unity3D教程手册

    3、在“Editor”中的脚本,然后进行编译。

    跟上步的情况基本相同,不同点在于这些脚本不能访问下级组中的脚本。这在编写编辑器代码时会出现一些问题, 因为你不能编辑下级组中的脚本。 可以通过两种方式来解决:

    (1)、移动想要访问的脚本到“Plugins”文件夹中。

    (2)、利用 JavaScript 的动态类型化功能。在JavaScript中,你不需要知道所使用的类的类型。例如,GetComponent函数和 SendMessage函数都仅仅使用一个字符串来代替类型。

    4、其他脚本最后进行编译。

    不在上面提到的文件夹中的脚本将最后进行编译。这些脚本有权访问 “Standard Assets”、“Pro Standard Assets”和“Plugins”文件夹中的脚本,这使得你可以在不同语言脚本之间进行交互。例如,如果你想要创建一个 JavaScript,并在其中使用一个 C#脚本。你可以把 C#脚本放到“Standard Assets”文件夹中,而把 JavaScript放到该文件夹的外面。这样javaScript就可以直接访问C#脚本了。Unity3D教程手册

    第一组(“Standard Assets” 、“Pro Standard Assets”和“Plugins”文件夹)中的脚本在编译时会比较耗时,因为它们在编译的同时,第三组(“Editor”文件夹)也在进行预编译。因此,如果你想减少编译的时间,可以把第一组中的脚本移到第四组中去,但我们并不推荐这样做。

    针对 Unity版本进行条件编译,这段代码用来在指定的 Unity版本中启用一些可用的游戏特性。



    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家