我是靠谱客的博主 酷炫啤酒,最近开发中收集的这篇文章主要介绍Steam VR SDK学习笔记(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先给出本文所用到的unitypackage的下载地址: 
Steam VR SDK:http://download.csdn.net/detail/zzmkljd/9675460 
Steam VR Unity Tooklkit:http://download.csdn.net/detail/zzmkljd/9675462 
VR Arc Teleporter :http://download.csdn.net/detail/zzmkljd/9675467

今天导入了一个叫 VRTK - SteamVR Unity Toolkit 的插件,基本上考虑了所有将会用到的情况。 
下面要总结的就是在这个插件下手柄的用途: 
首先说一下VRTK_ControllerEvents类,这个类提供了各种按钮事件的委托,而按钮按下或者松开的过程一般只会调用事件方法一次,是以下情况的前提条件。 
一、镭射光线 
脚本:VRTK_SimplePointer 
调用事件(VRTK_ControllerEvents):AliasPointerOn、AliasPointerOff 
可用事件(VRTK_ControllerPointerEvents_ListenerExample): 
PointIn 
只要射线碰到有Collider的物体就会执行,执行多次。 
PointOut 
移出有Collider的物体或者从一个物体到另一个物体时执行,执行一次。 
DestinationSet 
在松开Pointer的按钮传送至另一位置时执行,执行一次。

二、与物体交互

1.Touch(触摸) 
脚本:VRTK_InteractTouch+VRTK_InteractableObject 
可用事件(VRTK_InteractableObject类): 
InteractableObjectTouched 
在OnTriggerStay()中调用,碰到物体时执行一次,传入被Touch的物体

InteractableObjectUntouched 
在OnTriggerStay()中调用,两个物体切换时执行一次,传入UnTouch的物体 
在OnTriggerExit()中调用,离开物体时执行一次,传入UnTouch的物体

2.Grab(抓取) 
脚本:VRTK_InteractTouch+VRTK_InteractGrab+VRTK_InteractableObject 
调用事件(VRTK_ControllerEvents):AliasGrabOn、AliasGrabOff 
可用事件(VRTK_InteractableObject类): 
InteractableObjectGrabbed 
由按钮事件调用,只在按下时执行一次,传入Grab物体 
InteractableObjectUngrabbed 
由按钮事件调用,只在松开时执行一次,传入UnGrab物体 
分析:得到Touch的物体并初始化该物体位置再使用FixJoint将它的Pose与手柄的Pose保持一致。释放的过程亦然,只是释放时会将手柄的速度应用给物体的Rigidbody,实现Throw效果。

3.Use(使用) 
脚本:VRTK_InteractTouch+VRTK_InteractGrab+VRTK_InteractUse+VRTK_InteractableObject 
调用事件(VRTK_ControllerEvents):AliasUseOn、AliasUseOff 
可用事件(VRTK_InteractableObject类): 
InteractableObjectUsed 
由按钮事件调用,只在按下时执行一次,传入Use物体 
InteractableObjectUnused 
由按钮事件调用,只在松开时执行一次,传入Unuse物体 
分析:这种情况相当于自定义的使用用途,可以自定义用法,比如例子中的OpenTheDoor。

三、传送 
在插件的例子中镭射光线就能实现简单的传送,而还有一个插件叫VR Arc Teleporter,可以实现比它更好一点的传送方式,原理为在一帧中发射最多500条逐渐向下的射线,如果碰到地面则中断得到碰撞点。如果按下Trigger则将相机位移至该点。

最后

以上就是酷炫啤酒为你收集整理的Steam VR SDK学习笔记(二)的全部内容,希望文章能够帮你解决Steam VR SDK学习笔记(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(203)

评论列表共有 0 条评论

立即
投稿
返回
顶部