文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Overview: Script compilation (Advanced) 脚本编译(高级)

Overview: Script compilation (Advanced) 脚本编译(高级)

时间:2010-09-25  来源:KidReborn

Unity将脚本编译成.NET dll文件,dll文件将在运行时被实时编译执行。

这允许脚本以惊人的速度执行。这比传统的javascript快20倍,比C++慢一半左右。在保存的时候,Unity使用一些时间编译你的脚本。在编译的时候,你能看到Unity的主窗口右角有进度符号。

脚本编译有4个步骤:

1.所有在Standard Assets, Pro Standard Assets, Plugins中的脚本被首先编译

在这些文件夹之内的脚本不能直接访问这些文件夹以外的脚本。

不能直接引用类或它的变量,但是可以使用GameObject.SendMessage与他们通信。

2.所有在Standard Assets/Editor, Pro Standard Assets/Editor, Plugins/Editor中的脚本被首先编译

如果你想要使用UnityEditor命名空间,你必须放置你的脚本到这些文件夹。例如添加菜单或写入自定义wizards你必须放置你的脚本到哪些文件夹。

这些脚本可以访问所有前面组中的脚本。

3.然后所有在Editor中的脚本被编译

如果你想要使用UnityEditor命名空间,你必须放置你的脚本到这些文件夹。例如添加菜单或写入自定义wizards你必须放置你的脚本到哪些文件夹。(我保证这句在官方的手册中也是和上文重复的!)

 

这些脚本可以访问所有前面组中的脚本,但是不能访问后面组中的脚本。

当编写编辑器代码来编辑那些在后面组中的脚本时,有2中解决方法:1.放置其他脚本到"Plugins"文件夹。2.利用JavaScript动态类型。在JavaScript你不需要知道类的类型再使用它,当使用GetComponent时,你可以使用一个字符串来代替类型。你也能使用SendMessage,凭借一个字符串。

4.所有其他的脚本被最后编译

所有没在上述文件夹的脚本被最后编译。

所有这步里编译的脚本有权使用第一组的所有脚本("Standard Assets", "Pro Standard Assets" or "Plugins")。这允许你使用不同的脚本语言相互操作。例如,如果你想要创建一个Javascript,它将使用一个C#脚本。放置C#脚本到"Standard Assets"文件夹,Javascript放在在此文件夹之外,Javascript便可以直接引用C#脚本。

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

针对某些版本的特殊情况

从2.6版本开始,增加了C#预处理定义。针对不同的版本,使用特殊的功能。

// Specific version define including the minor revision
#if UNITY_2_6_0
// Use Unity 2.6.0 specific feature 仅适用2.6.0版的特殊功能
#endif

// Specific version define not including the minor revision
#if UNITY_2_6
// Use Unity 2.6.x specific feature 适用2.6.x版本的特殊功能
#endif

这些代码可以约束使用针对性版本所包含的特殊功能。注意,这个预处理功能仅是从2.6版开始的,以后会怎么样,air knows.

by:Cartoonboy

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载