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

    Vive Input Utility使用(yòng)指南

    2017/11/28      點擊:

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

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

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


    自愉色色,亚洲色孩,jk无遮拦,日日夜夜7799天天综合,999夜夜,7799天天综合天天综合网精品视频,日日夜夜精品视频7799,天天综合7799精品影视