Unity开发HTC vive 四、传送

vive的sdk SteamVR在升级,会有些改动。最新的SteamVR1.2.1在Unity5.4.4下狂报错。

下面的内容是在以下环境完成的

unity5.4.4

SteamVR1.2.0(http://download.****.net/detail/wuyt2008/9792970)

ViveInputUtility1.5.1beta(http://download.****.net/detail/wuyt2008/9792980)

 

之前的内容大概是SteamVR1.1.X的,传输部分有修改,内容已更新。

 

手柄会射出一个抛物线,当pad按下的时候,会传送到抛物线和物体交汇处,从而实现远距离移动。

Unity开发HTC vive 四、传送

 

1、导入SDK:SteamVR Plugin和Vive Input Utility

 

 

2、删除场景中的默认摄像机,新建一个空的游戏对象,并将CameraRig拖入场景作为其子对象

Unity开发HTC vive 四、传送

 

将VivePointers拖入场景也作为其子对象

Unity开发HTC vive 四、传送

 

3、再新建一个空的游戏对象,命名为Walkable,并添加一些3d对象作为其子对象。这个对象里面的,是可以被传送到的地方,例如地板。不在这里的无法被传送过去,例如桌子,墙。

Unity开发HTC vive 四、传送

 

这里在之前的内容没说清楚,能传送到的地方,其父级需要添加一个Teleportable组件

Unity开发HTC vive 四、传送

 

4、在Walkable对象下添加脚本Teleportable,并设置。

Unity开发HTC vive 四、传送

 

5、设置Raycast Mode为Projectile,这样,手柄射出的就不是直线而是一个抛物线,避免一下传送到很远的地方。

Unity开发HTC vive 四、传送

 

这里在新版本有所修改,只需要在EventRaycaster上添加组件脚本“Projectile Generator”

Unity开发HTC vive 四、传送

 

修改Velocity属性可以改变线的弧度

Unity开发HTC vive 四、传送

6、运行,ok。