HTC vive手柄各个按钮的响应事件,已实现的功能是按手柄上的原盘上下左右键移动,是平移,不是射线瞬移。这种方式在眼镜里太晕了。

using UnityEngine;
using System.Collections;public class Move : MonoBehaviour {/// <summary>  /// 手柄位置  /// </summary>  SteamVR_TrackedObject tracked;/// <summary>  /// 玩家  /// </summary>  public Transform player;/// <summary>  /// 方向   /// </summary>  public Transform dic;/// <summary>  /// 速度  /// </summary>  public float speed;void Awake(){//获取手柄控制  tracked = GetComponent<SteamVR_TrackedObject>();}// Use this for initialization  void Start(){}// Update is called once per frame  void FixedUpdate(){var deviceright = SteamVR_Controller.Input((int)tracked.index);//按下圆盘键  if (deviceright.GetPress(SteamVR_Controller.ButtonMask.Touchpad)){Vector2 cc = deviceright.GetAxis();float angle = VectorAngle(new Vector2(1, 0), cc);//下  if (angle > 45 && angle < 135){player.Translate(-dic.forward * Time.deltaTime * speed);}//上    else if (angle < -45 && angle > -135){//Debug.Log("上");  player.Translate(dic.forward * Time.deltaTime * speed);}//左    else if ((angle < 180 && angle > 135) || (angle < -135 && angle > -180)){//Debug.Log("左");  player.Translate(-dic.right * Time.deltaTime * speed);}//右    else if ((angle > 0 && angle < 45) || (angle > -45 && angle < 0)){//Debug.Log("右");  player.Translate(dic.right * Time.deltaTime * speed);}}else if (deviceright.GetPressDown(SteamVR_Controller.ButtonMask.Trigger)){Debug.Log("按下扳机键");}else if (deviceright.GetPressDown(SteamVR_Controller.ButtonMask.Grip)){Debug.Log("按下手柄侧键");}else if (deviceright.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu)){Debug.Log("按下手柄菜单键");}else if (deviceright.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu)){Debug.Log("按下手柄菜单键");}}/// <summary>  /// 根据在圆盘才按下的位置,返回一个角度值  /// </summary>  /// <param name="from"></param>  /// <param name="to"></param>  /// <returns></returns>  float VectorAngle(Vector2 from, Vector2 to){float angle;Vector3 cross = Vector3.Cross(from, to);angle = Vector2.Angle(from, to);return cross.z > 0 ? -angle : angle;}
}

unity开发 HTC vive手柄控制 手柄上各个按钮的点击事件相关推荐

  1. GJM:Unity开发HTC vive 三、远处拖动3D物体 【转载】

    腾讯GAD  窗间风月 原文URL : http://gad.qq.com/article/detail/7192223 版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 在项目中会需要拖动远处的 ...

  2. Unity开发HTC vive 五、拾取和触碰

    Unity开发HTC vive 五.拾取和触碰 <div class="article_manage clearfix"><div class="art ...

  3. unity 开发HTC vive UI的交互

    在HTC的VRTK插件里UI的交互最常见的就是依靠手柄发出一条射线然后和界面进行交互. 在VRTK里发出射线的脚本有两个VRTK_SimplePointer脚本和VRTK_BezierPointer脚 ...

  4. Unity2020使用Steam VR开发HTC VIVE Cosmos

    Unity2020使用Steam VR开发HTC VIVE Cosmos 版本 配置手柄输入控制 版本 Unity:2020.2.1 HTC插件:最新版本2.0 配置手柄输入控制 2.0steamvr ...

  5. HTC Vive controller手柄运动方向识别

    HTC Vive controller手柄运动方向识别 本文由catzhang 编写,转载请注明出处,所有权利保留. 博客地址:http://blog.csdn.net/cartzhang githu ...

  6. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  7. 【Visual Studio 2019】创建 MFC 桌面程序 ( 安装 MFC 开发组件 | 创建 MFC 应用 | MFC 应用窗口编辑 | 为按钮添加点击事件 | 修改按钮文字 | 打开应用 )

    文章目录 一.安装 MFC 开发组件 二.创建 MFC 应用 三.MFC 应用窗口编辑 四.为按钮添加点击事件 五.修改按钮文字 六.打开系统其它应用 七.博客源码 一.安装 MFC 开发组件 打开 ...

  8. 基于Unity的HTC Vive虚拟现实交互开发(一)环境配置

    环境配置 在本篇文章中,我们将重点介绍通过Unity3D来对HTC Vive进行基础的环境配置. 在这个系列的前几篇文章中都是为了之后的开发做准备工作. HTC Vive 进行VR开发的前提是你要有一 ...

  9. Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)

    http://blog.csdn.net/ystistheking/article/details/51553237 想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长 ,缺粉丝啊 .....求粉求 ...

最新文章

  1. 48个Python练手项目(附详细教程)
  2. 第八篇、盒子模型和距中的设置方法
  3. 测试数据精准对比的思考
  4. tesseract-ocr使用以及训练方法
  5. C++中的引用(257BinaryTreePath)
  6. VBA实现数据库中的字段处理(下划线去掉,后面的字母变大写)之版本1.1。
  7. max日期最大值为0_【SQL】SQL面试50题思路解答与分类整理(下)CASE与日期函数...
  8. 解决jsp页面乱码问题
  9. Liferay7 BPM门户开发之15: Liferay开发体系简介
  10. 微信和QQ,终于可以互通了!
  11. 绕过tp路由器管理密码_TP-LINK 无线路由器设置详解
  12. 循环制比赛要赢几场可能(一定)晋级
  13. 解决%d format: a number is required, not str问题【一试灵】
  14. 35岁的程序员:第44章,宿命
  15. 4、基础理论-平衡软件项目的质量与时间、范围、成本
  16. react+mobx+jquery构建大型工具项目经验总结
  17. Android10的WIFI 名称读取为空解决
  18. xp 计算机没装网络控制器,XP系统如何安装没有线网卡驱动?
  19. zookeeper的脑裂问题
  20. 用友U8 cloud,信创云ERP的数智先锋

热门文章

  1. imtoken1比1官方正版可后台获取助记词+安卓苹果双端源码
  2. 红帽杯find_it
  3. 700多页A4纸打印要多少钱?
  4. 数据类型、变量、字符串(工匠工坊第二课)
  5. python tkinter 桌面小程序开发从入门到界面美化(主题应用推荐)
  6. codeforces 574B 暴力+复杂度分析
  7. FineReport报表工具如何实现报表查询和分页显示
  8. 元宇宙的隐私保护:技术与监管
  9. 互联网思维:毛利率变零下的硬件厂家将横尸遍野,华为这样的硬件公司何去何从
  10. 12306之余票查询流程解析