请选择 进入手机版 | 继续访问电脑版

查看: 2394|回复: 1

[技术] Unity 2018.3正式版功能介绍(1)

[复制链接]

1287

主题

2010

帖子

2万

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
27055
QQ
发表于 2018-12-20 05:03:28 | 显示全部楼层 |阅读模式
上一周,广受期待的Unity 2018.3正式版发布,这个版本是Unity 2018最后一个技术前瞻Tech版本,下一个版本Unity 2018.4将成为稳定支持LTS版本,了解Unity版本发布计划,请点击此处

Unity 2018.3的重要功能包括:改进的预制件工作流程、预制件嵌套功能、改进的可编程渲染管线SRP、地形系统、脚本运行时和预览版Visual Effect Graph等。

受篇幅限制,本文我们将会为大家介绍以下内容:
  • Unity 2018.3的重点功能及改进的概要功能
  • 预制件嵌套和相关工作流程的改进
  • 编辑器用户偏好设置改进
  • 影视相关Timeline和Cinemachine改进
  • 世界构建功能和工具改进
  • 地形系统改进
  • 资源包管理器和Unity Hub改进


下载Unity 2018.3:
https://unity3d.com/get-unity/update
观看Unity 2018.3中重点功能介绍

重点功能和改进概要
长期以来,我们收到用户反馈中最重要的一项补充功能就是预制件嵌套功能。在通过Game Jams活动对开发者进行了大量的访谈,经过对可用性测试研究后,我们发现很多开发者希望对预制件工作流程进行改进,因此我们着手针对重用性,可控性和安全性改进了整个预制件系统。

全新的预制件工作流程允许开发者以粒度等级(Granular Level)拆分场景和预制件。该工作流程将带来更高的灵活性,提升工作效率并让开发更为得心应手,从而不必担心发生需要事后花费大量时间进行修复的错误。

Unity 2018.3拥有统一的设置窗口,可以调整项目设置和偏好设置。新设置窗口可停靠在编辑器界面中,拥有搜索功能,以便开发者更快地找到并调整设置。

Unity现在的默认脚本运行时是.NET 4.x,原来的.NET 3.5运行时已被弃用,对该运行时的支持将在不久后结束,面向.NET 4.x脚本运行时的项目也将能够使用开源的Roslyn编译器。

Unity 2018.3也加入了PhysX 3.4升级,带来了对稳定性和性能的诸多改进,支持使用多个世界和C# Job查询。

用于构建游戏世界的2D Tilemap工具现在支持构建Isometric Tilemaps(等距Tilemap),可以帮助开发者更为轻松地创建策略游戏、经营游戏和模拟游戏等2D项目。

Unity 2018.3更新了地形系统,这标志着更大规模改动的开始。此次更新中,我们的不仅仅通过调整UI和工具,为未来的改进奠定基础,而且还关注于提升性能。此外,地形系统还加入了针对高清晰渲染管线HDRP和轻量级渲染管线LWRP的支持。

Unity 2018.3包含了对高清晰渲染管线HDRP大量的改进。该版本增加了对VR和多重采样抗锯齿功能的初步支持,还优化了对PC、Mac、Xbox One和PS4的支持。

多个HDRP元素的检视窗口UI也得到了更新,包括摄像机、光线、反射探针和材质等元素。最后,我们加入了全新的光照模型,以便开发者制作更复杂的材质。

Unity 2018.3中,我们为Windows系统加入了预览版GPU渐进式光照贴图,并对光照功能进行了诸多改进。

全新的Visual Effect Graph作为预览版资源包推出,你可以通过使用简单灵活的节点系统来创作精美的特效。Visual Effect Graph受到主流电影特效软件的启发,它可以帮助艺术家给游戏等项目创作出色的视觉效果,并且支持在GPU上运行数百万个粒子。

Unity 2018.3为现有的粒子系统加入了大量新功能。例如:粒子网格现在可以像公告牌一样翻转,粒子光线(Particle Lights)现在支持实时全局光照和新的Ringbuffer模式,通过在粒子生命周期结束后,保持粒子可见性直到粒子被替换,从而帮助开发者更轻松地创作诸如脚印和弹孔等持续显示的效果,直至它们被最终替换。

