查看原文
其他

Unity新功能|EditorXR运行时

Unity Unity官方平台 2022-05-07

2016年,Unity Labs团队发布了EditorXR的第一个版本,实现了通过XR头戴式显示器查看Unity场景视图的拓展程序。


EditorXR可以让用户在虚拟空间中创造内容,将Unity编辑器创作工具的所有功能带到虚拟空间中。本文,我们将分享最新的成果,深度解析最新功能:EditorXR运行时


EditorXR 0.3版本

近期,我们在GitHub上发布了EditorXR 0.3版本,该版本包含对最新Unity版本的支持,更重要的是:EditorXR 0.3版本中移除了针对Oculus和SteamVR的SDK的依赖,让整个安装过程更加简单

 

另一个重要功能是Spatial UI(空间化UI),该功能将改善EditorXR的菜单使用体验,实现快速切换模式。对于Magic Leap和HoloLens这类不包括双手跟踪控制器的AR头戴式显示器,Spatial UI可以提高易用性和兼容性。


EditorXR可以直接使用,目前只适用于Oculus和SteamVR,我们计划在未来添加更多的设备支持。


我们使用EditorXR的底层系统来驱动MARS配套应用的菜单和交互功能,从而为智能手机和AR头戴式显示器提供了现实捕捉和创作功能。其它重要改动包括:改善双手直接操作,更新默认Annotation工具和CreatePrimitive工具的菜单

 

了解和下载EditorXR 0.3版本:

https://github.com/Unity-Technologies/EditorXR/releases

 

了解更多EditorXR信息:

https://unity.com/editorxr


为什么要构建EditorXR运行时

在过去4年的XR开发过程中,我们获得最重要经验是:在XR中,编辑应用的工具及交互模式与用户在XR中的体验息息相关。


这也是为什么我们决定将所有为EditorXR开发的工具分享给开发者社区,让用户在自己的应用中使用这些工具。


EditorXR简介

EditorXR运行时允许用户在使用Unity制作的XR应用中加入Unity的任何功能


在EditorXR的早期开发阶段中,我们决定尽可能不改动核心引擎,并使用任何用户都可以使用的系统和API来编写代码。这样用户便可以在自己的项目中,使用我们为EditorXR设计的几乎所有功能。

 

Unity编辑器的一些功能无法在运行版本中使用。为此,EditorXR运行时加入了Unity编辑模式的部分功能。

 

例如:我们在EditorXR运行时加入了SeializedObject类和SerializedProperty类,这两个类通常只在检视窗口使用,不存在于运行时中。


从短期来看,我们不会在运行版本加入检视窗口、层级窗口和锁定对象、项目窗口、性能分析器和控制台这类窗口。运行模式也不包含:检视窗口、层级窗口和锁定对象、项目窗口。


我们计划使用运行时的相应系统取代这些编辑器系统,部分系统将随着MARS配套应用一起发布。


如何在运行时使用EditorXR

在编辑模式中,VRView窗口是EditorXR的入口。当打开VRView视图时,EditorXR系统会同时启动,关闭视图时,该系统也会随之关闭。在运行模式和运行版本中,我们使用了OnEnable方法和OnDisable方法


EditingContextManager组件也可以启动和关闭EditorXR,在所有使用EditorXR运行时的场景中,该组件是必备组件。用户也可以使用自己的管理器替代EditingContextManager组件,通过用户脚本控制EditorXR的生命周期。


默认设置下,在EditingContextManager组件启用时,EditorXR会立即启动,而在该组件被禁用时,EditorXR也会关闭。


为什么要使用EditorXR

在运行版本或运行模式中使用EditorXR的优点之一是:实现更好的性能


在编辑模式中,EditorXR会根据编辑器GUI按顺序绘制场景,但在使用较复杂的布局时,可能会产生不可避免的CPU开销,并降低性能。这种情况下,如果关闭所有编辑器窗口,包括默认布局中的窗口,我们便可在编辑模式中得到最佳性能,而如果是在运行模式中的话,则不需要。

 

在游戏代码运行的时候,我们也可以使用场景控制工具。例如:运行过程中,我们可能想向左移动一棵树。如果使用EditorXR,我们便能使用Transform变换工具来直接调整,然后查看效果。


当然,在退出运行模式后,我们仍需要将运行模式的改动应用到场景中,这时候我们可以把已修改对象转换为预制件,或使用Play Mode Saver这类编辑器拓展,轻松应用改动。

 

我们正在开发在运行时使用层级窗口和检视窗口的功能,可以让我们在头戴式显示器中查看和调试运行版本的场景对象。在某些情况下,例如:在Oculus Quest上使用EditorXR工具时,我们只能使用运行版本。虽然这些功能目前暂未能够发挥全部作用,但当前版本为不支持Unity编辑器的平台构建创作工具已奠定坚实的基础。

 

随着我们不断开发和改进EditorXR,我们计划将默认UI拓展到支持AR的智能手机、头戴式显示器HMD、常见平板电脑、以及使用触摸板或键盘鼠标控制的设备。我们的目标是:让同一个Unity创作框架适用于任何设备和任何情景


用户可以随意使用我们的代码实现自己的目的。Unity也在构建基于运行版本的创作工具,例如:MARS配套应用,从而利用XR等无法运行Unity编辑器的设备,实现特别的工作流程。


EditorXR运行时的用处还有很多,例如:在游戏中提供关卡编辑器,或者使用EditorXR作为基础,开发创作及协作的软件。


