查看原文
其他

新预制件工作流程介绍

Unity Unity官方平台 2018-11-16

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

 

了解和下载使用新预制件系统的Unity预览,请访问:

https://unity3d.com/prefabs


下面视频为新版预制件工作流程的实际使用效果。


https://v.qq.com/txp/iframe/player.html?vid=q0708i3vd0p&width=500&height=375&auto=0

为何改变

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

 

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

 

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


预制件模式

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

 

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


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

 

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

 


你可以通过以下方式进入预制件模式:

  • 双击项目窗口中的预制件。

  • 点击层级窗口中的新箭头按钮,它在预制件实例的根游戏对象旁边。

  • 点击检视窗口中的Open按钮,打开预制件资源或实例的根游戏对象。


使用预制件资源

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


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


使用预制件实例

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

 

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


预制件阶段

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


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

 

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

 

小结

新预制件工作流程就为大家介绍到这里,后续我们将介绍改进后预制件工作流程其它部分的信息,尽情关注! 了解更多最新的Unity版本功能信息,请访问Unity官方中文技术论坛(Unitychina.cn)!



推荐阅读


官方活动

2018年Unity技术路演-上海站报名开启

7月13日,Unity官方技术团队将在上海交通大学给广大开发者带来Unity 2018最权威的新功能讲解。活动免费,名额有限,赶紧报名吧! [了解详情

活动报名:

https://connect.unity.com/events/jishuluyanshanghaizhan


ChinaJoy 2018 | Made with Unity作品展示招募开启

在历年ChinaJoy Unity展位上,多元化的Made with Unity游戏及应用体验总是吸引人潮的亮点。今年我们将招募精品的Made with Unity作品展示。为优秀的开发团队提供最佳的作品展示机会。[招募详情

申请时间:截至到7月10日

申请表单:http://unity2018.mikecrm.com/yaX19dK


7月Asset Store资源商店促销 

7月,只需在Asset Store资源商店消费满30-199美元,最高可获得价值235美元的5款免费资源,参与活动,获得夏日精选资源包。

活动地址:

https://assetstore.unity.com/g/july-promo-activation-cn



点击“阅读原文”访问Unity官方中文论坛

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存