• 您的(de)位置:首頁 > 新聞動態 > HTC

    Vive Input Utility使用指南

    2017/11/28      點擊:

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

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

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


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