• Vive Input Utility使用指南

    2017/11/28      點擊:

    相信各位小夥(huǒ)伴們在使用SteamVR Unity Plugin的過程中應該都遇到過(guò)這樣的問題:獲取(qǔ)設備(bèi)很麻煩,設(shè)備在重啟後(hòu)indexID會改變從而(ér)導致設置好的左右手設備出現交錯;無法與(yǔ)UGUI的事件係統連接導致無法使(shǐ)用UGUI等等很多問題(tí)。

    一、簡介: 
            Vive Input Utility是(shì)一個(gè)基於SteamVR插(chā)件的開發工具。能讓開發者更方便(biàn)的控製Vive設備。我們同時(shí)也開發了在3D環境下能運用的鼠標指針方案,並適配Unity Event System。通過使用這個工具,開發者可以省下很(hěn)多用來管理Vive設備(bèi)的冗餘代碼。 
    二、目(mù)的: 
            Unity SteamVR的插件給開發者提供了一個C#的接口(kǒu)來和Vive設備交互。但在獲(huò)得(dé)控製器輸入狀態或者設備姿(zī)態會形成很多(duō)冗餘代碼(mǎ): 
                    不(bú)論控製器是否被連接,你都必(bì)須(xū)不斷從SteamVR_ControllerManager獲取正確的設備索引; 
                    定位SteamVR_ControllerManager也需(xū)要花很多功夫; 
            所(suǒ)以,我們的主要目標就是給開發者提供便利的接口並減少冗餘工作。 
    三、主(zhǔ)要特點: 
            使用靜態函數獲取設備(bèi)輸入(rù):按(àn)鍵輸出、手柄位置; 
            使用ViveRaycaster component實現3D鼠標指針,並適配Unity Event System; 
    四、靜態接口(kǒu): 
            獲取按鈕事件: 
                    原本(běn)要通過SteamVR腳本來找到設備; 
                   (見圖2) 
                    靜態(tài)類Vive Input提供了一(yī)個更簡潔的API; 
                   (見圖3) 
            監聽按鈕事件: 
                    ViveInput同樣(yàng)提供回調類型監聽器; 
                   (見圖4) 
            獲得追蹤pose: 
                    靜態類VivePose提供了獲得設備pose的API; 
                   (見(jiàn)圖5) 

    五、輔(fǔ)助組件: 
            Vive Pose Tracker 
                    類似於SteamVR_TrackedObject,但目(mù)標設備使用ViveRole.DeviceRole替代了device index 
                   (見圖6) 
            Pose Modifier 
                    這是一個pose tracker的追蹤效果(guǒ)腳(jiǎo)本(běn) 
                    實現抽(chōu)象類(lèi)PoseTracker.BasePoseModifier可以編寫自定義的追蹤效果。 
                    有(yǒu)無Pose Modifier對比(見圖7) 
                    有無Pose Modifier視(shì)頻(pín)效果(guǒ) 
                    https://vimeo.com/171724218 
                    https://vimeo.com/171724270 
            Vive射線器及射線方(fāng)法: 
                     Vive Raycaster是一個發送vive按鈕事件的射線事件腳本。 
                     通過結合Vive Pose Tracker和Vive Raycaster,你(nǐ)的控製器可以像一個3D鼠標一樣使用。 
                     Vive Raycaster必須和Raycast方法一起使用。(見圖8) 
                     比(bǐ)如,你可(kě)以像這樣布置(zhì)來和UGUI菜單交互。(見圖9) 
                    更(gèng)多的例子(見圖10):https://vimeo.com/169824408                               https://vimeo.com/169824438 
            事件係統處理(lǐ)器: 
                    你必須布置一個事件係統(tǒng)處理器去獲取由事件射線器發出的事件: 
                    在對象上增加事件處理器組件(jiàn)(從IEventSystemHandler派生出來) 
                    在對象或者子對(duì)象上增加可被射線觸發的組件(如Collider/Collider2D/Graphic) 
                    (見圖11) 
    今天的教程就到這邊結束了,下一篇會給大家帶(dài)來(lái)Vive Input Utility API接口的介紹。請大家關(guān)注。大家有什(shí)麽問題可以(yǐ)在樓下(xià)討論。 


    91网站入口_91视频导航_91短视频在线_91视频在线免费观看