EditorXR Runtime

2016年,Unity Lab的创作工具小组发布了EditorXR的第一个版本,这是我们在XR头戴式显示器(HMD)的Unity场景视图中工作的扩展。 EditorXR使您可以在空间上创建内容,将Unity Editor的创作工具的全部功能实现。自推出以来,实验性EditorXR功能已与Unity平台和XR社区一起发展。这里来分享我们的最新进展,并深入研究今年早些时候发布的令人兴奋的功能:EditorXR Runtime。

最新更新(0.3版本)

我们最近在GitHub上发布了0.3版。此版本包含更新以支持Unity的最新版本,但更重要的是,它消除了我们对Oculus和SteamVR SDK的依赖。此更改使设置过程更加容易。

Spatial UI是另一个主要功能,它是不断改进菜单工作并在EditorXR中实现快速模式切换的一项持续工作。此功能侧重于易用性以及与AR HMD(如Magic Leap和HoloLens)兼容,后两者不带有控制器。开箱即用的EditorXR仍仅适用于Oculus和SteamVR,但我们计划在将来正式支持更多设备。我们使用EditorXR的基础系统来驱动MARS配套应用程序中的菜单和交互,从而为智能手机和AR HMD提供现实捕获和创作功能。其他较小但仍值得注意的增强功能包括改进的双手直接操作和默认Annotation和CreatePrimitive工具的菜单更新。

有关EditorXR功能页面,可关注UNITY网站。

为什么我们建立EditorXR Runtime

在四年的XR开发中,我们获得的最大的学习之一是在XR中编辑您的应用程序的工具和交互模式与用户在XR中可以相结合的程度。因此,我们决定将为EditorXR创建的所有工具都提供给开发人员社区,以供他们的应用程序使用。

它是什么?

EditorXR运行时允许您在使用Unity制作的XR应用程序中包含任何功能。从EditorXR开发的早期开始,我们就做出了一个明智的决定,即对核心引擎进行尽可能少的更改,并使用任何用户都可以使用的系统和API编写代码。这意味着您可以在自己的项目中使用我们为EditorXR设计的几乎所有功能。

Unity的许多编辑器功能在播放器版本中不可用。因此,EditorXR运行时包含编辑模式下可用功能的子集。例如,检查器使用的SerializedObject和SerializedProperty类在运行时并不存在。短期而言,我们根本不会在构建中包括检查器,层次结构(和锁定对象)、项目、探查器和控制台工作区。检查器、层次结构(和锁定的对象)和项目工作区在播放模式下也不可用。我们计划用运行时等效项替换这些Editor系统,其中一些将与MARS配套应用程序一起发布。

如何在运行时使用EditorXR?

在编辑模式下,VRView窗口是EditorXR的入口。当您打开视图时,我们将引导系统,并在关闭视图时将其关闭。在播放模式和播放器版本中,我们使用OnEnable和OnDisable。 EditingContextManager组件将启动和关闭EditorXR,并且必须包含在使用EditorXR Runtime的任何场景中。也可以用您自己的管理器替换EditingContextManager,以从用户脚本控制EditorXR的生命周期。在默认配置中,EditorXR会在启用EditingContextManager后立即启动,并在禁用组件时关闭。

为什么要使用它?

在播放器或播放模式下运行EditorXR的优势之一非常简单-更好的性能!在“编辑模式”下,EditorXR使用“编辑器GUI”按顺序绘制场景,这在使用复杂布局时会导致不可避免的CPU开销和性能受限。提醒一下,如果关闭所有“编辑器”窗口(包括默认布局中的窗口),则在“编辑模式”中将获得最佳性能,但在“播放模式”中则不需要。

在您运行游戏代码时,您还可以在上下文中利用场景操作工具。例如,在播放过程中可能需要几分钟,您想将一棵树向左移动一点。在EditorXR中,可以使用转换工具将其微移并查看感觉。当然,退出“播放模式”后,您仍然必须将“播放模式”的更改传送回场景中,但这可以通过用修改后的对象制作预制件或使用“播放模式保护程序”之类的编辑器扩展轻松完成。我们正在努力使层次结构和检查器在运行时可用,发布此功能后,您将能够在HMD中的内部版本中检查和调试场景对象。在某些情况下,例如,如果您尝试在Oculus Quest上使用EditorXR工具,则只能使用播放器构建。这些功能尚未发挥出全部潜能,但是当前版本为构建不支持Unity Editor的平台的创作工具奠定了坚实的基础。

随着我们不断开发和改进EditorXR,我们计划扩展默认UI,使其可在AR智能手机,HMD上,甚至在使用触摸或鼠标和键盘交互的传统平板电脑或屏幕上使用。我们构想在任何设备上,任何上下文中都有一个统一的Unity创作框架。用户可以随意使用我们的代码进行任何操作。 Unity还正在构建基于播放器的创作工具,例如MARS配套应用程序,以支持利用无法运行Unity Editor的设备(XR或其他功能)的专业工作流程。

