找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 616|回复: 3

[Unity3D] Unity +HTC VIVE 虚拟现实开发— 手柄控制

[复制链接]

该用户从未签到

2

主题

13

帖子

15

积分

LV.1

Rank: 1

积分
15
QQ
发表于 2019-7-4 19:59:47 | 显示全部楼层 |阅读模式

  • 写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会。所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中有什么错误或者大家有什么更好的方案也请大家指出,大家互相学习,哈哈。</p><p>好了直接上代码。</p>  

ARial, Helvetica, sans-serif">[html] view plain copy



  • </pre><pre name="code" class="html"><pre name="code" class="csharp">using UnityEngine;  
  • using System.Collections;  
  •   
  • public class shoubingkongzhi : MonoBehaviour {  
  •     /// <summary>  
  •     /// 手柄  
  •     /// </summary>  
  •     SteamVR_TrackedObject tracked;  
  •   
  •   
  •   
  •     void Awake()  
  •     {  
  •         //获取手柄  
  •         tracked = GetComponent<SteamVR_TrackedObject>();  
  •   
  •     }  
  •   
  •     // Update is called once per frame  
  •     void FixedUpdate()  
  •     {  
  •         var device = SteamVR_Controller.Input((int)tracked.index);  
  •   
  •         if (device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))  
  •         {  
  •             Debug.Log("按下圆盘");  
  •         }  
  •         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))  
  •         {  
  •          
  •             Debug.Log("按下扳机键");  
  •         }  
  •         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Grip))  
  •         {  
  •          
  •             Debug.Log("按下手柄侧键");  
  •         }  
  •         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))  
  •         {  
  •          
  •             Debug.Log("按下手柄菜单键");  
  •         }  
  •         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))  
  •         {  
  •   
  •             Debug.Log("按下手柄菜单键");  
  •         }  
  •          
  •     }  
  • }  


Debug.Log("按下手柄菜单键");}}}
[code][/code][html] view plain copy



  • 以上都是HTC VIVE手柄中按键按下的代码。其他还有:  

[html] view plain copy



  • 按键松开—device.GetPressUp(SteamVR_Controller.ButtonMask.Trigger);  

[html] view plain copy



  • 按键长安—device.GetPress(SteamVR_Controller.ButtonMask.Trigger);  

[html] view plain copy



  • 按键按下还有另一种方式,但是我自我感觉用着很别扭,没上述的好。device.GetTouchDown(SteamVR_Controller.ButtonMask.ApplicationMenu);  

[html] view plain copy



  • 其他用法与GetPressDown()类似。  

该用户从未签到

1

主题

19

帖子

16

积分

LV.1

Rank: 1

积分
16
QQ
发表于 2019-12-2 09:22:31 | 显示全部楼层
楼主写的很不错,关于AR的知识受教了

该用户从未签到

3

主题

24

帖子

27

积分

LV.1

Rank: 1

积分
27
QQ
发表于 2019-12-2 10:50:57 | 显示全部楼层
增强现实希望发展越来越好

该用户从未签到

2

主题

24

帖子

21

积分

LV.1

Rank: 1

积分
21
QQ
发表于 2019-12-3 00:30:39 | 显示全部楼层
竟然还有零回复,给我消失
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表