SteamVR2.0 UGUI交互問題 三

上一篇文章說這時就會如何使用SteamVR 2.0的交互UGUI 。

很抱歉,仍然爲解決,已經有了思路,驗證中。不過看UGUI的源碼好頭大。

 

大概3、4個月之前,我就已經有這個問題了。不過沒有方向。

最近半個月才找到方向,公司瞎忙沒時間學。自己一個人看不下去,我太難了。

 

 

 

通過各種方式,我來找解決2.0  與UGUI 的交互方案。

UI加碰撞器❓ 

不可取。 按鈕還湊合,滾動條,滾動視圖沒法交互。

且 UI加碰撞器後,每次創建ui,都要調整一邊,甚至ui大小變換後,也要調整一次 ,絕對不是這樣的做法。

VRTK ❓

很抱歉來自官方解釋,不能用

商店其他的插件

插件使用低版本的SteamVR 用不了,白嫖了幾百塊(付費插件),不過給了很大方向。

 

VIVE Input Utility

 

同樣使用了低版本的SteamVR 用不了,(偷偷評論一下)

 

 

分析問題:

爲什麼vr 無法交互ugui,

輸入方式不同:  手柄,鼠標鍵盤。

檢測方式不同:手柄射線檢測,Camera.ScreenToViewportPoint(mousePosition)

 

 

網上搜索了一些 ugui的底層博客。學了下。

當我們創建任意一個UI元素時,unity都會自動創建一個 Canvs,與EventSystem 遊戲對象

 

同時掛載了,UGUI的腳本。

Canvas 對象   

Canvas  

Canvas Scaler 

GraphicRaycaster

 

 

 

EventSystem 對象

EventSytem 

StandaloneInputModule

BaseInput(這個需要運行時纔會被掛載)   

 

每一個都有其各自的作用。

簡易介紹。

EventSystem 更新輸入、射線檢測模塊。

GraphicRaycast  檢測圖形,是否在ui元素上。

StandaloneInputModule   PC、安卓、輸入設備管理   分發接口事件IPointerEnterHandler等。

其實還有一個 TouchInputModule ,用來管理安卓的輸入。  不過現在已經被整合到一起了。

 

上邊介紹了很多。

既然UGUI的功能瞭解。 VR 交互與PC交互有不同、共同點。修改源代碼就可以。

通過閱讀商店找的插件以及UGUI內核源碼。

Unity在做UGUI時,已經爲開發者預留了接口 類,用來拓展自己的功能。

繼承射線檢測、輸入檢測自定義就可以。

BaseInput也得改。

繼續挖坑,下篇文章介紹UGUI 底層的知識

 

鏈接

https://github.com/ExtendRealityLtd/VRTK.Documentation

VR GUI Input Module for Unity (HTC Vive) - wacki http://wacki.me/blog/2016/06/vr-gui-input-module-for-unity-htc-vive/

https://www.jianshu.com/p/b21278807514

wacki/Unity-VRInputModule https://github.com/wacki/Unity-VRInputModule

 

時間:2020年6月1日10點13分

VR可以交互UI了,雖然代碼不完善

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章