基础配置
1、我的Unity版本
2018.4.11.c1
2、导入SDK
SteamVR(版本1.2.3)、VRTK(版本3.1.0)或VRTK(版本3.2.1)
两个版本下载地址:下载地址
为实现将手柄替换为手模型,VRTK建议直接使用3.2.1
SteamVR SDK最新版不支持Unity2018.4,使用老版本解决该问题。
3、解决报错
a、'Texture.Texture()' is inaccessible due to its protection level
b、你可能升级了SteamVR SDK,不升级之前项目是好的,升级后运行报错。这是你本地的SteamVR环境版本太低导致。
打开该网址(链接)进行升级,或打开Steam应用升级你得SteamVR
c、后续版本问题还可以看SteamVR或VRTK的文档。
将报错代码改成:
renderer.material.SetTexture("_MainTex", new Texture2D(0,0));
4、场景基础配置:
--------------------------------------VRTK(版本3.1.0)配置方法↓---------------------------------------
a、删掉原Camera,拖入 [CameraRig]、(创建地面)
b、新建空物体 [VRTK] ,添加 VRTK_SDKManager
1)、QuickselectSDK:SteamVR
2)、AutoPopulateLinkedObjects
c、配置左右手
在物体底下创建左右手物体 LeftController、RightController,左右手分别添加 VRTK_ControllerEvents、VRTK_ControllerHighlighter
1)、右手再添加 VRTK_ControllerActions、VRTK_Pointer、VRTK_StraightPointerRenderer。
2)、将VRTK_StraightPointerRenderer赋值到VRTK_Pointer的PointerRenderer属性
3)、将左右手物体,配置到 [VRTK] 物体——VRTK_SDKManager——ScriptsAliasLeft/RightController上。
d、配置瞬移
在 [VRTK] 物体下创建新物体 PlayArea,该物体添加 VRTK_BasicTeleport、VRTK_HeadsetFade、VRTK_HeadsetCollision_UnityEvents、VRTK_BodyPhysics(下方介绍)
--------------------------------------VRTK(版本3.2.1)配置方法【建议】↓---------------------------------------
a、建立如下结构。
b、物体配置如下:
[VRTK_SDK_MANAGER] :添加 VRTK_SDKManager、Autoload下添加属性,赋值[VRTK_SDK_SETUP]
[VRTK_SDK_SETUP] :添加 VRTK_SDKSetup、SDK Selection为SteamVR
左右手分别添加 VRTK_ControllerEvents、VRTK_ControllerHighlighter
RightController:
1)、再添加 VRTK_ControllerActions、VRTK_Pointer、VRTK_StraightPointerRenderer。
2)、将VRTK_StraightPointerRenderer赋值到VRTK_Pointer的PointerRenderer属性
3)、将左右手物体,配置到 [VRTK_SDK_MANAGER] 物体——ScriptsAlias上。
PlayArea:添加 VRTK_BasicTeleport、VRTK_HeadsetFade、VRTK_HeadsetCollision_UnityEvents、VRTK_BodyPhysics
VRTK_HeadsetFade:防穿墙效果
TargetListPolicy:类似传送限制区域。TargetListPolicy属性确定哪些物体参与碰撞检测,碰到之后黑屏。可不配置,则全参与检测。
VRTK_HeadsetCollision_UnityEvents:当头碰到碰撞体时,执行下面事件
VRTK_BodyPhysics:当玩家走出平地悬空后,现在可以坠落
GravityFallYThreshold:当玩家悬空高度大于1时,向下坠落。
一、手柄射线交互
效果:类似激光笔,按下Trigger,通过指针(Pointer)对于UI进行选择,适合于远距离交互
参考场景:VRTK 34
1、Canvas设置
新建比例0.003、分辨率3的、带有一个Button的3DCanvas
Canvas添加 VRTK_UICanvas
2、手柄设置
右手手柄添加 VRTK_UIPointer
Enjoy!
二、手柄碰撞交互
直接通过手柄触控交互,适合于近距离交互
1、手柄设置:
a、完成“一手柄射线”所示设置
b、右手手柄再添加 VRTK_InteractTouch,该组件是UI碰撞条件之一
2、Canvas设置
Canvas上的 VRTK_UICanvas 组件——AutoActivateWithinDistance,设置0.2
该属性指:当手柄与UI按钮的距离小于0.2,会自动触发按钮事件。
Enjoy!