天天看點

Unity+MRTK(1):實作常見空間互動Unity中模拟輸入互動抓取和移動對象精确移動或旋轉對象(邊界控制)使對象響應輸入事件添加視覺回報添加音頻回報添加HoloLens 2 樣式按鈕預制件實作對象跟随使對象始終朝向自己

内容來自官方文檔

作業系統:Win10

Unity版本:2019.4

MRTK版本:2.4.0

主要内容

  • Unity中模拟輸入互動
  • 抓取和移動對象
  • 精确移動或旋轉對象(邊界控制)
  • 使對象響應輸入事件
  • 添加視覺回報
  • 添加音頻回報
  • 添加HoloLens 2 樣式按鈕預制件
  • 實作對象跟随
  • 使對象始終朝向自己

注意:需要的腳本可以通過在Assets檔案夾搜尋找到

Unity+MRTK(1):實作常見空間互動Unity中模拟輸入互動抓取和移動對象精确移動或旋轉對象(邊界控制)使對象響應輸入事件添加視覺回報添加音頻回報添加HoloLens 2 樣式按鈕預制件實作對象跟随使對象始終朝向自己

Unity中模拟輸入互動

MRTK 支援編輯器中的輸入模拟。 單擊 Unity 的播放按鈕以運作場景,然後使用以下按鍵來模拟輸入:

  • 按 W、A、S、D 鍵可移動相機。
  • 在按住滑鼠右鍵的同時移動滑鼠可以四處浏覽。
  • 按空格鍵(右手)或左 Shift 鍵(左手)以顯示模拟雙手
  • 按 T 或 Y 鍵以将模拟雙手保持在視野中
  • 按 Q 或 E(水準)/R 或 F(垂直)來旋轉模拟雙手

抓取和移動對象

附加

ObjectManipulator.cs

(支援雙手縮放旋轉) 和

NearInteractionGrabbable.cs

腳本,使對象可抓取 ,對象需要有

Box Collider

元件(元件中的Material屬性選擇Manipulator Material)。

在 MRTK 文檔中詳細了解對象處理程式

精确移動或旋轉對象(邊界控制)

BoundsControl.cs

配置設定到某個對象以使用邊界框(用于縮放和旋轉對象的界面)。

在 MRTK 文檔中詳細了解邊界控制

使對象響應輸入事件

PointerHandler.cs

配置設定到某個對象。 在檢查器中,可使用事件

OnPointerDown()

OnPointerUp()

OnPointerClicked()

OnPointerDragged()

。若要在腳本中使用這些事件,請實作

IMixedRealityPointerHandler

在 MRTK 文檔中詳細了解輸入系統

添加視覺回報

  1. Interactable.cs

    配置設定到某個對象。可以實作觸發(選中、抓取等)時變色。

在 MRTK 文檔中詳細了解 Interactable

  1. MRTK 标準着色器

建立一個Material,Shader屬性選擇Mixed Reality Toolkit>Standard。添加到對象上可以實作光标經過對象表面時有高亮。

在 MRTK 文檔中詳細了解 MRTK 标準着色器

添加音頻回報

将 AudioSource 添加到某個對象。 然後,在公開輸入事件的腳本(例如

Interactable.cs

PointerHandler.cs

)中,将帶有 AudioSource 的對象配置設定到該事件,并選擇

AudioSource.PlayOneShot()

。 可以使用自己的音頻剪輯,或從 MRTK 的音頻資産中進行選擇。

添加HoloLens 2 樣式按鈕預制件

搜尋pressableButton即可找到,拖入場景即可使用,自帶選中效果,有Interactable.cs,可以自定義觸發事件。

在 MRTK 文檔中詳細了解按鈕預制件

實作對象跟随

RadialView.cs

Follow.cs

腳本配置設定到某個對象 。此腳本是Solver腳本系列的一部分。會自動添加

SolverHandler.cs

。可以指定最小/最大距離和最小/最大視圖角度。 以下示例示範如何在 0.4 到 0.8 米範圍内以 15° 的視圖角度定位對象。

在 MRTK 文檔中詳細了解Solvers

使對象始終朝向自己

Billboard.cs

腳本配置設定到某個對象。不管你處于哪個位置,該對象都會朝向你。可以指定樞軸選項。