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

    Vive Input Utility使用指南

    2017/11/28      點(diǎn)擊:

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

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

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


    91影视免费版下载-91麻豆国产福利精品-91麻豆精品一二三区在线-国产91系列视频在线观看