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

    Vive Input Utility使用指(zhǐ)南(nán)

    2017/11/28      點擊:

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

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

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


    网站地图 正能量网-传播正能量弘扬主旋律-免费正能量网站www正能量-免费正能量网站www正能量下载在线观看官网