HTC VIVE開發教程(三)

2021-07-23 02:24:01 字數 1985 閱讀 8367

在這一節,我介紹的主要內容有

在steamvr外掛程式的prefabs資料夾下面有三個預製體,camerarig是相機預製體,使用時直接將這個預製相機作為主相機拖入場景中,我們就能以第一人稱看到vr頭盔裡面的內容。status是通過overlay顯示一些狀態資訊的預製體。steamvr是渲染核心預製體,不需要手動新增,會自動建立。下面我就來詳細講解這三個預製體。

![這裡寫描述](

我們可以看到,在camerarig下面有乙個左右手柄的controller和乙個頭部的camera

在手柄controller和頭部的camera上都有乙個steam vr_tracked object指令碼,這是用來跟蹤裝置位置的指令碼。

void onenable()

steamvr_utils.event.listen("new_poses", onnewposes); //監聽new_poses通知

}

我們在前面分析steamvr渲染指令碼steamvr_render時提到過在渲染迴圈裡面有不斷獲取裝置位置,並傳送通知的邏輯,steamvr_utils.event.send(「new_poses」, poses),可以看到在steam vr_tracked指令碼裡面有註冊這個監聽,所以這個指令碼可以不斷的獲取裝置位置,同時更新在顯示畫面中的位置。我們在來看看onnewposes這個方法

private void onnewposes(params object args)

else

}

onnewposes的方法就是設定裝置的transform,使得裝置的實際空間中的位置與在頭顯畫面中看到的位置一致。

camera上面還有一些指令碼,steamvr_camera.cssteamvr_cameraflip.cs這兩個指令碼作用都是對相機渲染出來的影象進行一定的處理變換。steamvr_gameview.cs是用來顯示執行vr時pc上面的伴隨視窗的。這裡面的**都不是太複雜,就不一一介紹了。

status預製體的用處並不是很大,它的下面有6個元件,我來分別說一說這6個元件的作用

calibration:這個元件用在vive進**間設定時進行相應的提示

_stats:這個是顯示統計資訊的乙個元件(目前僅顯示幀率和丟幀數)。它上面還有乙個camera,通過它將guitext渲染到overlay的紋理上,通過overlay將文字資訊顯示出來。它的顯示效果如下圖

trackinglost:這個是失去頭顯定位後給的文字提示

trackingrestored:這個是恢復頭顯定位後的提示資訊

steaminitfailure:這個是steam初始化失敗後的文字提示

overlay:這個控制項的作用是是乙個2d的ui介面疊加到場景上面顯示出來

HTC vive開發 關於手柄按鍵

一 關於左右手柄的對應關係 二 手柄按鍵 1 菜單鍵 6 系統鍵 按下後手柄斷開連線,再次按下手柄再次連線上 7 扳機鍵 8 握持鍵 9 觸控板鍵 1 點按 按鍵監聽方式一 steamvr的方式,封裝了openvr 通過device.getpressdown getpressup getpress獲...

前端開發教程三

盒子模型從內到外的順序 內容 內邊距 邊框 外邊距 content padding border margin盒子模型計算公式 內邊距 寬 高 邊框 盒子模型真正的大小 作用 內容到邊框之間的距離 特性 內邊距是控制盒子模型大小的 格式 padding 10px 內邊距 上下左右四個方向 paddi...

HTC Vive開發筆記之SteamVR外掛程式整合

重要元件 steamvr camera vr攝像機,主要功能是將unity攝像機的畫面進行變化,形成vive中的成像畫面 使用方法 l 在任乙個攝像機上增加指令碼 l 點選expand按鈕 完成以上操作後,原本的攝像機會變成如下結構 l origin 位置 l head 頭部 l eye 眼睛 l ...