Unity WebXR

目录

前言

一、WebXR是什么?

二、使用步骤

1.引WebXR工具

2.webxr的使用

4.出包

总结


前言

因公司需要学习Unity 网页Vr项目,最终选择使用WebXr工具,算第三方的支持Unity Webgl的Vr工具.可以实现使用unity打包,最终在网页上支持Vr模式和普通的网页模式.


提示:以下是本篇文章正文内容,下面案例可供参考

一、WebXR是什么?

是Web上用于VR和AR的新的跨浏览器API。Unity是构建跨平台体验的绝佳工具,可以在网页浏览器是实现Vr游戏,因为支持Unity,不需要去换开发工具,开发网页vr,对于原unity工作者是一个号工具.具体的说明文档看一下,也没啥用.

https://blog.mozvr.com/unity-webxr-exporter-update/

二、使用步骤

1.引WebXR工具

1.可以从Unity官方商店下载,最新版的工具已经在商店上线,

2.可以从github上下载,这上面的可能比商店里面的更新快一点.而且github上面有工具使用的步骤,和一些要注意的事项.推荐看一下.

github:https://github.com/MozillaReality/unity-webxr-export

2.webxr的使用

1.Webxr是网页Vr,所以在开发前要做一些准备工作:Unity,WebGl支持,同时引入Pc端的VR类支持. 

如果不知道的可以找到下图这样的图片点击小圈画起来的就行了.到这就可以在unity上使用vr设备跑WebXR官方例子了.

2.打开官方案例WebXR场景,因为官方场景使用的是Urp渲染方式,会有一些模型的渲染材质shader丢失,重新设置一个材质就行了.

可以在场景中的WebXRCameraSet上面找到WebXRManager里面的DefaultHeight参数设置头盔高度.

3.webxr相机

WebXRCameraSet 是webxr的相机和手柄的父物体,把他拖入到新建场景里面就可以在新场景启用Vr相机和手柄了.

4.手柄:

官方案例只给了一个简单的操作实例,就是手柄跟台上小方块的交互.用的是触发检测.打开WebXRManager下的handr手柄可以看到里面绑定有WebXrController和DesertControllerInteraction两个脚本,

其中WebXrController脚本:是区分左右手的,和绑定不同的手柄按钮触发方式,其中InputMap里面的是官方写好的,也可以自己写,里面绑定的映射,官方给的也有,如果官方给的案例手柄不能用,

你必须用Mozilla提供的内容替换文件

ProjectSettings/InputManager.asset

下载地址:https://raw.githubusercontent.com/MozillaReality/unity-webxr-export/master/ProjectSettings/InputManager.asset

请记住,你必须在Unity外部执行此操作,因为项目设置位于Assets文件夹外部。ProjectSettings文件夹内,可以使用文件资源管理器替换整个文件,或使用记事本++替换其内容。(这个文件可以在webxr的github里面找到)

 

DesertControllerInteraction:是案例给的手柄交互案例脚本:其中Update里面是手柄按钮点击,播放手柄动画的方法,所以我们可以官方的设置,替换到官方不咋好看的手柄模型.

 void Update()
    {
        float normalizedTime = controller.GetButton("Trigger") ? 1 : controller.GetAxis("Grip");

        if (controller.GetButtonDown("Trigger") || controller.GetButtonDown("Grip"))
            Pickup();

        if (controller.GetButtonUp("Trigger") || controller.GetButtonUp("Grip"))
            Drop();

        // Use the controller button or axis position to manipulate the playback time for hand model.
        //播放手柄动画
        anim.Play("Take", -1, normalizedTime);
    }

官方没有给webxr手柄通过射线跟UI交互的方式,我这边是没有找到可以兼容ui射线交互的插件,直接写了一个小的Button与射线的交互脚本,勉强能用.

4.出包

WebXR需要打出一个包,放到服务器然后使用链接在网页打开,打包是需要选择WebXR的模板,工具里面的模板会自动调用Web端的Api去判断是浏览器否支持Vr设备,在WebGLTemplates文件夹WebXR里面的index脚本,有兴趣可以看下.

打出来的包本地测试可以直接选择Build and run,在不同的浏览器下支持不同的vr设备,如果浏览器下没有打开vr模式的按钮,可以检查一下当前浏览器跟链接的Vr设备牌子是否匹配,可以在https://github.com/MozillaReality/unity-webxr-export里面查看浏览器对应的vr设备.

 

部署服务器的,需要跨域打开软件的网址链接需要https加密链接,才能调用vr设备,一定要Https加密链接.


总结

官方教程:https://github.com/MozillaReality/unity-webxr-export/blob/master/docs/project-setup.md

没啥总结的,欢迎同行指出错误的地方

 


原文地址:https://blog.csdn.net/weixin_42129718/article/details/113876958

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍了Unity游戏开发中外观模式是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章主要介绍Unity中地面检测方案的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.普通射线在角色坐标(一般是脚底)...
这篇文章主要介绍了Unity游戏开发中如何消除不想要的黄色警告,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带...
这篇文章主要介绍了Unity中有多少种渲染队列,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解
这篇文章主要介绍Unity中如何实现Texture,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!了解Texture2D 如上图,Texture2D是一张
小编给大家分享一下Unity中DOTS要实现的特点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让...
这篇文章给大家分享的是有关unity中如何实现UGUI遮罩流光特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。下面是核心shader:Sh...
这篇文章主要为大家展示了“Unity中如何实现3D坐标转换UGUI坐标”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下...
这篇文章主要介绍了Unity游戏开发中设计模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章主要介绍了Unity中如何实现仿真丝袜渲染,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了...
这篇文章给大家分享的是有关Unity插件OVRLipSync有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。项目需要接入对话口型动...
这篇文章主要介绍了Unity性能优化之DrawCall的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章给大家分享的是有关Unity给力插件之Final IK怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这插件有什么用:一般游...
这篇文章给大家分享的是有关Unity中如何内嵌网页插件UniWebView的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、常见Unity中内...
小编给大家分享一下Unity如何做流体物理的几个轮子,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让...
小编给大家分享一下Unity中Lod和Occlusion Culling的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收...
这篇文章将为大家详细讲解有关Unity中LineRenderer与TrailRenderer有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获...
这篇文章主要介绍了Unity中coroutine问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起...
这篇文章将为大家详细讲解有关unity中spine怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。骨骼动画首先我们来看到...
这篇文章主要为大家展示了“Unity Shader后处理中如何实现简单均值模糊”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学...