• Vive Input Utility使用指南

    2017/11/28      點擊:

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

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

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


    密桃直播-密桃直播手机版下载-蜜桃直播app下载安装-蜜桃直播官方版下载