我们收到用户反馈中最重要的一项补充功能就是:预制件嵌套功能(Nest Prefab),很多用户希望我们对预制件工作流程进行的改进。因此我们着手针对重用性、可控性和安全性改进了整个预制件系统。我们将发布一系列的文章来介绍即将发生的改变,本篇文章将是该系列文章的首篇。

了解和下载使用新预制件系统的Unity预览,请访问:https://unity3d.com/prefabs

下面视频为新版预制件工作流的实际使用效果,请点击访问腾讯视频阅读观看:
https://v.qq.com/x/page/q0708i3vd0p.html

为何改变
我们首先来回顾一下Unity中预制件的基础知识。从根本上说,预制件资源(Prefab Asset)就像是游戏对象和其子对象的模板。你可以使用预制件资源的示例来在场景中创建游戏对象的多个副本。如果预制件资源被更改,所有预制件实例会被自动根据更改内容更新。

我们与各种独立和AAA工作室进行了交流,深入了解目前开发者是如何使用预制件。我们发现的一个外套是,当开发者需要编辑一个预制件资源时,必须将其拖入一个层级窗口中打开的场景才能进行修改、应用更改,然后再将其删除。另一个大问题则出现在,检视窗口中预制件实例上的Apply按钮。由于有这个按钮的存在,你可能会不小心将改动应用到预制件资源上,但你却无法很好获取这个资源的总览。

为了解决这些问题,我们推出了一系列新功能。我们实现了向后兼容的预制件后端,它支持嵌套和继承功能。我们改进了预制件实例的属性和对象重写的可视化,并添加了在多个粒度级别上应用重写的功能:每个属性级、每个组件/游戏对象级、或是像以前一样的整个预制件实例级。最后我们添加了预制件模式,以便独立编辑预制件资源。

预制件模式
当处理预制件时,预制件模式会展示根本变化。它可以让你决定是要将改动应用到预制件实例上,还是直接更改预制件资源。

预制件模式将为你提供一个更为可控的预制件资源编辑会话,因此你可以将所有改动执行到预制件资源上,包括结构性改动,而且不会遇到会话窗询问是否要破坏与预制件之间的联系。

使用预制件模式,你不再需要临时对预制件实例做出更改,其唯一目的是稍后将这些改动应用到资源上,潜在副作用是会应用之前不应作为重写保留下来的重写内容。所以我们推荐你使用预制件模式来修改预制件,并且只在需要时在预制件实例上进行重写。请注意,我们也对Apply工作流作出了很大改进。关于这个工作流的内容将在接下来的文章中介绍。

预制件模式会接管层级窗口和场景视图,用于独立展示预制件资源。你可以通过在层级窗口和场景视图上新增的标头识别这个模式。需要注意的是:预制件模式的背景颜色可以在设置中自定义。如下图所示,当从场景进入预制件模式时,例如:通过点击红圈中标记的箭头进入,层级窗口会展示预制件标头,场景视图会展示“面包屑头”(breadcrumbs header溯源标记,由红色方块标记)。

115602eer88h86e5h56lrw.png

你可以通过以下方式进入预制件模式:
双击项目窗口中的预制件。 点击层级窗口中的新箭头按钮,它在预制件实例的根游戏对象旁边。 点击检视窗口中的Open按钮,打开预制件资源或实例的根游戏对象。


使用预制件资源
如果要启用预制件嵌套功能,我们必须对预制件后端进行技术改动。因此从技术上说,预制件现在是导入资源。这意味着你不能再在“项目窗口”中编辑预制件游戏对象。

对比之前直接在项目窗口编辑预制件游戏对象的旧工作流,预制件模式能让你以任意深度编辑对象,并且可以在“场景视图“中让你看到处理后的内容的效果。

使用预制件实例
另一个提供预制件嵌套功能的结果是,你不能再断开与预制件实例的联系来给实例做结构性改动。包括:删除游戏对象、重设游戏对象、或用RectTransform替换Transform,反之亦然。

你现在可以在预制件模式中完成这些操作。另外,如果你想要完全移除预制件实例与其预制件资源的联系,你现在可以解包预制件实例,这样一来就能重构得到的空白预制件。

预制件阶段
我们在编辑器中引入了术语“阶段”(stage),作为独立于游戏对象的一组游戏对象的概念。

当你处于预制件模式时,场景视图顶部的每个“面包屑”都会展示不同的阶段。每个阶段就像一个分隔的“世界”(world)。默认情况下,我们有主要阶段(Main Stage),这是你所有场景所处的阶段,也就是你载入后在层级窗口看到的场景。当在预制件模式中打开预制件时,我们会为预制件内容创建一个预制件阶段。当预制件阶段打开时,我们不会卸载主要阶段预制件,这意味着你仍可在游戏视图中看到它们。

场景视图和层级窗口会展示当前阶段,也就是“面包屑”最右边的那个阶段。如果想要回到场景的主要阶段,你可以点击场景视图上“面包屑”中的Scenes按钮,也可以点击层级窗口上的返回箭头。

小结
新预制件工作流程就为大家介绍到这里,后续我们将介绍改进后预制件工作流程部分的信息,尽情关注! 了解更多最新的Unity版本功能信息,请访问Unity官方中文技术论坛(Unitychina.cn)!
预制件, 新功能, Unity 本主题由 admin 于 2018-7-5 03:58 设置高亮锐亚教育

锐亚教育 锐亚科技 unity unity教程