Unity 2018.3对移动端的改进包括支持对Vulkan和Metal的动态分辨率调整,支持Android AppBundle生成功能,可以使用APKzlib为Android更快地构建APK安装包。

对于XR,Unity 2018.3加入对Daydream控制器的原生支持,可以使用VR控制器的Haptics API,并对AR Foundation和XR Performance Testing进行了更新。

关于开发者服务,我们对Collaborate和Cloud Build添加多项改进。Performance Reporting性能报告服务现更名为Cloud Diagnostics云诊断服务,现在该服务也能跟踪用户提交的报告。

Unity 2018.3还加入了许多小型改进和错误修复。你可以在更新页面或通过Unity Hub下载完整的Unity 2018.3,以便了解新版本的所有细节。

下面我们将详细介绍Unity 2018.3中更新的详细信息。

编辑器和工作流程
1、预制件嵌套和改进的工作流程
Unity收到用户反馈中最重要的一项功能就是预制件嵌套功能。

根据150多家企业开发者的调查及访谈,数次可用性测试以及二次Game Jam活动获得的信息,了解到不少开发者希望我们对预制件工作流程进行改进 。因此,我们针对可重用性,可控性和安全性,对整个预制件系统进行了改进。

我们长期计划不仅是实现嵌套支持,还要重新构思核心预制件工作流程,从而使不同团队成员可以同时高效地编辑预制件。

全新预制件工作流程允许开发者以粒度等级(Granular Level)拆分场景和预制件。这将带来更高的灵活性,提升工作效率并让开发更为得心应手,从而不必担心发生耗费时间的错误。

观看新版预制件工作流程的实际使用效果

2、预制件嵌套功能
嵌套预制件将具有更高的灵活性和生产效率。此前我们必须在创建例如建筑这样的大型单块的预制件,或例如家具更细粒度的预制件之间作出选择,无法拥有同时具备二种类型的预制件。

现在有了嵌套预制件的支持后,大型建筑预制件可以由多个较小房间预制件组成,进而能够由多个家具预制件组成,以此类推。

它将为任何规模的团队带来便利:
  • 将预制件分为多个条目,实现更高的效率
  • 重用任何内容,包括从小到大的各类内容
  • 同时处理内容的不同部分


屏幕快照 2018-12-20 上午11.51.34.png


3、预制件变体
默认情况下,预制件变体会继承对象和原预制件的属性,与此同时开发者还可以重写这些属性,为变体添加组件和游戏对象。该功能类似面向对象编程的继承概念。

例如:如果你有一个门的预制件,你可以为其创建变体,给它指定不同的网格和材质,使它看起来有破旧的感觉。

对基础预制件做出的任何修改都会影响变体,例如:你可以通过修改门的基础预制件中碰撞体的大小,轻松调整二个门的碰撞体大小。

我们改进了属性的可视化效果和预制件实例的对象重写功能,加入了对不同粒度级别应用重写的功能,包括:根据属性,组件/游戏对象进行重写,或像以前一样,重写整个预制件实例。

屏幕快照 2018-12-20 上午11.51.54.png


4、预制件模式
此前当开发者要编辑预制件资源时,必须将其拖动到一个已被打开的场景的检视窗口才能进行修改并应用改动,然后还需要记得删除该资源。

另外一个问题是检视窗口中预制件实例的Apply应用按钮。由于该按钮,开发者可能误将改动应用到预制件资源,而且还无法轻易发现改动后的情况。通过推出全新的预制件模式,我们解决了该问题,让开发者可以独立编辑预制件。

现在,开发者将能够编辑整个预制件资源,不必将其实例化到场景后再编辑或编辑已有的实例,这意味着开发者可以避免由于在场景意外应用重写而产生的错误。独立编辑功能让你能够放心做出修改。

屏幕快照 2018-12-20 上午11.52.05.png


5、预制件工作流程示例项目
我们发布了一系列示例项目,以帮助开发者了解如何使用全新的预制件工作流程。

