| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> VR开发基础(三)unity XR最简开发环境搭建-整合Interaction toolkit、openXR plugin、PICO与OCULUS -> 正文阅读 |
|
[游戏开发]VR开发基础(三)unity XR最简开发环境搭建-整合Interaction toolkit、openXR plugin、PICO与OCULUS |
一,是时候使用openxr了1,开发阶段,VR设备厂商SDK各异: pico和Oculus是国内外的vr设备代表,各自提供了不同的厂商SDK(unity 插件)进行快速上手,但也可能因此调用了厂商私有接口导致不兼容; 2,编译运行,设备商SDK编译应用兼容问题: 即使应用开发中没有直接使用私有接口,但基于厂商SDK编译出的apk也并未完全兼容,底层不同的XR loader、运行时带来的典型的问题包括:VRorigin绑定错乱、追踪失效、运行崩溃等; 3,各厂商在积极拥抱openxr Oculus已经全面支持openxr,直接使用unity openxr plugin已经提供了Oculus支持,其他OVR特性抽取到integration SDK中供平台开发时选用;PICO也在近期对SDK进行了调整,可以看出最近的SDK也按此划分了基础和平台部分,只是目前基础部分宣称支持openxr(native runtime),还没有直接支持到unity官方plugin。 二,XRIT、InputSystem、openXR 在unity开发架构的位置关系1,Unity XR 插件框架开发环境的认识依然要从前文介绍过的Unity 的 XR框架开始,以插件框架的机制铺开,该框架使 厂商的XR 提供程序可与 Unity 引擎集成并实现其具体子系统功能。 这种基于插件框架打造“XR SDK壳”的方法,提高了 Unity 的能力:一方面对应用开发者来说,向上解耦了应用开发和底层特定运行时的关系;另一方面支持平台合作伙伴分发 SDK 更新,以支持新的 XR 设备和运行时,而无需修改核心引擎。 2,XR Interaction Toolkit:文档用于创建 VR 和 AR 体验的、基于组件的交互系统。提供统一的interaction manager机制,通过为对象分别导入配置Interactor?(射线等)、Interactable(cube等)?交互组件,进行抓取等交互; 重点是:XRIT支持openxr,并提供了多个基于openxr的交互组件; 3,Input System:文档unity推出的新输入系统, 原有UnityEngine.Input的替代方案。通过配置式的action map进行多对多的输入和回调的映射,使得输入响应与具体设备抽象出来,扩展性更强,同时入手难度也变大。 重点是:XRIT中inputsystem默认自带一个早期input system包,XRIT提供各种action based交互组件以支撑自定义配置事件源,使得新系统的入手难度降低; 4,openXR plugin:文档OpenXR 是由 Khronos 开发的开放标准,允许开发人员面向抽象的 AR/VR 设备进行开放。unity中使用此插件可在 XR 插件管理中启用 OpenXR。 该插件也将XR SDK离散的框架进一步收拢,规范了设备需要为unity SDK的 XR提供者和特性 进行的实现和适配。 Unity XR 框架整合 OpenXR的示意图回顾: ? 注:openXR plugin要求必须采用新的input system; 小结: XRIT是unity 开发的已有XR开发核心模块,支持action based的input system;openXR是未来的统一方向,其plugin要求事件输入使用input system; input system提供了Cross-platform XR 设备输入,满足一次开发的需求; 5,一次编写:unity上基于unity XR接口开发,基于openxr编译统一loader和运行时的调用,是比较理想的应用解决方案,即一次编写一次编译; unity的openXR插件开发支持进展不同,当前从验证效果来看:Oculus quest2已基本适配对接OpenXR plugin编译,而PICO则未支持,从官方roadmap和论坛答复看需要2020年8月份后,但与官方plugin直接对接似乎要延迟(PICO UnityXR SDK对接OpenXR标准); 因此目前兼容Pico和Oculus还需要一次编写、分开编译。 具体为在build的project的plugin配置中,为pico选用pico plugin;为Oculus选用openxr或Oculus plugin; 三,环境整合,Quick Start1,设置开发环境,新建unity项目:硬件:PICO和Oculus基于安卓系统,有关必要的开发设置和驱动等安装类同手机不作赘述,其中PICO可以通过打开原生Android的设置进行网络和休眠时间等的设置; 软件:unity最低 版本使用2020,目前推荐使用unity hub进行集成安装和project创建启动管理,证书可使用个人版(有效期只有几天,但会自动延期); 新建项目:使用hub新建项目,选择3D模板;不建议采用VR模板,其中主要多一个rig绑定对象,但无法直接试用到设备,后续通过导入XR包创建。 熟悉unity项目面板:官方面板介绍手册 2,启用设备,Build Setting开发配置:
使用 USB-C 数据线将设备连接到计算机,然后戴上设备。 当提示开发者选项或允许访问数据时,单击允许。 Oculus请下载 OEM USB 驱动程序。
要验证连接,请打开 Unity 项目,然后在菜单上,转到File?>?Build Settings。 在Platform列表中,选择Android,然后单击Switch Platform。 在“运行设备”列表中,请点击刷新,查看和选择已连接成功的设备。 ? 3,package manager配置,导入必须开发包:PICO开发包,从官方网站下载和导入; Oculus集成包和插件,从Unity Asset Store下载,(可选,建议采用openXR插件) XRIT,从package manager面板搜索导入; openXR plugin,从package manager面板搜索导入; input system,建议从package manager更新到最新版本; 如有需要从unity assert store搜索添加资源的,如图package manager左上角切换到“My Asserts”可以找到和导入; ? 4,project配置设置:配置和自定义 project构建设置一体机大致相同,通过菜单上,转到Edit?>?Project Settings,配置player几个重要项: Color Space 用linear, 版本、最小Android API LEVEL、脚本后端、目标架构 ?? input 处理选用new input system,会重启unity ? 5,构建您的第一个应用程序:进入project settings,plugin manager中选择Android tab配置插件:
导入interaction toolkit的start assert,包含了基本的action map、controller预制; ? 在inspect中设置为默认,以便导入origin的时候将其直接应用上 ? 在3D项目中接着创建XR origin action based,一个基于新input system的action配置式输入的第一人称对象, ? 为XRIT配置默认的“输入处理器”和“action map”:
?
? 回到Build Settings面板,编译apk到设备上运行,如可看到第一人称附带controller射线的场景,SUCCESS! 6,为场景添加简单的XR交互添加2Dcanvas和3D物体cube,或导入openXR plugin的controller sample(带一个canvas和cube) 通过add component,添加射线交互 为3D物体添加grab interactable 为2D的canvas添加受追踪设备的图形射线检测,接收raycaster交互 回到Build Settings面板,编译apk到设备上运行,如果第一人称可使用controller射线并可点击canvas的button,可抓取cube,SUCCESS! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/17 6:15:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |