最近在看htc先壕,順便做點積累嗡害。手柄上的按鍵比較明確,唯一的就是pad這個區(qū)域兰怠。這個可以通過計算獲取方向梦鉴,我們開發(fā)主要用來選擇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()會檢測返回一個二位向量肥橙,可用角度劃分圓盤按鍵數(shù)量
//這個函數(shù)輸入兩個二維向量會返回一個夾角 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; //這個原作者好像弄反了。
}
}