请访问官方论坛获取:
https://forum.unity.com/threads/example-projects.536662

6、用户偏好设置窗口
Unity 2018.3加入了全新的设置窗口,以提供稳定高效的方法来查找并管理所有用户偏好和项目设置。该窗口可以停靠在编辑器中,拥有简单的左右双栏导航布局,你可以通过搜索功能来快速找到需要调整的设置。

01.gif


新设置窗口还提供一个API,可供开发者轻松地为自己的资源包或Asset Store资源商店插件添加自定义设置。

02.gif


现在开发者可以更轻松地使用窗口选项卡。选中的窗口选项卡会以蓝色轮廓高亮显示,选项卡的宽度会根据选项卡名称的长度调整。当打开的选项卡数量超过窗口的宽度时,我们可以使用方向键来滚动切换窗口。

影视功能
1、Timeline
Unity 2018.3大大改进了Timeline动画轨道针对动画层级结构中Root Transform上动画的处理方法。

全新轨道偏移模式
轨道偏移模式会在Timeline准确设定场景中角色动画的起始位置。在Unity 2018.3之前的Timeline中,起始位置取决于Animator状态,现在的轨道提供了更多选项,其中Auto模式用于后向兼容。

03.png


对缩放的修改
如果在Animator上设置了Apply Root Motion标识,Timeline会对Root Transform的动画应用本地缩放。这会让Timeline资源在不同游戏对象之间的重用性更强,有助于移除底部滑行等瑕疵。

不再需要Root Motion
在Unity 2018.3之前,对于改变Root Transform位置和角度的动画剪辑,需要生成Root Motion Curves才能应用Root transformation,现已不再要求。这意味所有改变位置和角度的动画剪辑都适用于Timeline,请注意:不包含传统动画剪辑。

改进的编辑器预览功能
我们改进了编辑器内的Timeline预览。当使用Scene Offsets模式时,场景位置将用作偏移。应用淡入淡出的过渡效果时,会混合到场景姿势和场景位置。

2、Cinemachine
我们为Cinemachine加入了物理摄像机支持,事件映射器和一个具有可交互展示功能的程序化噪声编辑器。

04.png


我们可以通过可视化噪声编辑器,调整Cinemachine摄像机的逼真感。

05.png


世界构建功能
2018年初,ProBuilder的3D建模和关卡设计工具成为了Unity的一部分,该工具的4.0版提供了重大更新。该版本主要处理稳定性和错误修复,同时包含多个新功能和重要改动。

ProBuilder 4.0现在以源代码分发,加入了新版改进的公开API,为开发者提供更多选项来自定义编辑器和运行时。此次更新还加入嵌套预制件工作流程的支持,性能提升和可视化改进,例如:可以为所有选择的元素提供了预选高亮。

地形系统
Unity 2018.3包含对地形系统的更新,重点关注性能和可用性。

此次更新涉及改进的工具和利用GPU实现的更高性能,它还添加了HDRP高清晰渲染管线和LWRP轻量级渲染管线的支持,同时兼容内置渲染管线和现有Unity地形系统。

1、性能
在性能方面,我们为地形添加了GPU实例渲染路径。大多数情况下,实例化会大幅减少绘制调用。我们进行的大量测试都表明,它能减少50%以上的CPU消耗。

2、可编程GPU工具
在编辑器方面,我们公开了一个脚本API可用于构建自定义地形工具,以及一组实用函数,你可以使用它们在GPU上轻松实现无缝的交叉平铺雕刻和绘制操作。

我们将现有地形工具转换为GPU操作,除了使这些工具速度更快,也为我们提供了笔刷大小,改进的笔刷预览,以及通过自动无缝拼接来绘制地形平铺边界的功能。

3、多地形支持
我们使处理多个地形平铺的过程更为简单。除了地形之间的无缝绘制,你还可以自动管理相邻地形间的连接。此前,这需要编写脚本来手动连接地形。

扩展现有地形时,你可以使用全新的‘Create Neighbor Terrain’工具来沿着空白边界快速添加匹配的地形平铺。

