1、Unity Steam_VR 开发工具插件 VRTK自带案例分析(的第一部分).docx

1、Unity Steam_VR 开发工具插件 VRTK自带案例分析(的第一部分).docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、Unity Steam_VR 开发工具插件 VRTK自带案例分析(的第一部分)

1、Unity Steam_VR 开发工具插件 VRTK自带案例分析(第一部分)VRTK这个工具包提供了很多在Unity3d做VR开发中通用的VR功能,主要包括1)具有别名的控制器按钮事件2)控制世界指针(激光指针)3)玩家瞬间转移4)使用控制器抓起/握住物体5)使用控制器与物体交互6)把游戏物体变成交互式的UI元素这个工具集主要分成三个部分:1)Prefabs - VRTK/Prefabs/2)Scripts - VRTK/Scripts/3)Examples - VRTK/Examples/DEMO 1 ?查询硬件手柄头显在VRTK插件的第一个demo 001_CameraRIg_VR_PlayArea 案例。这个demo 显示的功能: ?按下任一手柄上的按键,便载入下一个场景。找到demo场景中##Scene Changer## 游戏物体,打开附加的scene changer脚本,里面有两个核心的类,以及几个重要的API。VRTK_DeviceFinder类:用于在场景中寻找左右手柄、头显、返回硬件编号或手柄,头显的gameobject。  ?重要的API:??获得左右手柄的游戏物体VRTK_DeviceFinder.GetControllerRightHand();?VRTK_DeviceFinder.GetControllerLiftHand();获得左右手柄对应的硬件编号VRTK_DeviceFinder.GetControllerIndex(rightHand)按下手柄任一按键或键盘上的空格键,加载下一个场景。ForwardPressed 用于侦测手柄的按键是否按下。上图中引入第二个重要的类:VRTK_SDK_Bridge,这是插件封装了?SteamVR 的比较底层的API:VRTK_SDK_Bridge.IsTriggerPressedOnIndex(controllerIndex) 。输入硬件的编号,返回是否按下的布尔值。?DEMO 2手柄的输入事件002_Controller_Events封装成VRTK_Controller Event脚本。针对VR中常见的交互动作:?UI点击,抓住物体,触发物体功能等,自定义手柄按键,绑定这些动作。旧版新版pointerToggleButton:激光的显示开关,激光在VR里相当于鼠标箭头的指向功能。pointerSetButton:激光停留的指向目标,触发目标的功能,相当于鼠标点击。grabToggleButton:抓住物体动作,配合使用 VRTK 插件集成的抓取,投掷功能。useToggleButton:触发目标事件,比如把手柄放在门把手上,按下这个按键,触发门打开的功能;手柄放在电灯开关上,按下按键,触发电灯开发的功能。这个和pointerSetButton区别在于后者需要激光落在目标上,才能触发目标上的功能。uiClickButton:触发UI Canvas 目标的事件。menuToggleButton:游戏目录显示开关。axisFidelity:按键按下的强度,完全按下是1,松开时是0。现在只有Trigger按键(手部后面扳机)有此属性。triggerClickThreShold:扳机要到多大程度,才能使用扳机的触发功能。如果是0.5,则表示只要按下一半的程度就可以触发,如果是1,则必须完全按下才能触发。?以上是设置各个按键在插件中交互的功能。如果要获得每个按键具体的使用情况,如按下、松开按键、手触摸板的按键位置、扳机的按下强度等,则需要在 VRTK_ControllerEvent 注册对应按键的事件。?在VRTK_ControllerEvents_ListenerExample脚本中,监听了VRTK_ControllerEvent所有按键的事件,和按键的参数信息。如下图的扳机键的按键事件。?事件的参数在VRTK_ControllerEvents中是:手柄的硬件编号、按钮的按下程度值(扳机键专有的属性)、 触摸板的触摸位置和角度(触摸板专有的属性)?DEMO 003_Controller_SimplePointer?传送位置VRTK_Simple Pointer类。该脚本继承自VRTK_WorldPointer旧版新版功能的核心是将玩家的位置传送到激光所指落在的地方,该脚本应默认放在手柄的prefab上。其他的参数设置激活颜色、传送时是否显示玩家活动区域、激光有效触碰的层、激光的粗细等。?DEMO 004_CameraRig_BasicTeleportVRTK_Basic Teleport。该脚本配合继承自VRTK_WorldPointer的子类,如VRTK_Simple Pointer,添加此脚本后才可以位移传送。?参数1)传送时黑屏:模拟眨眼动画,过渡更自然。

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档