Dela via


UnityUI-verktyg – MRTK3

UnityUI kanske inte är det första verktyget som utvecklare av mixad verklighet tänker på när de skapar 3D-användargränssnitt. Men med några hjälpkomponenter och verktyg är det möjligt att skapa snygga och flexibla 3D-användargränssnitt i UnityUI.

Exempelknappar och skjutreglage för Unity-användargränssnittet

Tips

Det är enkelt att skapa flaskhalsar för prestanda vid redigering av UnityUI. Innan du skapar komplexa UnityUI-layouter rekommenderar vi att du läser den här självstudien.

Exempel

Se UnityUI-exemplet för demonstrationer av olika komponenter som skapats för UnityUI.

Komponenter för användargränssnittsbeteende

Komponenterna nedan hjälper till med renderingsgränssnittet, men de är inte synliga grafiska komponenter.

ScaleMeshEffect

På UnityUI-komponenter är matrisen unity_ObjectToWorld (eller UNITY_MATRIX_M i URP) inte transformeringsmatrisen för den lokala transformeringen som den grafiska komponenten lever på utan den överordnade arbetsytans. Många skuggningseffekter i grafikverktyg kräver att objektskalning är känt. För att lösa det här problemet lagrar ScaleMeshEffect.cs skalningsinformation i UV-kanalattribut under konstruktionen av användargränssnittsnätet.

Tips

En Canvas eller CanvasRenderer i Grafikverktyg uppmanar till att lägga till en ScaleMeshEffect.cs när en krävs.

RectMask2DFast

UnityUI har en inbyggd komponent som heter RectMask2D. Normalt används den här komponenten för att maskera en liten del av ett större område. När du maskerar många objekt kan den här processen ta lång tid att ta bort objekt på processorn. För att undvika den här flaskhalsen innehåller Grafikverktyg en RectMask2DFast komponent.

RectMask2DFast fungerar på samma sätt som RectMask2D och är en rekommenderad ersättning. Om du stöter på ett problem där maskeringen inte uppdateras när du har lagt till eller tagit bort objekt från RectMask2DFast kan du behöva anropa en uppdatering manuellt som nedan:

myRectMask2DFast.ForceClip = true;

Alla grafikverktyg/arbetsyte-/ skuggningsverktyg och grafikverktyg/Standard-skuggning för arbetsytor stöder RectMask2D, RectMask2DFastoch RoundedRectMask2D.

Anteckning

Grafikverktyg/arbetsyte-/skuggningsverktyg och grafikverktyg/Standard-skuggning för arbetsytor stöder inte egenskapen MjukhetRectMask2D ellerRectMask2DFast.

RoundedRectMask2D

RoundedRectMask2D härledas från RectMask2DFast och fungerar på liknande sätt. Den enda skillnaden är att RoundedRectMask2D innehåller ett hörnradievärde för rundade hörn. Den här radien kan väljas för alla hörn eller varje hörn individuellt.

RoundedRectMask2D-exempel med två bilder

Anteckning

Materialets instancing måste styras av användaren. Dvs. delat material kan påverkas av RoundedRectMask2D.

UI-grafikkomponenter

De nedanstående grafiska komponenterna bidrar till att lägga till 3D-dimensionalitet i en arbetsyta.

CanvasElementRoundedRect

Den här komponenten genererar procedurmässigt ett 3D-avrundat rektnät som sedan tilldelas arbetsytans hörnström. Normalt används den här komponenten för att generera backplate-nät med hjälp av grafikverktygen/arbetsytan/bakplåtsskuggan .

CanvasElementRoundedRect, exempel på backplate

CanvasElementBeveledRect

Precis som CanvasElementRoundedRectgenererar den här komponenten procedurmässigt en 3D-avrundad rect men med fasade kanter. Normalt används den här komponenten för att generera bakplåtsnät med hjälp av grafikverktygen/arbetsytan/den fasade skuggningen.

CanvasElementBeveledRect-exempel

CanvasElementMesh

Unitys MeshRenderer-komponent kan användas för att visa 3D-nät i UnityUI, men den respekterar inte vissa av de layoutfunktioner som UnityUI tillhandahåller. Komponenten finns för att lösa de här layoutproblemen CanvasElementMesh .

Komponenten CanvasElementMesh tar ett indatanät och översätter det till en Graphic komponent.

CanvasElementMesh-exempel med raket

Viktigt

Indatanätet måste ha dess läs-/skrivegenskap aktiverad så att hörn kan läsas i skriptet.

Animering

Om du vill animera UnityUI-materialegenskaper kan du använda klasserna CanvasMaterialAnimator... . Mer information finns i animeringsdokumentationen.

För att hjälpa till med gränssnittslayouten finns det några menyalternativ i Grafikverktyg.

Fästpunkter i hörn och hörn till fästpunkter

Fönstret > Med grafiska verktyg > för arbetsytor fäster > fästpunkter i hörn och fönstergrafikverktyg >> kan > du flytta fram och tillbaka mellan uttryckslayouten i fästsystemet och det fästpunktssystem (begränsning) som är inbyggt i RectTransform. Detta kan vara användbart när du flyttar mellan dynamiska layouter och layouter med fast skalning.

Se även