4、新资源类型
全新地形工具和Brush资源包括:高度图,网格标记和克隆笔刷等功能。这些绘图工具的功能还未在Unity 2018.3中提供,你可以通过GitHub的Terrain Tools项目获取。

获取Terrain Tools:
https://github.com/Unity-Technologies/TerrainToolSamples

06.png


为了简化工作流程,我们还加入了二个与地形相关的全新资源类型:TerrainLayer和Brush。

TerrainLayer资源允许我们定义独立于地形对象的地形材质,从而能够轻松跟踪多个地形中相同材质的变化,这样能实现无缝绘制和材质修改。

07.png


Brush资源包含绘制工具和雕刻工具所使用的GPU笔刷形状。笔刷形状由纹理和径向衰减曲线定义,这样能更轻松地创建和调整笔刷形状。

08.png


我们还为Unity添加了对R16纹理格式的支持。该支持允许我们避免在笔刷形状上进行8位量化,如果用作高度图标记的话,8位量化会产生不合适的“阶梯”效果。

09.jpg
8位笔刷标记产生的“阶梯”瑕疵(上)和16位笔刷标记的效果(下)


资源包管理器
资源包管理器可为项目动态加载和更新Unity开发的功能,帮助开发者快速获取Unity的新功能。

随着更多Unity功能以资源包格式提供,我们正在稳步改进用户体验,从而帮助开发者更轻松地发现可用资源包和更新,并管理项目中已安装的资源包。

我们对资源包管理器加入了大量改动,包括:更好的UI,可以显示资源包标签的状态;停靠窗口的功能;以及支持轻松访问文档和改动列表。现在你可以根据名称搜索资源包,我们还加入了首个UX构建块,能让你手动添加自己开发的资源包。

10.png


Unity Hub
2018年9月,我们发布了Unity Hub v1.0,Unity Hub是一个连接Unity的桌面端应用程序,旨在通过提供管理Unity项目、许可证和附加组件的中心化位置,来简化所有用户的使用和制作流程。

Unity Hub v1.2加入了通过Unity下载存档URL来直接下载和安装旧版Unity编辑器的功能。依赖特定(旧版)编辑器版本的用户可以通过Unity Hub一键获取旧版编辑器。

11.png


随着越来越多的功能和更新以资源包的形式发布,全新的资源包项目升级工具将通过Unity Hub帮助开发者简化更新流程。该工具能确保将项目从较早Unity版本升级到新版本时,项目资源包,脚本和项目库能够互相兼容。

该工具还会提供资源包更新日志文件,用于帮助开发者进行调试,因此我们可以跟踪每个受影响项目的转换状态。

小结
我们将在下一篇中介绍Unity 2018.3引擎核心功能的更新,包括:物理系统、垃圾回收控制、运行时、代码量、C# 7.3:Roslyn编译器,用于重压缩下载资源包的运行时API,寻路系统等,尽请期待.

更多Unity最新功能介绍,尽在Unity官方中文论坛(UnityChina.cn)!

0

主题

5

帖子

85

贡献

初级UU族—2级

Rank: 2

积分
85
发表于 2018-12-24 01:37:27 | 显示全部楼层
更新后编辑器扩展的快捷键用不了
  /// <summary>
    /// 使选中的物体隐藏或显示
    /// </summary>
    [MenuItem("CustomTools/SetObjectActive %Q")] //使选中的物体隐藏或显示
    public static void SetActive()
    {
        Transform[] trans = Selection.GetTransforms(SelectionMode.DeepAssets);
        Undo.RecordObjects(Selection.objects, "setactiveOBjs");
        int activeCount = trans.Length; //获取选中的物体数量
        for (int i = trans.Length - 1; i >= 0; i--)
        {
            if (trans[i].gameObject.activeInHierarchy)
                activeCount--;
        }
        bool activeState = activeCount != 0;
        for (int i = trans.Length - 1; i >= 0; i--)
        {
            trans[i].gameObject.SetActive(activeState);
        }
    }
快速回复 返回顶部 返回列表