我们还可以利用Annotation Tool和Poly Workspace等现有功能,构建自定义工作流程或针对特定流程的数据管线,我们甚至可以使用EditorXR运行时来开发和出售VR创作工具。


未来计划

EditorXR运行时和现有项目的结合过程依旧存在许多问题。


  • 如果想要使用自定义控制器模型,应该怎么办?

  • 如果现有交互功能需要使用触发器或其它按键映射,如何打开EditorXR菜单并使用创作工具?

  • 如何保存运行版本中做出的改动?是应该拓展EditorXR的菜单来实现体验,还是应该创建自定义菜单来控制EditorXR?

 

目前,这些问题的答案取决于你:用户可以获取EditorXR代码,根据自己的需求进行修改。


如果你已经在拓展EditorXR,或者希望在自己的项目中加入EditorXR,请发邮件到editorvr@unity3d.com联系我们,告诉我们你的进展。我们欢迎开发者对EditorXR 的GitHub代码库发起Pull请求。


XR Interaction Toolkit

随着XR Interaction Toolkit的发布,Unity开发者现在可以使用一整套交互功能的代码,来创作自己的XR体验。


我们可以开始假设用户项目处理特定场景设置的方式,可以删去EditorXR中实现类似功能的代码。我们会从控制XR Camera Rig绑定和MultipleRayInputModule的代码开始,逐步将EditorXR中的通用功能代码替换成XR Interaction Toolkit中的相应功能代码。这样,我们可以在现有场景设置下使用这些组件。


如果使用XR Interaction Toolkit设置了自定义控制器模型和交互设置,那么EditorXR也会使用这些设置。我们也可以在非VR项目中使用EdiotrXR,在EditorXR启动和关闭时,编辑器会创建默认设置。


智能手机和AR头戴式显示器

作为MARS配套应用开发的一部分,我们更新了EditorXR的系统,使它适用于智能手机,可以使用触屏输入来进行操作和使用菜单。


现有的VR菜单和工具无法直接转换到AR中使用,我们的目标是:提供适用于智能手机和AR头戴式显示器的通用主菜单和工作区。我们的第一步是在这些平台上启用底层系统,使这些系统能够通过用户的代码进行设置。


序列化功能

对于Unity创作过程来说,场景的保存和加载、撤销/重做、层级窗口和检视窗口等都是非常重要的功能。然而目前的运行时版本没有这些功能,这意味着运行时场景做出的改动只存在于该版本运行的时候。因此,如果可以把对象从Poly Workspace中临时加入游戏中,这会增添很多乐趣。

  

为了连接起编辑器和运行时,我们正在开发运行时序列化工具包,实现在运行版本中导入或导出Unity场景。我们计划在该功能完成的时候,可以使用EditorXR构建基础的场景编辑器。检视窗口和撤销/重做功能也依赖于序列化功能,我们将在未来提供这些功能的运行时版本。


资源

我们希望可以使用AssetBundle直接将新资源发布到EditorXR运行版本中,实现类似Project Workspace项目工作空间中的工作方式,最终演变为Poly Workspace这类基于云服务的资源管线。


我们计划在未来加入这些功能,我们也非常期待看到用户使用EditorXR创作的内容,欢迎大家提供反馈,告诉我们下一步应该实现什么功能。


如开发游戏一样进行创作

EditorXR运行时开启了创意的可能性:我们能够以应用功能的形式,加入XR环境内的创作功能,让玩家在XR环境中设计自己的内容。这种功能可能会以关卡编辑器的形式出现在应用中,可以像过去带有类似功能的游戏一样,从用户创作的内容中受益。

 

在VR或AR应用中,我们也能够获得在XR中创作的好处:直接使用双手控制器操作3D对象,以实际大小构建环境,无需学习复杂的操控方式,便可以将肌肉记忆和实际体验转换到数字环境中,例如:绘画和雕刻等过程。

 

更进一步说,如果想要开发一款以创作为核心的应用程序,类似Tilt Brush和Gravity Sketch等应用,EditorXR运行时可以极大地简化制作过程,提供坚实的架构基础。通过我们提供的功能基础,你可以根据自己对优秀XR设计应用的构想,修改、拓展或自定义应用程序。

 

我们团队非常热衷于使用XR技术让更多不同类型的创作者能够参与创作。EditorXR和我们的计划非常符合Unity对于“世界会因创作者越多而更美好”的愿景。

 

结语

EditorXR运行时为大家介绍到这里,对VR感兴趣的开发者请尝试使用,并且向我们反馈你希望的后续新功能。

 

下载Unity Connect APP,请点击此处观看更多Unity官方精彩视频,请关注“Unity官方”B站账户。


扫码在“技术交流“群聊组中提问,Unity社区和官方团队帮你解答。




推荐阅读

XR Interaction Toolkit预览版资源包发布

中国大学生VR/AR开发大赛获奖作品100%使用Unity打造

Unity助力可口可乐圣诞节品牌营销

Unite Shanghai 2020暖冬特惠票,限时热销

新2D示例项目《Lost Crypt》提供下载

Unity制作人专场 | Unity的超大开放世界解决方案


Unite Shanghai 2020

Unite Shanghai 2020正式启动,暖冬特惠票热销中,购票即可获得多款Asset Store特定精品资源5折优惠码。[了解详情......



喜欢本文,请点击“在看”

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

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