关于Unity 接入VR镜头的设置

时间:2024-04-08 17:24:40

自己在网上找了很久,如何在Unity工程里接入VR相关的教程,但是要么是版本不同,要么是没有自己想要的。作为一个入门者,只想弄明白如何让Unity里的场景能够在VR眼镜里正常显示。


折腾了大半天,终于弄明白是怎么弄的了,接下来把我的心路历程分享一下,也许能帮忙也说不定。

一、如何在Unity工程里加入VR

1.在网上或者Unity/Asset Store里下载VRTK,这是一个插件,或者叫做工具。有了这个插件,才可以开始进行VR开发相关的操作。

VRTK全名是Virtual Reality Toolkit,包含了Unity下开发VR的大部分通用功能。其中包含了接入VR相机,这篇文章主要讲述如何接入VR相机,其他的操作暂时不介绍,以后自己摸索好了会继续。


2.导入VRTK。复制或者导入VRTK到自己的项目

关于Unity 接入VR镜头的设置,VRTK包含的目录如图,基本上从Asset Store上下载的是一个比较稳定的版本,最新版的话可以去VRTK官网下载。

这个VRTK下载完毕之后,才仅仅是开始。

3.下载对应的SDK。

首先说明一下,这里边有一个自带的VR模拟器,可以方便在没有设备的环境下,直接调试工程,这个Prefab叫做VRSimulatorCameraRig,位于VRTK/Prefabs,

关于Unity 接入VR镜头的设置,可以把这个直接拖入到Hierarchy,运行Unity,这时候鼠标就担任了头部的工作,镜头会跟着鼠标一起转动。

关于Unity 接入VR镜头的设置

这里只是说明一下简单调试的办法,回归正题,我们是来下载SDK的。Oculus的SDK需要从Oculus官网去下载,

链接:https://developer.oculus.com/downloads/package/oculus-utilities-for-unity-5/

下载Oculus Utilities。下载的文件是一个名为ovr_unity_utilities_Main的压缩包,里边包含了OculusUtilities的文件夹,打开这个文件夹,最里边的后缀名为unitypackage的文件就是我们想要的东西了。

把这个注入到Unity项目,文件夹的结构如图

关于Unity 接入VR镜头的设置,还包含了一个plugins的文件夹,暂时用不到,不管,但是它来自于Oculus的注入。

这样Oculus的SDK也就下载完成。进入下一步。

二、对Unity的操作

1.现在开始对Unity的操作。首先创建一个场景...blabla,基础操作大家都明白的。

创建完毕之后,创建一个空物体,命名为[VRTK_SDKMng],命名大概能表示出这是SDKManager就行。

关于Unity 接入VR镜头的设置

然后添加脚本,脚本名为VRTK_SDK Manager

关于Unity 接入VR镜头的设置

随后在其下创建一个空物体,命名为OculusVR,并添加脚本<VRTK_SDK Setup>

关于Unity 接入VR镜头的设置


添加完毕后,检视面板可能是有个报错,也可能没有,如果有报错可能是QuickSelect选项的SDK并没有安装,这里没关系,我们把QuickSelect选择为Oculus就会停止报错了。

关于Unity 接入VR镜头的设置---->关于Unity 接入VR镜头的设置---->关于Unity 接入VR镜头的设置---->关于Unity 接入VR镜头的设置

这样设置完毕后,我们接着下一步。

2.导入Oculus的Camera

从Oculus/Prefabs中选择OVRCameraRig,拖入到Hierarchy的OculusVR下,作为其子物体。

关于Unity 接入VR镜头的设置

选择Hierarchy下的OVRCameraRig,在其检视面板中把Tracking Origin Type选为Floor Level

关于Unity 接入VR镜头的设置

随后Save一下场景,VRTK会自动选择其中需要作为对象的物体,如图

关于Unity 接入VR镜头的设置

最后一步,在最开始的[VRTK_SDK Manager]物体的检视面板,找到Auto Populated按键,点击下去,VRTK会把对应的SDK拖入其检视面板,或者自己手动拖入也可。

手动拖入的情况下,关于Unity 接入VR镜头的设置,点击这个“+”号,随后从Hierarchy里把挂载对应SDK的物体拖入其中。

==========补充==========

有朋友和我说依然出现了看不到Canvas的情况,那么需要在Canvas里进行这样一个设置。

先添加脚本OVR Raycaster,将这个脚本下的BlockingObjects设置为All

取消Graphic Raycaster,也可以Remove这个脚本

关于Unity 接入VR镜头的设置

把Canvas的RenderMode设置为ScreenSpace,往RenderCamera里拖入OVRCameraRig下的CenterEyeAnchor,这样就完成了最后一步。如果需要使用WorldSpace的模式,则往EventCamera里拖入OVRCameraRig下的CenterEyeAnchor即可。

-------

以上,完成了对Unity操作部分的全部内容。我们尝试一下在场景里放入一个Cube。

关于Unity 接入VR镜头的设置

目前未运行游戏的情况下,白色Cube在最右侧,我们运行游戏,旋转VR眼镜。

关于Unity 接入VR镜头的设置,看来我们是成功了。(可惜不会录动图)

三、其他

这里主要是写了如何对OculusSDK的操作,因为目前工作项目就是用到这个眼镜。光是接相机就让我头疼了好久。只好自己从网上找教程,自己摸索怎么弄。估计也有其他人可能和自己有一样的困扰,我就把网上看到的知识点整理起来,但愿能帮到有需要的人。

对于其他SDK的操作,应该大致相似,毕竟自己还没尝试过,不敢妄下结论。时间也很紧迫,加上没有其他品牌的设备,所以其他的SDK暂时没有体验。

其中对于Oculus部分的补充,软件部分需要下载Oculus的驱动,Oculus下载驱动后,文件本身很小,然而需要从网上下载达到4.7G左右的文件才能开始安装,等待时间令人发指。使用Oculus的小伙伴需要注意这点,提前下载好驱动。

写下文档主要是为了记录,方便其他人。虽然这不是个什么大知识点,但是万一忘了怎么操作了也能够提醒自己。