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则将相机位移至该点。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值