Unity开发HTC vive 四、传送
2017-01-06 12:03
465 查看
2017年3月24日修改
vive的sdk SteamVR在升级,会有些改动。最新的SteamVR1.2.1在Unity5.4.4下狂报错。
下面的内容是在以下环境完成的
unity5.4.4
SteamVR1.2.0(http://download.csdn.net/detail/wuyt2008/9792970)
ViveInputUtility1.5.1beta(http://download.csdn.net/detail/wuyt2008/9792980)
之前的内容大概是SteamVR1.1.X的,传输部分有修改,内容已更新。
手柄会射出一个抛物线,当pad按下的时候,会传送到抛物线和物体交汇处,从而实现远距离移动。
![](https://img-blog.csdn.net/20170106120032380?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1、导入SDK:SteamVR Plugin和Vive Input Utility
2、删除场景中的默认摄像机,新建一个空的游戏对象,并将CameraRig拖入场景作为其子对象
![](https://img-blog.csdn.net/20170106114657884?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
将VivePointers拖入场景也作为其子对象
![](https://img-blog.csdn.net/20170106114757730?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3、再新建一个空的游戏对象,命名为Walkable,并添加一些3d对象作为其子对象。这个对象里面的,是可以被传送到的地方,例如地板。不在这里的无法被传送过去,例如桌子,墙。
![](https://img-blog.csdn.net/20170106115311705?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里在之前的内容没说清楚,能传送到的地方,其父级需要添加一个Teleportable组件
![](https://img-blog.csdn.net/20170324213501646?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4、在Walkable对象下添加脚本Teleportable,并设置。
![](https://img-blog.csdn.net/20170324213751431?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5、设置Raycast Mode为Projectile,这样,手柄射出的就不是直线而是一个抛物线,避免一下传送到很远的地方。
![](https://img-blog.csdn.net/20170106115835775?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里在新版本有所修改,只需要在EventRaycaster上添加组件脚本“Projectile Generator”
![](https://img-blog.csdn.net/20170324213644620?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
修改Velocity属性可以改变线的弧度
![](https://img-blog.csdn.net/20170324214102685?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V5dDIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6、运行,ok。
vive的sdk SteamVR在升级,会有些改动。最新的SteamVR1.2.1在Unity5.4.4下狂报错。
下面的内容是在以下环境完成的
unity5.4.4
SteamVR1.2.0(http://download.csdn.net/detail/wuyt2008/9792970)
ViveInputUtility1.5.1beta(http://download.csdn.net/detail/wuyt2008/9792980)
之前的内容大概是SteamVR1.1.X的,传输部分有修改,内容已更新。
手柄会射出一个抛物线,当pad按下的时候,会传送到抛物线和物体交汇处,从而实现远距离移动。
1、导入SDK:SteamVR Plugin和Vive Input Utility
2、删除场景中的默认摄像机,新建一个空的游戏对象,并将CameraRig拖入场景作为其子对象
将VivePointers拖入场景也作为其子对象
3、再新建一个空的游戏对象,命名为Walkable,并添加一些3d对象作为其子对象。这个对象里面的,是可以被传送到的地方,例如地板。不在这里的无法被传送过去,例如桌子,墙。
这里在之前的内容没说清楚,能传送到的地方,其父级需要添加一个Teleportable组件
4、在Walkable对象下添加脚本Teleportable,并设置。
5、设置Raycast Mode为Projectile,这样,手柄射出的就不是直线而是一个抛物线,避免一下传送到很远的地方。
这里在新版本有所修改,只需要在EventRaycaster上添加组件脚本“Projectile Generator”
修改Velocity属性可以改变线的弧度
6、运行,ok。
相关文章推荐
- Unity开发HTC vive 四、传送
- 用Unity开发HTC VIVE——移动漫游篇
- Unity开发HTC vive 一、手柄按钮
- Unity +HTC VIVE 虚拟现实开发— 手柄震动
- Unity开发HTC vive 五、拾取和触碰
- Unity开发HTC vive 二、操作GUI
- unity开发HTC VIVE虚拟现实应用入坑笔记(一)——SteamVR入门
- Unity开发HTC vive 入门
- Unity开发HTC vive 二、操作GUI
- Unity开发HTC VIVE
- Unity开发HTC vive 一、手柄按钮
- unity开发HTC VIVE虚拟现实应用入坑笔记(三)——InteractionSystem
- Unity开发HTC vive 五、拾取和触碰
- Unity开发HTC vive 一、手柄按钮
- unity开发 HTC vive手柄控制 手柄上各个按钮的点击事件
- Unity开发HTC vive 三、远处拖动3D物体
- Unity开发HTC vive 三、远处拖动3D物体
- unity开发HTC VIVE虚拟现实应用入坑笔记(二)——SteamVR之手柄事件
- android+unity游戏开发之摄像头切换
- 一起谈.NET技术,Silverlight 游戏开发小技巧:升级和传送点特效1