unity创建一个VR项目(一)

创建一个可以基本互动的场景

    • 预备
    • 引入VRTK
    • 设置Camera和Track
    • 设置双手
    • 将对象设置成可互动对象
    • 可能的问题

预备

unity Editor我使用的版本是2019.4LTS,建议使用这一个版本的编辑器,2020版的似乎不再内置openVR了。

另外需要准备一个VR headset,我使用的是Oculus quest2,通过Oculus Link连接的电脑

在unity编辑器中,Edit ->Project Settings -> Player -> XR(有些在other settings),把Virtual Reality Supported 选中

unity创建一个VR项目(一)_第1张图片

引入VRTK

首先,在unity的左上角,点击Window -> Package Manager 一直向下滑找到XR Legacy Input Helpers,点击安装

unity创建一个VR项目(一)_第2张图片

进入tilia的网站,在创建的unity项目中,打开项目文件夹。在Project视图中,进入Packages,右键选中show in explorer,打开manifest(可以使用文本打开)
在这里插入图片描述

在tilia网站中,将红线的代码复制到manifest文件中的'dependencies'上,

unity创建一个VR项目(一)_第3张图片

unity创建一个VR项目(一)_第4张图片

复制完成后保存即可。

设置Camera和Track

在Tilia网站中,复制Track AliasUnity XR,复制的代码放入manifest的'dependencies'之内,保存之后unity编辑器会自动加载所有的包。

tips: 可以在Window -> Package Manager看到所有被导入的包

在Project视图,找到CameraRigs UnityXR,点击Runtime -> Perfabs,把CameraRigs.UnityXR拖进项目中,因为CameraRigs.UnityXR自带摄像头,所以需要将项目原有的main camera删除掉。

同样的方式,把TrackAlias拖进项目中。

然后查看TrackAlias的Inspector,我们需要去跟踪UnityXR这个摄像头,所以找到Camera Rigs的Elements属性,size填1(我的项目中有两个摄像头所以填了2,不用太在意)然后将UnityXR拖进Element中。
unity创建一个VR项目(一)_第5张图片

设置双手

进入Tilia网站,复制Unity Input Manager进项目。回到unity中会弹出一个窗口,点击 add input definitions即可。

进入图示的路径,找到ControllerMappings,因为我使用的是quest2设备,所以我将oculus.TouchLeftController(/RightController)两个预制体拖进了项目中。

使用OpenVR应该都是可以的。

unity创建一个VR项目(一)_第6张图片

随后,在Tilia中, 找到Interactions下的Interactables,将此包引入项目。

找到刚刚引入的包,到如图的路径下
unity创建一个VR项目(一)_第7张图片

这个预制体我们想让它成为我们的左右手,所以我们可以设置这个预制体成为alias,

在层级视图中,打开CameraRig.TrackedAlias ->Aliases 找到LeftControllerAlias和RightControllerAlias,分别拖入一个Intoractions.Interactor.perfab进去,可以给预制体重命名,用来区分一下,left,right之类的。

unity创建一个VR项目(一)_第8张图片

在Interactor的inspector下,找到Interactor Settings,设置Velocity Tracker属性就是他们的ControllerAlias(左右两只手都一样设置),Grab Action属性表示设置抓取动作的按键,我们在层级视图中打开Input.UnityInputManager.left/right两个预制体(名字太长了,知道哪两个对象就行),在InputActions -> Left/RightGrip ->Left/RightGrip_Press,将这个对象拖进Interactor Settings的Grab Action属性。
unity创建一个VR项目(一)_第9张图片

将对象设置成可互动对象

选中想要变成可互动对象的预制体,点击左上角window -> Tilia ->Interactions -> Interactable Creator,然后会弹出一个对话框,点击Convert to Interactable即可。随后,该对象即会成为可互动对象,拥有很多属性。但是我们不需要改变特别多的属性

看到对象的inspector视窗,找到Primary Action Settings 和 Secondary Action Settings,Primary属性是设置物体第一次抓住会发生什么事情,Secondary设置的是当你第一次抓住之后,再用另一个Controller抓住这个物体会发生什么。
unity创建一个VR项目(一)_第10张图片

根据图示设置属性即可。Grab Offset属性如果设置为Precision Point,那么当你抓住这个物体时,会以确切的位置显示。

至此,一个简单的可互动场景应该算是建立好了。

点击play,进入游戏模式,戴上HeadSet,然后Expolor~

可能的问题

如果出现了无法抓取物体,可以查看一下是否对Object设置了碰撞体。

你可能感兴趣的:(unity3d,vr,oculus)