美文网首页
VIVE手柄移动旋转物体脚本

VIVE手柄移动旋转物体脚本

作者: 湛月 | 来源:发表于2018-04-12 14:58 被阅读22次

    using UnityEngine;

    using System.Collections;

    public class HandelButtonRight : MonoBehaviour

    {

     #region Value File 

     [SerializeField] 

     SteamVR_TrackedObject trackedObj; /// /// 想要移动的物体

        /// [SerializeField]    Transform moveObj;   

     //当前位置   

     float currentPos = 0;    

    //距离差    

    float disCurrent = 0;    

    //Y轴距当前位置   

     float currentPosY = 0;   

     //距离差   

     float disCurrentY = 0;   

     [Tooltip("设置旋转角度,默认为100")]    public float setRotateAngle = 100.0f;    [Tooltip("设置上下移动距离,默认为0.5")]    public float setMoveDistance = 0.5f;   

     #endregion    

    #region MonoMathod    

    // Use this for initialization    

    void Start()    {    }   

     // Update is called once per frame    

    void Update()    {        

    currentPos = this.transform.position.x; 

           currentPosY = this.transform.position.y;   

         var decive = SteamVR_Controller.Input((int)trackedObj.index);  

          if (decive.GetPress(SteamVR_Controller.ButtonMask.Trigger))  

          {            if (disCurrent > 0.001f)            {                moveObj.Rotate(-Vector3.up * Time.deltaTime * setRotateAngle);            }            else if (disCurrent == 0)            {                return;            }            else if (disCurrent < -0.001f)            {                moveObj.Rotate(Vector3.up * Time.deltaTime * setRotateAngle);            }            //----------------------            if (disCurrentY > 0.005f)            {                moveObj.Translate(Vector3.up * Time.deltaTime * setMoveDistance);            }            else if (disCurrentY == 0)            {                return;            }            else if (disCurrentY < -0.005f)            {                moveObj.Translate(-Vector3.up * Time.deltaTime * setMoveDistance);            }        }    }    void FixedUpdate()    {        disCurrent = this.transform.position.x - currentPos;        disCurrentY = this.transform.position.y - currentPosY;    }    void Awake()    {        trackedObj = GetComponent();

        }

        #endregion

    }

    相关文章

      网友评论

          本文标题:VIVE手柄移动旋转物体脚本

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