备忘录:SteamVR2.0获取圆盘判断角度

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Valve.VR;

public class SetUIMenu_Chh : MonoBehaviour
{
    public SteamVR_Action_Boolean Menu = SteamVR_Input.GetAction("default", "Menu");
    public SteamVR_Action_Vector2 DiscTouch = SteamVR_Input.GetAction("default", "DiscTouch");
    public SteamVR_Action_Boolean DiscDown = SteamVR_Input.GetAction("default", "Teleport");
    public SteamVR_Action_Boolean LeftDiscDown = SteamVR_Input.GetAction("default", "Left");
    public SteamVR_Action_Boolean RightDiscDown = SteamVR_Input.GetAction("default", "Right");
    public SteamVR_Input_Sources hand;
    private Vector2 Mm;
    public RoboticArmRotate RoboticArmRotate;
    public RoboticArmType RoboticArmType = RoboticArmType.Arm01;
    private bool IsButtonMenu=false;
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        if (Menu[hand].stateDown)
        {
            IsButtonMenu = !IsButtonMenu;
        }
        if (DiscDown[hand].state)
        {
            Mm = DiscTouch[hand].axis;
            float mAngle = VectorAngle(new Vector2(1, 0), Mm);
            if (mAngle>=0&& mAngle<72)
            {
                Debug.Log("1");
            }
            else if (mAngle >= 72 && mAngle < 144)
            {
                Debug.Log("2");
            }
            else if (mAngle >= 144 && mAngle <= 180)
            {
                Debug.Log("3");
            }
            else if (mAngle >= -144 && mAngle <= -180)
            {
                Debug.Log("3");
            }
            else if (mAngle >= -144 && mAngle < -72)
            {
                Debug.Log("4");
            }
            else if (mAngle >= -72 && mAngle < 0)
            {
                Debug.Log("5");

            }
          
        }
    }
    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;
    }
    

参考原文链接https://blog.csdn.net/liuxiongtao_1124/article/details/51898613

你可能感兴趣的:(unity)