共用方式為


UnityUI 工具 - MRTK3

UnityUI 可能不是第一個混合實境開發人員在建立 3D 使用者介面時所考慮的工具。 但是,使用一些協助程式元件和公用程式,就可以在 UnityUI 中建立美觀且彈性的 3D 使用者介面。

Unity UI 範例按鈕和滑杆

提示

撰寫 UnityUI 時,很容易就能建立效能瓶頸。 建立複雜的 UnityUI 配置之前,建議您先閱讀本 教學課程

範例

如需針對 UnityUI 建置的各種元件示範,請參閱UnityUI範例

UI 行為元件

下列元件有助於轉譯 UI,但看不到 圖形 元件。

ScaleMeshEffect

在 UnityUI 元件上 unity_ObjectToWorld ,矩陣 (或 UNITY_MATRIX_M URP) 不是圖形元件所在的本機轉換矩陣,而是其父 Canvas 的轉換矩陣。 圖形工具內的許多著色器效果都需要知道物件縮放比例。 為了解決此問題, ScaleMeshEffect.cs 會在 UI 網格建構期間將縮放資訊儲存到 UV 通道屬性中。

提示

需要 ScaleMeshEffect.cs 時,圖形工具內的Canvas 或 CanvasRenderer將會提示新增ScaleMeshEffect.cs

RectMask2DFast

UnityUI 具有稱為 RectMask2D的內建元件。 此元件通常用來遮罩較大區域的小型區段。 遮罩許多物件時,此程式可能需要相當長的時間,才能將 CPU 上的物件擷取。 為避免此瓶頸,圖形工具組含 RectMask2DFast 元件。

RectMask2DFast 的運作方式 RectMask2D 與 和 相同,是建議的取代專案。 如果您在新增或移除物件 RectMask2DFast 之後遇到遮罩不會更新的問題,您可能需要手動叫用更新,如下所示:

myRectMask2DFast.ForceClip = true;

所有 圖形工具/畫布/ 著色器及 圖形工具/標準畫布 著色器都支援 RectMask2DRectMask2DFastRoundedRectMask2D

注意

圖形工具/畫布/著色器和圖形工具/標準畫布著色器不支援或 上的 RectMask2DSoftness屬性RectMask2DFast.

RoundedRectMask2D

RoundedRectMask2D 衍生自 RectMask2DFast ,並類似地運作。 唯一的差別在於 RoundedRectMask2D 包含圓角圓角的圓角半徑值。 您可以針對所有角落或每個角落個別選取此半徑。

具有兩個影像的 RoundedRectMask2D 範例

注意

資料實例必須由使用者控制。 亦即共用資料可能會受到 RoundedRectMask2D 影響。

UI 圖形元件

下列 圖形 元件有助於將 3D 維度新增至 Canvas。

CanvasElementRoundedRect

此元件會以程式方式產生 3D 圓角矩形網格,然後指派給 Canvas 頂點資料流程。 此元件通常用來使用 圖形工具/畫布/背板 著色器來產生背板網格。

CanvasElementRoundedRect 範例背板

CanvasElementBeveledRect

就像 一樣 CanvasElementRoundedRect ,此元件會以程式方式產生 3D 圓角矩形,但具有斜面邊緣。 此元件通常用來使用 圖形工具/畫布/斜面 著色器來產生背板網格。

CanvasElementBeveledRect 範例

CanvasElementMesh

Unity 的 MeshRenderer 元件可用來在 UnityUI 內顯示 3D 網格,但不會遵守 UnityUI 提供的一些版面配置功能。 若要解決這些配置問題,有 CanvasElementMesh 元件。

元件 CanvasElementMesh 會接受輸入網格,並將其轉譯成 Graphic 元件。

CanvasElementMesh 範例與火箭

重要

輸入網格必須啟用其 讀取/寫入 屬性,才能在腳本中讀取頂點。

動畫

若要以動畫顯示 UnityUI 材質屬性,您可以使用 CanvasMaterialAnimator... 類別。 如需詳細資訊,請參閱 動畫 檔。

為了協助 UI 版面配置,圖形工具中有少數功能表項目存在。

錨點到角落和錨點的角落

視窗 > 圖形工具 > 畫布錨點錨 > 點到角落視窗 > 圖形工具 > 畫布錨 > 點角落到錨 點可讓您在釘選系統和 RectTransform中固有的錨點 (條件約束之間來回移動表示版面配置與錨) 點 (條件約束。 在回應式和固定縮放版面配置之間移動時,這非常有用。

另請參閱