unity htc vivee的手柄怎么和unity

使用Unity3d培训进行HTC Vive手柄操作
使用Unity3d培训进行HTC Vive手柄操作
浏览次数:744
浏览次数:130
浏览次数:758
浏览次数:1006
浏览次数:1096
如果你对以下课程意犹未尽,,查看全部课程
HTML5全栈开发
HTML5最新课程
156 人在学
c#编程概述
C#快速入门
简单又好玩
120 人在学
没有账号?
s后重新发送
已有账号?
已有账号?
验证码确认
话题标题:
400-877-8190
登录后反馈HTC Vive手柄Pad获取角度 - 简书
HTC Vive手柄Pad获取角度
最近在看htc,顺便做点积累。手柄上的按键比较明确,唯一的就是pad这个区域。这个可以通过计算获取方向,我们开发主要用来选择UI使用。using UnityEusing System.Cpublic class PadAction : MonoBehaviour {SteamVR_TrackedObject trackdeOvoid Awake() {//获取手柄上的这个组件trackdeObject = GetComponent();}// Use this for initializationvoid Start () {}void FixedUpdate(){ //获取手柄输入var device = SteamVR_Controller.Input((int)trackdeObject.index);if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Touchpad)) //触摸到pad{//方法返回一个坐标 接触圆盘位置Vector2 pos = device.GetAxis();float angle= VectorAngle(new Vector2(1, 0), cc); //form设定为(1,0)表示以x轴正向为准。Debug.Log(angle);}}//方向圆盘最好配合这个使用 圆盘的.GetAxis()会检测返回一个二位向量,可用角度划分圆盘按键数量//这个函数输入两个二维向量会返回一个夹角 180 到 -180float VectorAngle(Vector2 from, Vector2 to){Vector3 cross = Vector3.Cross(from, to);angle = Vector2.Angle(from, to);return cross.z & 0 ? angle : - //这个原作者好像弄反了。}}文章参照Unity开发HTC&vive&入门一、手柄按钮
怎么用Unity去对HTC vive手柄按钮进行开发?相信是很多VR游戏开发人员要思考的,为了帮助大家,下面针对用Unity开发HTC
vive手柄按钮的这五方面进行了介绍,一起来看看吧。
本文目录:
1.认识下vive的手柄
2.SDK下载
3.程序开发之综述
4.Trigger按钮开发
5.Pad开发
认识下vive的手柄
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpwTqKTm..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpFtoWXY..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
手柄两个一对,分左右,开发的时候也是分左右的。每个上面有一个pad和4个按钮。简单说明下:
1&开关、系统菜单按钮:只有这个按钮不可以编程(默认),用来打开手柄,其实没用关的功能。在游戏中按下该按钮是调出系统默认的菜单,用来关闭,切换游戏用的。
2&menu按钮:默认用来打开游戏菜单。
3&grip按钮:用的最少的按钮,每个手柄上虽然有两个,但是是相同的。
4&trigger按钮:扳机按钮,用的最多,可以有力度。
5&pad:触摸屏+鼠标的功能,可触摸,可点击。
需要两个插件:
SteamVR&Plugin<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpqDmDhT..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
Vive&Input&Utility<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpHz1tCl..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
商城地址如下,都是免费的,下载后导入
https://www.assetstore.Unity3D.com/cn/#!/content/32647
https://www./cn/#!/content/64219
程序开发之综述
首先,引用HTC.UnityPlugin.Vive
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpptxqcO..png" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
每个按钮包括pad都有GetPress、GetPressDown、GetPressUp三种方法,用HandRole枚举来确定左右手柄,用ControllerButton枚举来确定是哪个按钮。
对于按钮,GetPressDown是按下时触发,GetPressUp是放开时触发,以上两个是个事件,GetPress是按住时一直返回ture,算是一个状态。
对于pad,有两种:
当ControllerButton.Pad时,和按钮相同。
当ControllerButton.PadTouch时,GetPressDown是接触时触发,GetPressUp是离开时触发,GetPress是接触时一直返回的状态。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpfu9EKu..png" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpLgkGFk..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
除了上面的方法,还可以通过回掉的方式实现
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpJt9iKi..png" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
Trigger按钮开发
Trigger有模拟值,从0到1,没按的时候是0,全部按下是1。可以通过GetTriggerValue方法获得。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpq0YTV7..png" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
Trigger按钮,对应有三种,Trigger,HairTrigger,FullTrigger。
当TriggerValue在0.1到0.2时,对应HairTrigger,当TriggerValue超过0.5时对应Trigger,当TriggerValue=1时,对应FullTrigger。
可以简单理解为,轻按=HairTriiger,中度按=Trigger,全部按下=FullTrigger。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpvI2TEV..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
pad做那么大,当然除了可以按,还可以返回位置信息。用GetPadAxis方法即可。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpYyVZsj..png" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
触碰位置信息如下图
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpZrUrRW..jpg" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
此外,对应pad,又有接触、按下的两组方法。其中,Axis是坐标位置,Delta是最后一帧移动位置,Vector是移动的向量。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://gameweb-/gad//phpb3eCoW..png" ALT="Unity开发HTC vive 入门一、手柄按钮" STYLE="box-sizing: content- margin: 0 padding: 0 border-width: border-style: outline: max-width: 100%; display: inline-"
TITLE="Unity开发HTC&vive&入门一、手柄按钮" />
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。基于Unity+HTC VIVE的VR游戏开发 - 蛮牛教育 - 国内最大的Unity在线学习平台|Unity培训|Unity3d培训|Unity视频学习|Unity教程 Unreal 虚幻 AR VR - Powered By EduSoho
本课程由Marvin老师同HTC技术团队深度合作,为了让蛮牛开发者能快速了解并上手VIVE项目开发出品的课程。课程从HTC VIVE设备软硬件讲起,并结合一个射击类游戏实操讲解了VIVE平台上游戏开发的方法和技巧,希望能够让蛮牛小伙伴们第一时间了解到VR游戏开发的最新内容。
HTC VIVE在2月21日公布了产品价格,799美元的低于成本价格,将很有希望成为一款面向家庭和普通用户的VR现象级平台。
Vive是由HTC和Valve合作推出的虚拟现实头盔,刷新率有90HZ,允许程序以每秒90帧的速度进行渲染,两块一块屏幕的分辨率均为。
Vive设备使用了超过70块传感器,包括微机电陀螺仪、加速传感器等等,但是其中最出彩的,则是其的激光定位系统传感器。如果配合LightHouse基站,则开发者可以在4米乘4.5米的空间内实现精准度极高的移动定位。使用者也正是因为可以在虚拟场景中比较自由的移动,才得以从很大程度上减少了眩晕的不适感。
Vive为使用者配备了一组SteamVR控制器,在控制器上配有多个按钮以及一个定位精准的触摸板。通过与LightHouse系统的使用,开发者可以在应用中实现大部分的手部操作。
本次课程是Vive开发系列课程的第一季,我们将陆续推出VIVE开发系列课程。请大家关注蛮牛推出的Vive开发者扶持计划,我们将为Vive开发者提供教学课程、技术文档、社区讨论、设备体验、demo测试和发行等一系列支持。
了解HTC VIVE,掌握开发环境和技巧
虚拟现实从业者 游戏开发者
开始学习课时
开始学习课时
学完了课时
开始学习课时
学完了课时

我要回帖

更多关于 unity vive 手柄射线 的文章

 

随机推荐