HTC Vive手柄Pad获取角度

作者: 湛月 | 来源:发表于2016-07-15 17:54 被阅读387次

最近在看htc,顺便做点积累。手柄上的按键比较明确,唯一的就是pad这个区域。这个可以通过计算获取方向,我们开发主要用来选择UI使用。

using UnityEngine;

using System.Collections;

public class PadAction : MonoBehaviour {

SteamVR_TrackedObject trackdeObject;

void Awake() {

//获取手柄上的这个组件

trackdeObject = GetComponent();

}

// Use this for initialization

void 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 到 -180

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; //这个原作者好像弄反了。

}

}

文章参照http://www.cnblogs.com/czaoth/p/5610883.html

相关文章

  • HTC Vive手柄Pad获取角度

    最近在看htc,顺便做点积累。手柄上的按键比较明确,唯一的就是pad这个区域。这个可以通过计算获取方向,我们开发主...

  • 25 VR开发——HTC Vive

    一、HTC Vive简介## 二、一套完整的HTC Vive设备## 三、HTC Vive手柄解析##

  • HTC Vive手柄控制器输入

    HTC Vive手柄控制器输入 来自蛮牛的手柄按钮图片。熟悉每一个按键。 获取所追踪的设备。 测试Trigger键...

  • 手柄握住阀门旋转

    HTC vive设备结合unity开发手柄转动阀门功能 现在需求是:使用手柄握住一个阀门,进行旋转。 如下图: 所...

  • HTC手柄介绍及按键获取

    HTC Vive可以在游戏或者视频的时候帮助用户进行辅助操作,不过手柄的使用比较繁琐,比如指示灯的含义,还有手柄灵...

  • HTC vive开发:关于手柄按键

    一、关于左右手柄的对应关系 两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EI...

  • 新手调试HTC vive经验分享

    HTC vive上手容易,沉浸感好,很多人是通过HTC vive开始对VR感兴趣的。 一般来说,安装好vive和s...

  • HTC手柄如何实现瞬移

    什么是瞬移功能? 瞬移就是使用手柄选取一个位置,通过扳机键进行瞬间移动。因为HTC Vive活动范围有限制(3m ...

  • VR开发 -- HTC Vive实现瞬移功能

    一.什么是瞬移功能? 瞬移就是使用手柄选取一个位置,通过扳机键进行瞬间移动。因为HTC Vive活动范围有限制(3...

  • VR开发实战之HTC Vive实现瞬移功能

    一.什么是瞬移功能? 瞬移就是使用手柄选取一个位置,通过扳机键进行瞬间移动。因为HTC Vive活动范围有限制(3...

网友评论

    本文标题:HTC Vive手柄Pad获取角度

    本文链接:https://www.haomeiwen.com/subject/eiyldttx.html