VR開發(fā)--初步了解SteamVR

1、360°旋轉(zhuǎn)視角

1.png

添加其余的視角-擴張

2.png

添加好的層級關(guān)系:位置-頭部-眼睛-耳朵

3.png

2、集成手柄

創(chuàng)建游戲?qū)ο螅謩e為左右手,添加腳本:
1、SteamVR_ControllerManager


5.png

2、SteamVR_TrackedObject 此類是根據(jù)Index來獲取跟蹤信息并反饋到Unity中。
注:修改Index為none


4.png

3、SteamVR_GameView
這個腳本主要負責(zé)將游戲畫面繪制到窗口上去
Paste_Image.png

4、代碼獲取手柄對象:

//1獲取到某個按鍵的狀態(tài)
var device = SteamVR_Controller.Input(uint);
device.GetTouchDown(SteamVR_Controller.ButtonMask)

//2獲取當(dāng)前所有的按鍵狀態(tài)
var system = OpenVR.System;
system.GetControllerState(uint, ref VRControllerState_t))

5、手柄震動

public void TriggerHapticPulse(ushort durationMicroSec = 1500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
{
  var vr = OpenVR.System;
  if (vr != null)
  {
    var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;
    vr .TriggerHapticPulse(ControllerIndex, axisId, (char)durationMicroSec);
  }
}
或者可以
var device = SteamVR_Controller.Input(uint);
device. TriggerHapticPulse();

6、SteamVR_Controller
控制器的相關(guān)信息都包含在SteamVR_Controller這個腳本之中
而這個腳本是被SteamVR_Render中的Update函數(shù)調(diào)用,從而循環(huán)獲得手柄相關(guān)信息

6

當(dāng)我們需要使用這些事件時直接監(jiān)聽這些事件即可。


6.png

ButtonMask類:手柄各按鍵的名稱
Input()函數(shù):根據(jù)Index初始化Device[]數(shù)組,并實例化所有16個Device。
Device類:最重要的類,封裝了跟蹤設(shè)備的全部信息。


Device類包含:

15.png
16.png

GetAxis:獲取手柄上圓盤坐標(biāo)或Trigger的行程值(0-1),函數(shù)默認參數(shù)是手柄上的Touchpad。共有5個AxisId參數(shù)可選,0是TouchPad,1是Trigger,2,3,4應(yīng)該是沒有用的,且此函數(shù)只接受EVRButtonId類參數(shù)而不接受ButtonMask。
TriggerHapticPulse:手柄震動控制函數(shù),參數(shù)名稱解釋的是時間,默認500,但實際上控制的是震動的強度。默認AxisId是EVRButtonId_touchpad,選擇其他EVRButtonId沒用(等價參數(shù)axis0可以),其會調(diào)用OpenVR中的同名函數(shù)。參數(shù)超過4000會無效,導(dǎo)致震動不觸發(fā)??梢酝ㄟ^協(xié)程的while(true)+waitforsecond控制震動間隔,通過stop協(xié)程控制震動結(jié)束。同上4操作。

17.png

GetHairTrigger
GetHairTriggerDown:定義為有false轉(zhuǎn)至true的過程,判斷先前狀態(tài)和當(dāng)前狀態(tài)。
GetHairTriggerUp:定義為有true轉(zhuǎn)至false的過程,判斷先前狀態(tài)和當(dāng)前狀態(tài)。
HairTrigger是檢測當(dāng)你握住扳手超過一個固定值(0.1,可調(diào))時即觸發(fā)的狀態(tài)。利用Trigger的變化量來做一個功能的觸發(fā)

7、SteamVR_LaserPoint

主要實現(xiàn)手柄當(dāng)前指向物體與離開物體的兩個方法事件。使用射線檢測

7

3、手柄渲染

SteamVR_RenderModel:該組件用于渲染手柄的模型,并且跟蹤手柄的位置

7.png

4、活動空間(即玩家的活動空間)

SteamVR_PlayArea
用于顯示游玩區(qū)域

8.png

5、HTC Vive參數(shù)

HTC vive
參數(shù)配置:
  分辨率:單眼 1200 x 1080 的分辨率
  刷新率:最高可達 90hz
  位置追蹤范圍:4.5m x 4.5m
  其他配置:配套的帶有位置追蹤的游戲控制器等

推薦電腦配置:
  處理器:Intel i5-4590/AMD FX 8350同等或更高配置
  內(nèi)存:4GB及以上
  顯卡:NVIDIA GTX970/AMD R9290同等或更高配置
  系統(tǒng):windows 7 SP1 或更高版本
  視頻輸出:HDMI 1.4或者DisplayPort 1.2或更高版本
  USB接口:1 x USB 2.0 或更高版本的端口

游戲區(qū)域要求:
  空間定位:空間最小為 2 米 x 1.5 米 (6 英尺 6 英寸 x 5 英尺)
       基站間最大距離為 5 米 (16 英尺)
  站立/坐立:無最低空間要求

6、參考:

http://www.itdecent.cn/p/8cce89d2aef3

一個人的路需要更多人的陪伴:歡迎加群: 134688909 一起交流,分享心得,獲取項目資源。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • This article is a record of my journey to learn Game Deve...
    蔡子聰閱讀 4,118評論 0 9
  • VRTK是由一些大神對SteamVR進行一定的優(yōu)化后封裝出來的便捷快速VR開發(fā)工具,下面一步一步來了解這個神插件。...
    砍了那只鴨閱讀 7,452評論 3 15
  • usingSystem.Collections; usingSystem.Collections.Generic;...
    胤醚貔貅閱讀 1,726評論 0 0
  • 利說:“決定要離開湖南了,回想一下在這里稀里糊涂過的這些年。確實有些不舍,還有很多牽掛,最近發(fā)生了很多事情,我也承...
    忘了你z亡了我閱讀 416評論 0 1

友情鏈接更多精彩內(nèi)容