Unity新手开发VR项目

一:选择合适版本插件
1.下载SteamVR和VRTk插件

由于官方的版本升级太快,而且升级后有很多的新坑,所以我们使用较为稳定的版本来开发
点击此处下载:下载地址
提取码:we2x

注意: 2018版本的VRTK适用于2017以下版本的Unity,如果项目开发要求用2018以上版本的开发需要2019版本VRTK,否则会报错,上方的链接中包括两个版本的VRTK

二:导入插件

将两个插件导入我们的项目工程中
导入后
遇到这个弹窗,直接选择AccpetAll就好了
在这里插入图片描述
查看控制台,确定没有错误文件后就可以开始制作程序了

第一次使用建议按以下操作一步步学习
1.基础设置

创建一个空对象
将名字改为[VRTK_SDKManager]并为它添加组件VRTK_SDKManager
在这里插入图片描述
在VRTK/LegacyExampleFiles/ExampleResources/Prefabs目录下找到SDKSetups预制件,并且将它拖入我们刚刚创建的空对象下
在这里插入图片描述
讲SDKSetUp预制件下的用不到的都删掉,只留下SteamVR

然后继续设置VRTK_SDKManager
在这里插入图片描述
讲SteamVR添加到Setups中

再创建一个新对象 名字改为[VRTK_Scripts]

  1. 在[VRTK_Scripts]下创建一个空对象,名字改为PlayArea,并为它添加VRTK_BasicTeleport组件
    用来设置玩家的活动区域,没有这个组件就无法移动

  2. 在[VRTK_Scripts]下创建一个空对象,名字改为LeftController,并为它添加VRTK_ControllerEvents组件
    左手柄控制器

  3. 在[VRTK_Scripts]下创建一个空对象,名字改为RightController,并为它添加VRTK_ControllerEvents组件
    右手柄控制器

  4. 然后将LeftController和RightController添加到[VRTK_SDKManager]的Script Aliases

    设置完成之后就是这个样子
    在这里插入图片描述
    在这里插入图片描述

移动功能

如果是使用左手移动,那我我们需要在LeftController上添加组件VRTK_Pointer
移动射线可以选择直线或者是抛物线(贝塞尔曲线)
直线:添加组件VRTK_StraightPointerRenderer
抛物线:添加组件VRTK_BezierPointerRenderer

VRTK_Pointer的设置:
Enable Teleport勾选后才可以移动
Pointer Renderer 射线渲染 将添加的VRTK_StraightPointerRenderer组件拖进来就好了
Activation Button 控制射线显示或者隐藏的按钮 如果不需要就选择Undefined
Hold ButtonTo Activate 按下后显示射线 这个就按操作要求去设置是否要选择它
Activate On Enable 初始状态下显示射线 按需求去设置吧
Selection Button 按下后移动到射线的末端位置 注意:射线移动的区域必须要有碰撞器
在这里插入图片描述

与UI交互

新建一个Cnavas,给他添加VRTK_UICanvas组件
画布一定要选择WorldSpace模式,要不然你怎么交互呢
然后设置好它的长和宽,我一般都习惯设置1920:1080
控制画布大小不要去调Width和Height,一定是调比例,等比缩放,然后放到合适的位置上就行了
在这里插入图片描述
然后我们使用射线与它交互
在我们上面创建好的RightController对象上面,添加组件VRTK_PointerVRTK_StraightPointerRenderer
然后我们在添加一个VRTK_UIPointer组件就好了
VRTK_Pointer设置:
Enable Teleport 设定是否用来移动
PointerRenderer 设定射线渲染,我们选择直线
Activation Button 激活射线按钮 我们选择Undefined就好了,点击Ui的射线一般都设置为一直存在
HoldButtonToActivate 按着按钮激活射线 也不要勾选
Activation On Enable 默认激活射线,选择这个就行
在这里插入图片描述
VRTK_UIPointer设置:
ActivationButon激活UI功能按钮 我们选择Undefined
ActivationMode激活模式 选择AlwaysOn 一直打开Ui功能
SelectionButton触发按钮 按客户需求或者个人想法设置
ClickMethod点击方式 我们选择在按下时触发事件
在这里插入图片描述
VRTK_StraightPointerRenderer依旧是拖拽到VRTK_Pointer的PointerRenderer中就好了

拾取物体

如果使用右手拾取,那么我们在RightController上面添加VRTK_InteractTouchVRTK_InteractGrab组件
VRTK_InteractGrab设置:
GrabButton拾取按钮 按需求自己选择
GrabPrecognition提前预判抓取物体 对应快速运动的物体,我们可能需要提早按下抓取按键才能抓住物体,数值是提前的时间值,值越大,可提前的抓取时间越长,看实际情况设置,又不是在拍抗日剧,应该用不到空手抓子弹
Throw Multiplier 把物体扔出去时,速度的倍增值。
Create Rigid Body When Not Touch 在碰到物体时才创建 RigidBody。默认情况下手柄也创建 Rigidbody,这就可以和物体在物理上碰撞。
在这里插入图片描述
VRTK_InteractTouch设置:
Custom RigidBody Object自定义用于判定接触的刚体物体,如果没有的话,会自动在子层级创建一个刚体物体。
在这里插入图片描述
要拾取的物体对象,要添加碰撞器(Collider),刚体(Rigidbody)和VRTK_InteractableObject
VRTK_InteractableObject设置:

  1. Touch Settings 接触
    Allow Touch Controller:规定哪个手柄可以接触这个物体。

  2. Grab Settings抓取
    IsGrabbable:是否可以被抓取。
    Valid Drop:控制器在什么时候可以放下对象。
    Hold Button To Grab:按住才能保证物体不掉落。
    Grab Override Button:如何拾取此物体,如果这个物体拾取与别的物体不一样,在这里单独设置。
    Allowed Grab Controllers:规定哪个手柄可以接触这个物体。
    Precision Grab:精准抓取。如果是,则抓取的位置是刚接触到物体的点,而不是默认的物体中心位置。
    Right Left Snap Handle:被抓物体的抓取点,该游戏物体应该放在被抓物的子层级下。

  3. Use Settings使用
    Use only if Grabbed:只有在被抓取时才可以被使用。
    Hold Button to Use:长按手柄按键才可以使用。
    Use Override Button:自定义操作按键。
    Pointer activates Use Action:如果打钩,当手柄发射的激光落在交互物体上,于此同时如果Holon to use没有打钩,则使用该物体,Holon to use打钩了,则要按住使用按键才可以使用该物体。

PASS(清楚这些功能之后,可以直接在VRTK的Demo中将官方做好的基础设置对象复制到我们的场景中使用)路径:VRTK/LegacyExampleFiles

在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪小心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值