查看: 8668|回复: 6
打印 上一主题 下一主题

[其他] Unity3D脚本编译的四个步骤

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-10-29 04:03:59 |只看该作者 |倒序浏览

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

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


分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-10-29 04:37:55 |只看该作者
Good to know 1!!
回复

使用道具 举报

0

主题

2

听众

1346

积分

助理设计师

Rank: 4

纳金币
505
精华
0
板凳
发表于 2014-10-29 11:08:41 |只看该作者
长知识了 谢谢您的解释
回复

使用道具 举报

1

主题

1

听众

263

积分

设计实习生

Rank: 2

纳金币
21
精华
0

最佳新人

地板
发表于 2014-10-30 11:44:38 |只看该作者
学习了, 详细的解释
回复

使用道具 举报

74

主题

2

听众

3549

积分

中级设计师

Rank: 5Rank: 5

纳金币
-100
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-10-31 12:42:03 |只看该作者
感谢分享
回复

使用道具 举报

4

主题

2

听众

1742

积分

助理设计师

Rank: 4

纳金币
110
精华
0

活跃会员

6#
发表于 2014-10-31 13:24:33 |只看该作者
Thanks for sharing !
回复

使用道具 举报

0

主题

1

听众

60

积分

设计初学者

Rank: 1

纳金币
297
精华
0
7#
发表于 2015-7-6 21:33:28 |只看该作者
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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-10 14:53 , Processed in 0.108886 second(s), 36 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部