新增:VRTK丨基础配置、实现与UI交互

基础配置

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!

发布了320 篇原创文章 · 获赞 77 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/weixin_38239050/article/details/103322836
今日推荐