sunshin 发表于 2012-11-27 11:19

Unity3D 脚本编译的顺序

脚本编译在4个步骤中执行:

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

在这些文件夹之内的脚本不能直接访问这些文件夹之外脚本。不能直接引用或它的 变量,但是可以使用GameObject.SentMessage与它们通信。




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

如果你想使用UnityEditor命名空间你必须放置你的脚本在这些文件夹中,例如添加菜单项或自定义的向导,你都需要放置脚本到这些文件夹。这些脚本可以访问前一组中的脚本。




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

如果你想使用UnityEditor命名空间你必须放置你的脚本在这些文件夹中。例如添加菜单单项或自定义的向导,你都需要放置脚本到这些文件夹。这些脚本可以访问所有前面组中的脚本,然而它们不能访问后面组中的脚本。这可能会是一个问题,当编写编辑器代码编辑那些在后面组中的脚本时。有两个解决方法:1、移动其他脚本到"Plugins"文件夹 2、利用JavaScript的动态类型,在javascript中你不需要知道类的类型。在使用GetComponent时你可以使用字符串而不是类型。你也可以使用SendMessage,它使用一个字符串。




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

所有那些没有在上面文件夹中的脚本被最后编译。所有在这里编译的脚本可以访问第一个组中的所有脚本("Standard Assets","ProStandard Assets" or "Plugins")。这允许你让不同的脚本语言互操作。例如,如果你想创建一个JavaScript。它使用一个C#脚本;放置C#脚本到"Standard Assets"文件夹并且JavaScript放置在"Standard Assets"文件夹之外。现在JavaScript可以直接引用c#脚本。放置在第一个组中的脚本,将需要较长的编译时间,因为当他们被编译后,第三组需要被重新编译。因此如果你想减少编译时间,移动那些不常改变的到第一组。经常改变的到第四组。

ゅ星星点灯° 发表于 2012-11-30 12:16

这个 貌似 不错 谢谢分享

shengbin88 发表于 2013-1-12 23:06

不太理解,新手难啊

无敌甩葱歌 发表于 2017-3-4 18:13

真心顶

Sue. 发表于 2017-3-4 17:41

难得一见的好帖

无敌甩葱歌 发表于 2017-3-4 17:34

说的非常好

cnchenjie 发表于 2017-3-4 18:01

不错不错

shadow_qxz 发表于 2017-3-4 17:34

LZ真是人才

yiwokeji 发表于 2017-3-15 17:14

很不错

silence394 发表于 2017-3-15 17:17

顶顶多好
页: [1]
查看完整版本: Unity3D 脚本编译的顺序