unity 脚本编译顺序
根据官方的解释,它们的编译顺序如下:
(1)所有在Standard Assets、Pro Standard Assets或者Plugins文件夹中的脚本会产生一个Assembly-CSharp-filepass-vs.csproj文件,并且先编译;
所有在Standard Assets, Pro Standard Assets, Plugins中的脚本被首先编译。在这些文件夹之内的脚本不能直接访问这些文件夹以外的脚本。不能直接引用类或它的变量,但是可以使用GameObject.SendMessage与他们通信。
(2)所有在Standard Assets/Editor、Pro Standard Assets/Editor或者Plugins/Editor文件夹中的脚本产生Assembly-CSharp-Editor-filepass-vs.csproj工程文件,接着编译;
所有在Standard Assets/Editor, Pro Standard Assets/Editor, Plugins/Editor中的脚本被首先编译。如果你想要使用UnityEditor命名空间,你必须放置你的脚本到这些文件夹。例如添加菜单或写入自定义wizards你必须放置你的脚本到哪些文件夹。这些脚本可以访问所有前面组中的脚本。
(3)所有在Assets/Editor外面的,并且不在(1),(2)中的脚本文件(一般这些脚本就是我们自己写的非编辑器扩展脚本)会产生Assembly-CSharp-vs.csproj工程文件,被编译;
(4)所有在Assets/Editor中的脚本产生一个Assembly-CSharp-Editor-vs.csproj工程文件,被编译。
然后所有在Editor中的脚本被编译。当编写编辑器代码来编辑那些在后面组中的脚本时,有两种解决方法:1、放置其他脚本到"Plugins"文件夹。2、利用JavaScript动态类型。在JavaScript你不需要知道类的类型再使用它,当使用GetComponent时,你可以使用一个字符串来代替类型,还可以使用SendMessage。
(5)所有其他的脚本被最后编译
所有没在上述文件夹的脚本被最后编译。所有这步里编译的脚本有权使用第一组的所有脚本("Standard Assets", "Pro Standard Assets" or "Plugins")。这允许你使用不同的脚本语言相互操作。例如,如果你想要创建一个Javascript,它将使用一个C#脚本。放置C#脚本到"Standard Assets"文件夹,Javascript放在在此文件夹之外,Javascript便可以直接引用C#脚本。
之所以按照这样建立工程并按此顺序编译,也是因为DLL间存在的依赖关系所决定的。所以,放在第一组的脚本,将需要更长的编译时间,因为你编译第三组需要再次编译它们。因此如果你想要减少编译时间,把那些不常改动的放在第一组,经常改变的放在第四组。
unity 脚本编译顺序的更多相关文章
- Unity特殊目录和脚本编译顺序
特殊目录和脚本编译顺序 大多数情况下,您能够选择不论什么你喜欢的目录在您的项目的名称.但unity储备一些名称以指示内容有一个特殊的用途.这些目录中有些会影响脚本编译的顺序.从根本上说,有四个单 ...
- unity3d 特殊文件夹和脚本编译顺序
unity3d 特殊文件夹和脚本编译顺序 转自http://blog.csdn.net/u010019717/article/details/40474631 大多数情况下,您可以选择任何你喜欢的文件 ...
- Unity之脚本编译顺序
根据官方的解释,它们的编译顺序如下: (1)所有在Standard Assets.Pro Standard Assets或者Plugins文件夹中的脚本会产生一个Assembly-CSharp-fil ...
- unity脚本运行顺序具体的解释
unity脚本自带函数执行顺序例如以下:将以下脚本挂在随意物体执行就可以得到 Awake ->OnEable-> Start ->-> FixedUpdate-> Upd ...
- unity脚本执行顺序
Awake ->OnEable-> Start ->-> FixedUpdate-> Update -> LateUpdate ->OnGUI ->R ...
- Unity脚本执行顺序自研框架
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52372611 作者:car ...
- unity 脚本执行顺序设置 Script Execution Order Settings
通过Edit->Project Settings->Script Execution Order打开MonoManager面板 或者选择任意脚本在Inspector视图中点击Execu ...
- Unity基础-脚本的加载与编译顺序
脚本的加载与编译顺序 C#是以Assembly(汇编集)为一个基本单元组织代码的,dll就是一个assembly,dll之间有加载以来顺序 Assets/*.dll Stamdard Assets/* ...
- Unity3D中脚本的执行顺序和编译顺序
http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与 ...
随机推荐
- [Java] 继承中,父类被覆盖的成员变量、方法的可访问性
在 Java 的继承机制里,在子类内部,可以访问父类被覆盖的变量和方法:在子类外部,可以访问父类的被覆盖变量,但是不能访问父类的被覆盖方法. 父类中被覆盖的方法不能在外部被方法,这是出于封装的考虑. ...
- Swift基础语法学习总结一
1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型,几乎所有类型都是可打印的. ...
- jQuery表单验证以及将表单序列化为json对象小练习
jquery表单验证(非实时验证),同时,将表单序列化为json对象提交表单. <!DOCTYPE html> <html lang="en"> <h ...
- Spring 3 来创建 RESTful Web Services
Spring 3 创建 RESTful Web Services 在 Java™ 中,您可以使用以下几种方法来创建 RESTful Web Service:使用 JSR 311(311)及其参考实现 ...
- 【Hibernate步步为营】--继承映射具体解释
上篇文章讨论了多对多映射,在使用多对多映射时重点是使用<many-to-many>标签,并在标签的两端加入外键这样在生成关系时会创建两个关系之间的关系表,通过关系表来维护它们之间的关系,另 ...
- C++标准库之 Lower_Bound, upper_Bound
关于二分查找,这绝对是最简单却又最难的实现了,其各种版本号能够參见http://blog.csdn.net/xuqingict/article/details/17335833 在C++的标准库中,便 ...
- WebView中的视频全屏的相关操作
近期工作中,基本一直在用WebView,今天就把它整理下: WebView 顾名思义,就是放一个网页,一个看起来十分简单,可是用起来不是那么简单的控件. 首先你肯定要定义,初始化一个webview,事 ...
- linux telnet服务安装与配置
关闭防火墙:service iptabls stop chkconfig iptabls off 1.安装telnet服务 [root@rheltest1 ~]# rpm -qa ...
- 根据goodsId获得相关商品的列表
List<Goods> goodsList = goodsDetailService.getGoodsListByproductId(productId); for (Goods good ...
- eclipse导入或新建项目时报错 v7 v4
最简单的解决方案 最简单的解决方案 1.下载最新的v4,v7的jar包 http://download.csdn.net/download/u013161218/80772472.放到workspac ...