按鈕讓使用者能立即觸發動作。 它是混合實境中最基礎的組成部分之一,提供令人滿意且可靠的按鈕互動,是高品質混合實境體驗的關鍵。 MRTK 提供兩類按鈕預製件:基於 Canvas 與非基於 Canvas。 兩種配置都使用 PressableButton script,這是擴展的子類別 StatefulInteractable ,包含按鈕特定的行為。
範例場景
如果你使用的是開發模板專案,有幾個範例場景可以展示可用的按鈕預製件。
CanvasUITearSheet.unity 顯示所有可用的 Canvas 基礎按鈕預製變體。
CanvasExample.unity 展示了一些使用 Canvas 元件建立較大版面的範例。
預製件
基於畫布 的按鈕靈活且可設定,且可調整大小至任意尺寸或比例。 因此,僅提供少數按鈕預製件。
- EmptyButton 提供可按壓的表面/前面板、全息背板和發光效果。 沒有文字、圖示、標籤或其他內容。 這樣可以建立更抽象的按鈕式控制,作為這種預製件的變體,而不干擾文字或圖示內容。
- ActionButton 是一個簡單的按鈕,包含圖示、文字和標籤。 這些獨立元件可以啟用或停用,佈局系統也會相應調整。
按鈕還可加入其他增強功能,例如撥動開關指示器。 那些不打算隨前板移動的功能,應該裝在背板元件上。
結構
ActionButton 的不同部分可以開啟或關閉,以自訂按鈕的外觀和行為。 我們分析了兩種不同的配置,展示按鈕預製件的不同部分。 這些截圖中看不到「背光」,因為按鈕沒有被積極按下。
首先,是一個較大的配置,主文字物件處於啟用狀態,並使用內嵌樣式同時顯示標題與副台詞。
第二種是較小的設定,啟用時顯示圖示下方動作描述。 主要的 Text 物件已被停用。
PressableButton 級別
該 PressableButton 類別衍生 StatefulInteractable 自按鈕,新增並被覆寫的函式。 在 Inspector 裡,你可以設定與體積按壓相關的設定,以及所有其他可從 S 設定的設定。StatefulInteractable
用按鈕建構介面
在建立多按鈕的選單或 UI 面板時,建議使用共用的背板幾何體。 透過共用背板,我們可以降低視覺雜訊並提升可用性。 以下是將按鈕擺放在共用背板上的一些範例。
附加組件
供參考,以下是負責處理按鈕視覺與功能面向的額外元件:
- 當按鈕被選中時觀察到的視覺前板脈衝由元件
InteractablePulse處理。 - 按鈕圖示可透過
FontIconSelector設定為 MRTK 圖示。 -
RectTransformColliderFitterA 也可以選擇性地用於 Canvas 按鈕,以使其符合BoxColliderRectTransform。 這個元件預設是為了效能而被關閉的。