1. 程式人生 > >一款能讓Vive開發變得簡單的外掛——Vive Input Utility使用指南

一款能讓Vive開發變得簡單的外掛——Vive Input Utility使用指南

相信各位小夥伴們在使用SteamVR Unity Plugin的過程中應該都遇到過這樣的問題:獲取裝置很麻煩,裝置在重啟後indexID會改變從而導致設定好的左右手裝置出現交錯;無法與UGUI的事件系統連線導致無法使用UGUI等等很多問題。(見圖1) 
        官方推出Vive Input Utility Unity Plugin,解決了以上的一些問題,為大家的開發提供了很好的便利。大家可以在Unity AssetStore中下載到,https://www.assetstore.unity3d.com/cn/#!/content/64219。 
本外掛的聯絡郵箱為 [email protected]

,如果有問題可以通過這個郵箱反饋。 

我們會推出Vive Input Utility使用教程系列, 
第一篇:Vive Input Utility的使用指南 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1708&extra=page%3D1 
第二篇:Vive Input Utility API詳解 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1720&extra=page%3D1 
第三篇:Vive Input Utility手把手教程https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1728&extra=page%3D1 

一、簡介: 
        Vive Input Utility是一個基於SteamVR外掛的開發工具。能讓開發者更方便的控制Vive裝置。我們同時也開發了在3D環境下能運用的滑鼠指標方案,並適配Unity Event System。通過使用這個工具,開發者可以省下很多用來管理Vive裝置的冗餘程式碼。 

二、目的: 
        Unity SteamVR的外掛給開發者提供了一個C#的介面來和Vive裝置互動。但在獲得控制器輸入狀態或者裝置姿態會形成很多冗餘程式碼: 
                不論控制器是否被連線,你都必須不斷從SteamVR_ControllerManager獲取正確的裝置索引; 
                定位SteamVR_ControllerManager也需要花很多功夫; 
        所以,我們的主要目標就是給開發者提供便利的介面並減少冗餘工作。 

三、主要特點: 
        使用靜態函式獲取裝置輸入:按鍵輸出、手柄位置; 
        使用ViveRaycaster component實現3D滑鼠指標,並適配Unity Event System; 

四、靜態介面: 
        獲取按鈕事件: 
                原本要通過SteamVR指令碼來找到裝置; 
               (見圖2) 
                靜態類Vive Input提供了一個更簡潔的API; 
               (見圖3) 
        監聽按鈕事件: 
                ViveInput同樣提供回撥型別監聽器; 
               (見圖4) 
        獲得追蹤pose: 
                靜態類VivePose提供了獲得裝置pose的API; 
               (見圖5) 

五、輔助元件: 
        Vive Pose Tracker 
                類似於SteamVR_TrackedObject,但目標裝置使用ViveRole.DeviceRole替代了device index 
               (見圖6) 
        Pose Modifier 
                這是一個pose tracker的追蹤效果指令碼 
                實現抽象類PoseTracker.BasePoseModifier可以編寫自定義的追蹤效果。 
                有無Pose Modifier對比(見圖7) 
                有無Pose Modifier視訊效果 
                https://vimeo.com/171724218 
                https://vimeo.com/171724270 
        Vive射線器及射線方法: 
                 Vive Raycaster是一個傳送vive按鈕事件的射線事件指令碼。 
                 通過結合Vive Pose Tracker和Vive Raycaster,你的控制器可以像一個3D滑鼠一樣使用。 
                 Vive Raycaster必須和Raycast方法一起使用。(見圖8) 
                 比如,你可以像這樣佈置來和UGUI選單互動。(見圖9) 
                更多的例子(見圖10):https://vimeo.com/169824408                               https://vimeo.com/169824438 
        事件系統處理器: 
                你必須佈置一個事件系統處理器去獲取由事件射線器發出的事件: 
                在物件上增加事件處理器元件(從IEventSystemHandler派生出來) 
                在物件或者子物件上增加可被射線觸發的元件(如Collider/Collider2D/Graphic) 
                (見圖11) 

今天的教程就到這邊結束了,下一篇會給大家帶來Vive Input Utility API介面的介紹。請大家關注。大家有什麼問題可以在樓下討論。 


本帖最後由 Shengjie Zhang 於 2016-8-30 10:27 編輯 



本帖最後由 Shengjie Zhang 於 2016-8-31 10:20 編輯 


 本帖最後由 Shengjie Zhang 於 2016-9-1 10:59 編輯