Unity 2017.3b功能预览:程序集定义文件和变换工具
Lukasz Paczkowski,十一月22,2017
技术
随着Unity 2017.3发布的临近,我们想向您展示您可能会喜欢的两个非常棒的功能。
第一个功能是程序集定义文件。有了这个功能,你可以选择在一个文件夹中定义自己的托管程序集。通过定义良好的依赖关系,您可以确保在脚本中进行更改时,只会重建所需的程序集,从而缩短编译时间。
你的项目越大,编译时间就越不可避免地变得越大。在一个项目上迭代时,这很容易造成麻烦,所以设置合适的程序集定义文件应该可以帮助你更高效地工作,并且浪费更少的时间等待脚本的编译。
第二个功能是新的变换工具。变换工具是三种当前工具的组合;移动,旋转和缩放适合那些需要轻松访问全部三种情况的情况。虽然是很小的一件事,也节潜在地节省了时间。
您可以在等待Unity 2017.3完整版本的同时测试上述功能(以及更多),只需下载2017.3测试版即可。请记住在升级项目之前进行备份。
脚本编译 - 程序集定义文件
Unity自动定义脚本如何编译为托管程序集。通常情况下,Unity编辑器中用于迭代脚本更改的编译时间随着向项目添加更多脚本而增加。当你正在经历一个迭代过程时,你希望构建尽可能快速和平滑地编译。
您可以使用程序集定义文件根据文件夹内的脚本定义您自己的托管程序集。如果将Project脚本分离为具有良好定义的依赖关系的多个程序集,则可以确保在对脚本进行更改时只重建所需的程序集。这样可以减少编译时间,因此您可以将每个托管程序集视为Unity项目中的单个库。
上图说明了如何将项目脚本拆分为几个程序集。如果您只是在Main.dll中更改脚本,则其他任何程序集都不需要重新编译。由于Main.dll包含较少的脚本,它也比Assembly-CSharp.dll编译速度更快。
同样,您在Stuff.dll中所做的脚本更改只会导致Main.dll和Stuff.dll重新编译。
如何使用程序集定义文件
程序集定义文件是通过转到“资产”>“创建”>“程序集定义”创建的资产文件。他们有扩展名.asmdef。
您可以将一个程序集定义文件添加到Unity项目中的一个文件夹,以将该文件夹中的所有脚本编译成程序集,然后在Inspector中设置该程序集的名称。
注意:程序集定义文件所在的文件夹的名称和程序集定义文件的文件名对程序集的名称没有影响。
使用Inspector也可以在项目中添加对其他程序集定义文件的引用。编译程序集时使用引用,并定义程序集之间的依赖关系。
Unity使用引用来编译程序集,还定义了程序集之间的依赖关系。
您可以在Inspector中为程序集定义文件设置平台兼容性。您可以选择排除或包含特定的平台。
文件夹层次结构内多个程序集定义文件
如果在文件夹层次结构中有多个程序集定义文件(扩展名:.asmdef),则会将每个脚本添加到路径距离最短的程序集定义文件中。
例:
如果你有一个Assets / ExampleFolder / MyLibrary.asmdef和一个Assets / ExampleFolder / ExampleFolder2 / Utility.asmdef文件,那么:
•Assets> ExampleFolder> ExampleFolder2文件夹中的任何脚本将被编译到Assets / ExampleFolder / ExampleFolder2 / Utility.asmdef定义的程序集中。
•Assets> ExampleFolder文件夹中不在Assets> ExampleFolder> ExampleFolder2文件夹中的任何文件将被编译到Assets / ExampleFolder / MyLibrary.asmdef定义的程序集中。
程序集定义文件不是生成系统文件
**注意**:程序集定义文件不是程序集构建文件。他们不支持通常在构建系统中找到的条件构建规则。
这也是程序集定义文件不支持设置预处理指令(定义)的原因,因为它们始终是静态的。
向后兼容性和隐式依赖性
程序集定义文件与Unity中现有的预定义编译系统向后兼容。这意味着预定义的程序集总是依赖于每个程序集定义文件的程序集。
这与所有脚本如何依赖与Unity中的活动构建目标兼容的所有预编译程序集(plugins / .dlls)类似。
图3中的图说明了预定义程序集,程序集定义文件程序集和预编译程序集之间的依赖关系。
Unity通过预定义编译系统优先处理程序集定义文件。
这意味着在程序集定义文件夹中具有来自预定义编译的特殊文件夹名称将不会对编译产生任何影响。 Unity将它们视为常规文件夹,没有任何特殊含义。
强烈建议您使用项目中所有脚本的程序集定义文件,或完全不使用。否则,每次程序集定义文件重新编译时,不使用程序集定义文件的脚本总是重新编译。这减少了在您的项目中使用程序集定义文件的好处。
API
在命名空间UnityEditor.Compilation中,有一个静态CompilationPipeline类,用于检索有关程序集定义文件和Unity构建的所有程序集的信息。
文件格式
程序集定义文件是JSON文件。他们有以下领域:
字段
类型
名称
字符串
引用(可选)
字符串数组
includePlatforms(可选)
字符串数组
excludePlatforms(可选)
字符串数组
包含平面和排除平面的字段不能在同一个程序集定义文件中一起使用。
通过使用下列方式检索平台名称
1CompilationPipeline.GetAssemblyDefinitionPlatforms
例子
1 MyLibrary.asmdef
2{
3“name”:“MyLibrary”
4“参考”:[“公用程序”],
5“includePlatforms”:[“Android”,“iOS”]
6 }
1 MyLibrary2.asmdef
2{
3“name”:“MyLibrary2”
4“参考”:[“公用程序”]
5“excludePlatforms”:[“WebGL”]
6}
您可以在我们的论坛中找到Assembly Definition Files示例项目,并下载2017.3测试版。
变形工具
您在2017.3 beta版中发现的其他有用功能之一就是新的变形工具。变换工具是一个多工具,它包含标准的三个移动,旋转和缩放工具的功能。变换工具并不是要取代三种标准工具,而是提供一种工具,用于在你不需要在它们之间来回切换的情况下使用所有的工具。
为了尽早访问并在2017.3版中试用新的变换工具,您可以下载Unity 2017.3测试版。安装完成后,您将可以访问Unity下一个版本中的所有即将发布的功能。
启用变换工具
要开始使用变换工具,请单击工具栏中的变换工具按钮或按下“Y”。
您现在可以访问“变换工具”gizmo。
世界小发明
将旋转轴旋转设置为“全局”模式后,您可以沿全局轴平移和旋转游戏对象。
轴平移,平面平移
轴旋转,屏幕空间旋转,自由旋转
全局缩放
当地小发明
当枢轴旋转处于“本地”模式时,还可以沿局部轴缩放。
局部轴缩放
屏幕空间Gizmo
如果按住“SHIFT”键,Gizmo将进入Screen Space模式。
在此模式下,您可以在屏幕空间中进行翻译和旋转。
轴平移,平面平移,轴旋转和全局缩放
捕捉
按住“CTRL”(Win)或“Command”(OSX)键时,单位对齐将被激活:
•轴线翻译
•平面翻译
•轴旋转
•轴缩放
•全球缩放
平面平移,轴平移,全局缩放,轴旋转
顶点捕捉
当按下并保持按下“V”键时,小控件进入顶点捕捉模式。
这样,你可以翻译你的游戏对象,使它的一个顶点被放置在另一个对象的顶点上。
平面平移,轴平移,全局缩放,轴旋转
现在就开始访问这些功能吧
装配定义文件和变换工具都是Unity 2017.3测试版的一部分,同时还有对粒子系统的新改进,更新的Crunch纹理压缩库等等。测试与您当前项目的兼容性,或者下载测试版,体验新功能。联系我们了解更多信息。
联系我们:
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » aide怎么导入项目(aide如何导入jar)
1 评论