前言:本文集合了VRTK场景案例以及数篇博客的知识点总结而成,如果你是看不懂专业属于的小白或者是想要轻松了解VRTK44个场景的初学者那么这篇文章肯定适合你,本文运用了大量的白话文注释以及图文结合,使用最新版本VRTK插件,一定是你学习的好帮手
——————————————————————————————————————————
001_CameraRig_VRPlayArea
该场景主要是相机的设置
重点:需要创建一个空物体然后在空物体上挂载组件VRTK_SDKManager
然后将预制体SDKsetups挂载在空物体上
点击一下VRTK_SDKManager的Auto populate自动查找挂上预制体的头显设置
如果相机的位置不好,可以在头显设置里找到CameraRig调整
002_Controller_Events
手柄监听设置需要在挂载的VRTK_SDKManager组件里面将设定好的左3手柄和右手柄指定进去
具体操作:需要两个空物体来搭载监听手柄的组件VRTK_ControllerEvents,然后将两个放置了空物体的组件的物体按照左右手的分类放入VRTK_SDKManager的ScriptAliases对应的槽里面,然后就可以分别在左右手柄的物体下挂载脚本监听手柄的按键了
Action Alias Buttons下面是按键对应指定的事件,可以在加的脚本中添加按键按下后触发别的事件
Pointer Toggle Button:用来开关镭射光标的按钮,默认触摸板按下
Pointer Set Button:用来设置目的地标志的按钮,默认触摸板按下
Grab Toggle Button:用来抓取游戏对象的按钮,默认为手柄按钮
Use Toggle Button:设置使用游戏对象按钮,默认为扳机单击。
UI Click Button:用来点击UI元素按钮,默认为扳机单击。
Menu Toggle Button:用来调出游戏菜单的按钮,默认为应用菜单
003_Controller_SimplePointer
射线的产生
具体操作:在前面添加手柄监听的基础上添加两个组件用来实例化一条射线以及将他渲染出来
添加VRTK_Pointer和VRTK_Straight Pointer Renderer组件然后在产生射线的组件将放置渲染射线组件的物体挂上去,挂在Pointer Renderer处(一般产生射线以及渲染射线都放在一个物体上,所以就是将自身的的物体挂上去就行)
004_CameraRig_BasicTeleport
射线传送
由上一节射线发射出后在创建一个空物体放置移动的组件VRTK_Basic Teleport
按住按键发射出射线后检测如果碰撞到物体那么松开手后就会瞬移到碰撞的位置
参数 1, 射线颜色
2, 眨眼传送速度(直接出现在位置或者走个缓慢熄屏亮屏动画,控制眨眼的时间)
3,传送延迟时间(传送后黑屏多久才可以播放传送动画)
4,以玩家头盔位置为基准进行瞬移
5,设置不可瞬移到达的目标标签,当瞬移射线检测到该类目标时不可瞬移过去
6,限制边缘传送,距离NavMesh寻路算法网格边缘距离
005_Controller_BasicObjectGrabbing
抓取物体
具体操作:在经过第项目二的手柄配置后我们可以给手柄添加两个组件实现手柄抓取物体的效果
VRTK_Interact Touch 和VRTK_Interact Grab挂载在代表左右手的物体上,然后在物体上挂载一个组件代表这个物体可以被抓取VRTK_interactable Obiect,然后将自身挂载在Secondary Grab Action Script上面代表自身可以被抓取,抓取后会默认给物体添加一个组件,后面需要换手操作的话就需要在添加一个组件VRTK_SwapControllerGrabAction
记得将VRTK_interactable Obiect的Is Grabbale勾选上才可以抓取起来
006_Controller_UsingADoo
开门方法运用
具体操作:将门的组成物体放在一个空物体下,给那个空物体挂载一个盒子碰撞器调整为门的大小,将空物体的y轴放在门框处,然后调整碰撞体的位置让他和门的物体一样大(碰撞体用来检测是否碰到门)在空物体上挂载自带开门脚本(此脚本为VRTK_interactable Obiect组件的拓展,沿用了他的功能),然后在手柄对应的物体上添加抓取的两个脚本以及一个开门组件VRTK_Interact Use,在门身上的开门脚本上将Is Usable勾选就可以检测到该组件了
007_CameraRig_HeightAdjustTeleport
升降传送(走到一个比自身当前位置高的位置时会传送到更高的位置上去)
具体操作:在保持项目4直线传送的设置下创建一个空物体用来分类放置升降传送的组件分别是:
VRTK_Body Physics是人头检测方面组件(检测头显在移动时的正常碰撞,就像是真的有个人)
VRTK_Height Adjist Teleport高度传送
要有检测高度才能传送,所以二者一起走
然后将放置组件的空物体自身放入Target List Polic中
三个比较重要的设置:
Height Adjust Settings
Snap To Nearest Floor:设置传送后位置是否漂浮在空中(传送后检测该位置是否有网格碰撞体,如果只是空物体的话就向下寻找最近的物体)
Custom Raycast:某个层的指定射线。
Layers To Ignore:限制不可升降传送的物体标签
008_Controller_UsingAGrabbedObject
同006为VRTK_interactable Obiect组件的拓展,在拓展脚本中输入指定的动作,然后给物体添加VRTK_Fixed Joint Grab Attach和VRTK_Swap Co