EditorXR Runtime的另一个案例可能是在游戏中附带一个关卡编辑器,或者以EditorXR为基础构建创建和协作软件。您可以利用“注释工具”或“多边形工作区”等现有功能,并构建自己的自定义工作流或满足特定工作流的数据管道。您甚至可以创建和销售VR生产力工具!

下一步是什么?

关于如何将EditorXR Runtime合并到现有项目中,仍然存在一些悬而未决的问题。例如,如果要使用自己的控制器模型怎么办?如果现有交互需要使用触发器或与此相关的任何其他按钮映射,如何打开EditorXR菜单或使用工具?如何将更改保存到播放器版本之外?您是否应该扩展EditorXR的菜单来提升体验,还是创建自己的菜单来提升EditorXR?至此,所有这些问题都由您决定;您可以简单地编辑EditorXR并根据自己的需要进行修改。

XR互动工具包

随着Unity XR交互工具包的发布,Unity开发人员实际上拥有一套交互代码,他们可以使用它们来创建XR体验。因此,我们现在可以开始就用户项目如何处理其场景设置的某些方面做出一些假设,甚至更好的是,我们可以在EditorXR中删除一些代码,这具有类似的目的。从控制XR摄影机装备和MultipleRayInputModule的代码开始,我们将用XR Interaction Toolkit中的等效代码替换EditorXR中的通用代码。这样,我们可以在现有场景中以已配置的方式利用这些组件。如果已使用XR Interaction Toolkit设置了EditorXR,则将使用自定义的控制器模型和交互设置。也可以在非VR项目上使用EditorXR,在这种情况下,当EditorXR启动和关闭时会创建默认设置。

智能手机和AR HMD

作为MARS配套应用程序的一部分,我们已经更新了EditorXR的系统,使其可以在智能手机上运行,可在触摸屏输入用于操纵器和菜单。现有的VR菜单和工具如今无法直接转换为AR。我们的目标是为智能手机和AR HMD引入等效的通用主菜单和工作区。朝这个方向迈出的第一步是简单地使底层系统能够在这些平台上运行,以便可以通过用户的代码对其进行设置。

序列化

保存和加载场景,撤消/重做以及层次结构和检查器是Unity创作的关键功能。它们在运行时构建中丢失的事实意味着您仅限于场景操作,该操作仅会在构建运行期间持续。就是说,将Poly Workspace中的对象(即使只是暂时地)带入您的游戏非常有趣!为了弥合这些差距,我们正在开发一个运行时序列化程序包,该程序包可以在播放器版本中导入/导出Unity场景。该功能准备好后,计划将能够使用EditorXR构建基本的场景编辑器。 Inspector和撤消/重做功能也依赖于序列化,我们将能够提供这些功能的运行时版本。

资产

最后,通过AssetBundles以可预测的方式将新资产发布到EditorXR播放器的功能使您能够在Project Workspace的传真中工作,并最终演变为Poly Workspace等基于云的资产管道。我们计划在未来的几个月和几年中使用这些功能,很高兴看到您可以在EditorXR的基础上构建什么。一如既往,我们欢迎您的反馈和意见。您认为下一步该怎么做?

创作游戏玩法

EditorXR Runtime带来了我们非常激动的创新可能性:将XR内创作功能作为您的应用程序的功能,并让您的播放器在中间设计自己的内容的潜力。这可能以您的应用程序的关卡编辑器的形式出现,具有用户生成内容的所有优点,而过去类似功能的游戏已从中受益。在VR或AR应用程序中,您还将获得XR创作所固有的所有优势:直接,自然,双手操纵3D对象,按实际规模构建环境以及转移肌肉记忆力和具体体验(例如例如绘画,雕刻等)进入数字领域,而无需学习复杂的新控件。

更进一步,如果您希望构建一个完全与创作有关的应用程序-下一个Tilt Brush或Gravity Sketch,则EditorXR Runtime可以为您提供庞大的快捷方式和坚实的架构基础。从我们在这里提供的基础开始;您可以对其进行修改,扩展和样式化,以实现对下一个出色的XR设计应用程序的了解。

使用XR技术来支持更多不同类型的创作者的想法是我们团队非常热衷的事情。我们认为EditorXR及其功能计划深刻体现了Unity的愿景,即让世界成为拥有更多创作者的美好场所。

为了获得更多的信息以及更新,请查阅:

https://unity.com/editorxr?_ga=2.133335950.1649892126.1577324024-1497138561.1577152077

 

记者:Matt Schoen/Unity

PHP Code Snippets Powered By : XYZScripts.com