标签:Unity 手柄 webxr unity Vr WebXR
目录
前言
因公司需要学习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
没啥总结的,欢迎同行指出错误的地方
标签:Unity,手柄,webxr,unity,Vr,WebXR 来源: https://blog.csdn.net/weixin_42129718/article/details/113876958
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。