【VR】(一)Unity3d開發 VR使用手柄圓盤控制 人物移動(平移)

      網友投稿 1166 2025-03-31

      推薦閱讀

      CSDN主頁

      GitHub開源地址

      Unity3D插件分享

      簡書地址

      【VR】(一)Unity3d開發 VR使用手柄圓盤控制 人物移動(平移)

      我的個人博客

      QQ群:1040082875

      一、前言

      HTC vive手柄各個按鈕的響應事件,已實現的功能是按手柄上的原盤上下左右鍵移動,是平移,不是射線瞬移。這種方式在眼鏡里太暈了。

      二、代碼

      using UnityEngine; using System.Collections; public class Move : MonoBehaviour { ///

      /// 手柄位置 /// SteamVR_TrackedObject tracked; /// /// 玩家 /// public Transform player; /// /// 方向 /// public Transform dic; /// /// 速度 /// public float speed; void Awake() { //獲取手柄控制 tracked = GetComponent(); } // 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("按下手柄菜單鍵"); } } /// /// 根據在圓盤才按下的位置,返回一個角度值 /// /// /// /// 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

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel2010表格中怎么使用切片器?
      下一篇:聯想的OKR軟件的作用(聯想okr10)
      相關文章
      337p日本欧洲亚洲大胆艺术| 亚洲а∨天堂久久精品| 亚洲爆乳成av人在线视菜奈实| 亚洲福利视频网站| 亚洲AV无码久久精品色欲| 在线亚洲精品自拍| 中文字幕一精品亚洲无线一区| 在线观看亚洲天天一三视| 亚洲中久无码不卡永久在线观看| 色噜噜的亚洲男人的天堂| 亚洲爆乳无码精品AAA片蜜桃| 亚洲色偷偷色噜噜狠狠99网| 亚洲av日韩av无码| 亚洲AV色香蕉一区二区| 亚洲国产人成在线观看69网站 | ww亚洲ww在线观看国产| 亚洲AV无码精品色午夜果冻不卡| 亚洲老妈激情一区二区三区| 国产亚洲自拍一区| 亚洲五月午夜免费在线视频| 在线亚洲精品自拍| 亚洲av无码一区二区乱子伦as| 久久久久亚洲AV无码专区首| 精品亚洲永久免费精品| 五月天网站亚洲小说| 亚洲男人电影天堂| 99热亚洲色精品国产88| 亚洲欧美国产精品专区久久| 亚洲av无码成人影院一区| 国产亚洲Av综合人人澡精品| 亚洲偷自拍另类图片二区| 蜜桃传媒一区二区亚洲AV| 亚洲第一区精品日韩在线播放| 中文字幕第13亚洲另类| 久久精品国产亚洲av成人| 亚洲精品中文字幕麻豆| 亚洲欧美日韩中文二区| 亚洲片国产一区一级在线观看| 亚洲精品无码永久中文字幕| 老色鬼久久亚洲AV综合| 天天爽亚洲中文字幕|