导读:Unity 是行业领先的实时3D开发平台,还提供更多解决方案。从绝妙创意到大获成功,探索可为游戏开发生命周期的每个阶段提供帮助的解决方案。Unity 2017.3b功能预览:程序集定义文件和变换工具随着Unity 2017.3发布的临近,我们想向您展示您可能会喜欢的两个非常棒的功能。第一个功能是程序集定义文件。有了这个功能,你可以选择在一个文件夹中定义自己的托管程序集。通过定义良好的依赖关系,您可
Unity 是行业领先的实时3D开发平台,还提供更多解决方案。从绝妙创意到大获成功,探索可为游戏开发生命周期的每个阶段提供帮助的解决方案。
Unity 2017.3b功能预览:程序集定义文件和变换工具
随着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纹理压缩库等等。测试与您当前项目的兼容性,或者下载测试版,体验新功能。联系我们了解更多信息。
Unity2017全新功能将帮助开发者和艺术家共同创造出众的体验与内容。Timeline和Cinemachine等强大的新功能,将让艺术家在没有程序员帮助的情况下,自主创造出影视内容和游戏桥段。无需等待,创造者们将有更多时间去挥洒创意。
功能
强大可扩展编辑器
创作者的工作空间
Unity编辑器是为艺术家、设计师、开发者及其它成员们提供的创作中心。支持Windows与Mac操作系统,包含2D与3D场景设计工具,所见即所得的模式支持快速编辑与迭代,拥有强大的动画系统。
故事叙述:Timeline工具可供艺术家们创建惊艳的影视内容与游戏过场动画。
影视内容:利用Cinemachine的智能相机套件,您可以在Unity编辑器中像电影导演那样控制您的相机镜头。
AI领航工具:您的NPC将即刻在游戏世界中展开巡航,先进的分析工具将让开发者了解场景中需要进行性能优化的地方
自定义工具:您可以使用任意工具扩展编辑器,以适配团队的工作流程。
图形渲染
创造出使玩家着迷的场景与氛围
从明亮的白天到夜晚的霓虹,从阳光普照的大地到昏暗的午夜街道和暗巷,创造多变的游戏环境
实时渲染引擎:使用实时全局光照和物理渲染打造高保真的视觉效果
原生图形API:Unity支持多个平台,仍与各个平台的底层图形API息息相关,帮助开发者尽可能利用更新的GPU与硬件改善,如Vulkan、iOS Metal、DirectX12、nVidia VRWorks或AMD LiquidVR。
引擎性能
顶级性能
利用不断改善的引擎优化内容创作。
高级分析工具 提供如何优化性能的妙计
原生C++性能 利用不断优化的IL2CPP横跨更多平台
将于2017/2018发布
脚本运行时升级至Mono/.NET 4,6/C#6 (Unity 2017.1中为实验性)
简单安全的多线程任务系统适用于密集计算型场景(Unite Europe展示的实验版即将发布)
业界领先的多平台支持
一次构建,全局部署,实现更大用户规模
25个平台 横跨移动、桌面、主机、TV、VR、AR及网页平台。
引领VR/AR技术革新: Unity工作流能够非常方便地将您的应用移植到更新的平台(即将发布的Unity 2017支持Vuforia、Google Tango以及Microsoft Mixed Reality)
Unity 资源商店
快速进入开发,加速开发进度
无论有何需求或难题,资源商店都能迎刃而解。
可直接用于Unity项目的现成内容,加速开发进度,降低开发难度
大量免费及付费内容
无论有何需求:美术资源、模型、脚本、开发工具等等
多玩家
Multiplayer多人联网提供简单的方式,在Unity中创建实时网络游戏。
快速设置:快速实现且高度优化
Unity提供服务器:确保玩家可以找寻彼此并愉快玩耍
团队合作
快速协同工作
Unity Team让创意团队更高效地协同工作,保证合作流畅并简化工作流程
保存、共享及同步 可用于项目的简单版本控制以及云存储,均已无缝集成到Unity
Cloud Build云构建:自动构建版本并共享给团队成员。
Unity Connect
将终极创意变为现实
Unity Connect是专为Unity创作者打造的专业人才市场网络。
免费展示您的作品
被伯乐一眼相中
联系有能力帮助您解决难题的人来实现您的终极创意
探索行业新机会
实时行为分析
实时行为分析提供实时优化锦囊
Unity Analytics分析服务让您快捷地获得帮助您提升游戏表现和玩家体验的重要信息
实时操作分析功能全集 监控玩家行为(游戏及玩家分析、热度图、性能监控)
无需SDK! Unity Analytics分析服务已内置到编辑器,无需安装SDK!
性能优化
发现程序错误
Unity性能报告服务实时定位问题
查找并定位高优先级问题 客户正在面临的
收集并响应应用错误 实时 横跨设备与平台
变现盈利
简单提升收益的方法
Unity拥有内置的解决方案,帮助您获得的成功.
创收解决方案 Ads & IAP
实时操作的分析功能全集 监控玩家行为
持续提升:实时优化您已上线游戏的表现,无需重新发布,利用分析数据提升用户生命周期价值(LTV)。
广告
获得新观众
利用Unity Ads全球广告网络推广游戏,坐拥广大新玩家
访问高级游戏娱乐内容
10亿以上的独立设备玩家触手可及
在正确场合适时获取目标玩家,即玩家参与度最高时
爆发式用户增长
通过Everyplay, 您的用户可以把他们游戏中的更佳瞬间与朋友分享。游戏中的成功,失败和有趣的场景的视频回放将促进其他玩家下载并安装您的游戏。
上一篇:KeyVR