Unity开发HTC vive(四):传送

发表于2017-03-24
评论1 5.1k浏览

2017年3月24日修改

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

文章原来用的大概是SteamVR1.1.X,新的有所变动,内容已更新。

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

unity5.4.4

SteamVR1.2.0

ViveInputUtility1.5.1beta

老的SDK附在第一篇文章后面了。


HTC vive为了方便玩家在房间内也能体验到VR游戏的乐趣,所以在移动的方式中有加入传送这个功能,那么在HTC vive中如何用Unity开发传送功能呢,通过本教程,你就能知道Unity开发HTC vive传送功能的开发全过程了。

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



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


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



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



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



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



这里原来没说清楚。要传送的地方,父级需要添加“Teleportable”脚本组件

再设置Teleportable的参数


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


这里内容发生了变动,在“EventRaycaster”里添加“Projectile Generator”脚本即可。直线就会被掰弯,嗯。

修改velocity属性可以修改弯曲程度

6、运行,ok。

Unity开发HTC vive(一):手柄按钮

Unity开发HTC vive(二):操作GUI

Unity开发HTC vive(三):远处拖动3D物体

Unity开发HTC vive(五):拾取和触碰

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引