VR学习(一)之VRTK例子学习

  从今天开始就学习VR啦,主要用SteamVR和VRTK进行开发(填坑)。现在贴上看过的VRTK中1到14个例子,包括其中所用到的脚本的理解,当然参考了VRTKAPI的。可能其中某些理解有错误,望各位大佬指出。

VRTK案例

001:熟悉使用VRTK搭建场景

   VRTK中prefabs文件中有个SDKSetups预制体。新建一个空物体,给空物体添加VRTK_SDK_Manager.cs脚本。此脚本处理与设置通过VRTK_Setups中支持的各种SDK。

VR学习(一)之VRTK例子学习

在Manager脚本中Setups处,将SDKSetups下的各个预制体分别设置进其中(最好按照该预制体下子物体的顺序,因为其中Auto Load选项勾选了,SDK安装程序将根据这个顺序进行自动加载),Script Aiases是分别设置用于交互的手柄预制体。

   SDKSetupSwitcher预制体是VRTK中先制定好的UI预制体,要想要添加简单的叠加GUI可以将此预制体添加到场景中。

002:对于HTCVIVE手柄简单控制的演示。

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

新建两个空物体,分别为左右手柄承载,添加VRTK_Controller Events脚本。然后将其拖入Manager脚本 Script Aliases位置。VRTK_Controller Events脚本是用于定义手柄按键各个事件。(控制台中会出现手柄的信息,当手柄被使用的时候)

003:简单的手柄射线事件。

VR学习(一)之VRTK例子学习

除了在手柄预制体上添加这两个脚本外,其他的设置与之前的一样。Pointer脚本用于发出射线,可以设置按下哪个键位发出,renderer脚本主要用于渲染射线,可以更改射线的颜色以及形式。

004:基础的传送。

VR学习(一)之VRTK例子学习

在VRTK_Scripts下添加空物体并添加上述脚本,用于传送。上述参数分别为:闪烁颜色,闪烁速度,闪烁延迟使劲按,耳机位置补偿,目标列表策略,导航网格数据。

耳机位置补偿选项若是勾选,则相机可以在游戏区域内任意移动但不会成为游戏区域的中心,若没有勾选,则相机所传送的位置会成为该游戏区域的中心。

  • 目标列表策略:指定的VRTK_PolicyList,用于确定传送器是否对目标目标执行操作。
  • 导航网格数据:一个可选的NavMeshData对象,用于将传送限制在任何场景NavMesh中。

005:基本的物体交互:该场景需要在手柄物体上添加VR学习(一)之VRTK例子学习

以上两个脚本,包括ControllerEvents脚本。

VR学习(一)之VRTK例子学习

需要在交互的物体上添加Interactable object脚本。Interactable脚本可通过FixedJointGrabAttach脚本对物体进行抓取,当碰到其他带有碰撞器物体时,抓取在手柄的物体会掉落。SwapControllerGrabAction用于将抓取的可交互物体交换到新的抓取对象,就是从一个手柄到另外一个手柄。

VR学习(一)之VRTK例子学习

该脚本用于创建网格副本应用在突出显示对象时打开和关闭轮廓着色器(高光)。

006:开门实例。

VR学习(一)之VRTK例子学习

Interact use脚本确定带有Interact Touch脚本的物体是否可以启动与触摸的可交互对象进行交互,Interact Touch脚本确定对象是否可以启动与可交互对象的触摸,Interact Grab脚本确定Interact Touch对象是否可以使用触摸的可交互对象进行抓取。

007:高光和传送:

VR学习(一)之VRTK例子学习

添加了此脚本的物体可以跟随抓取对象。

008:交互对象。

VR学习(一)之VRTK例子学习

此脚本用于确定手柄在与对象交互时,对象是否可见。

009:曲线传送

VR学习(一)之VRTK例子学习

曲线渲染脚本,用处和直线渲染一样。

010:地形上传送

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

011:头部与碰撞体碰撞时眼前颜色更换。

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

012:射线与区域碰撞

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习

添加此脚本时,射线与区域碰撞的点周围会出现一个小形方格区域,显示移动点的边界。

013:使用和抓住多个物体。

此场景扣下扳机让枪发射子弹击飞物体,手柄触摸物体时扣下扳机物体旋转。

014:拍摄物体被抓取。

VR学习(一)之VRTK例子学习

VR学习(一)之VRTK例子学习