unity畢設之使用VRTK實作手柄發射射線和漫游功能
通過學習VRTK自帶新案例【002-Pointers StraightPointer】、【003-Pointers BezierPointers】、【004-Locomotio Teleporting】,實作了我前期需要的功能,
【002-Pointers StraightPointer】案例說明
在該場景中,你觸摸觸摸板后出現一條直線,按下觸摸板放開后會對射線觸碰到的物體進行選擇,可以看到物體的邊框顏色有所變化,同時在unity控制臺會列印出所選擇的物體的名字、手柄與物體之間的距離及射線頂端在物體上的位置,
【003-Pointers BezierPointers】案例說明
在該場景,你觸摸觸摸板后,手柄發射一條曲線,按下并釋放觸摸板進行選擇,可以看到場景中有三個選項圖塊,選擇左邊的圖塊可以將射線變為線性的,選擇右邊的可以將射線樣式變為自定義的樣式,在該場景中自定義的樣式為將射線頂端與物體接觸后的樣式變為光環,選擇中間的圖塊可以將樣式設定成貝塞爾曲線的默認樣式
【004-Locomotio Teleporting】案例說明
在該場景,按下觸摸板發射射線,松開可以傳送到指標游標的位置,可以傳送方塊到被網格碰撞器包圍的石頭上,高度不受限制,同時通過腳本對灰色方塊進行限制,使其不能成為傳送地點,
可以自行體驗學習,
為了方便后期互動,個人開發習慣:左手柄發射曲線瞬移,右手柄發射直線互動,之前我已經搭建好了VR開發的基本環境,不懂的可以看我之前的文章,下面開發實作發射射線和瞬移,
1、在【VRTK_Scripts】下添加空物體命名為【PlayArea】,為其添加VRTK組件【VRTK_DashTeleport】(個人比較喜歡用這個,實作傳送的腳本很多,自行學習使用):

2、為有手柄添加組件【VRTK_ControllerEvents】(監聽手柄事件的腳本)【VRTK_StraightPointerRenderer】(發射直線的的腳本,可以更改射線樣式和顏色)【VRTK_Pointer】(渲染射線指標的)將本物體的拖入,如下圖:

3、同理,為左手柄添加【VRTK_ControllerEvents】【VRTK_BezierPointerRenderer】(這個是發射曲線的腳本)【VRTK_Pointer】

這里,為了指標游標點更好看一點可以如下圖所示設定:

也可以自己學習制作自己喜歡的樣式,至此完成基本配置,
功能測驗
有手柄發射射線漫游,這里使用的是模擬器,按住鍵盤上【Q】發射射線,松開瞬移:

左手柄發射射線漫游:

基本功能已經實作了,后面再完善吧,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/275499.html
標籤:其他
