Strumenti UnityUI - MRTK3

UnityUI potrebbe non essere il primo strumento sviluppatore di realtà mista pensa quando si creano interfacce utente 3D. Ma con alcuni componenti e utilità helper, è possibile rendere belle e flessibili le interfacce utente 3D in UnityUI.

Pulsanti di esempio dell'interfaccia utente di Unity e dispositivi di scorrimento

Suggerimento

È facile creare colli di bottiglia delle prestazioni durante la creazione di UnityUI. Prima di creare layout UnityUI complessi, è consigliabile leggere questa esercitazione.

Esempio

Per dimostrazioni di vari componenti compilati per UnityUI , vedere l'esempio UnityUI .

Componenti del comportamento dell'interfaccia utente

I componenti seguenti consentono di eseguire il rendering dell'interfaccia utente, ma non sono componenti grafici visibili.

ScaleMeshEffect

Nei componenti UnityUI la unity_ObjectToWorld matrice (o UNITY_MATRIX_M in URP) non è la matrice di trasformazione della trasformazione locale in cui il componente Grafico è attivo ma quello del canvas padre. Molti effetti shader all'interno di Strumenti grafici richiedono la scalabilità degli oggetti da conoscere. Per risolvere questo problema, ScaleMeshEffect.cs archivierà le informazioni di ridimensionamento in attributi del canale UV durante la costruzione della mesh dell'interfaccia utente.

Suggerimento

Un canvas o CanvasRenderer all'interno di Strumenti grafici richiederà l'aggiunta di un oggetto ScaleMeshEffect.cs quando è necessario.

RectMask2DFast

UnityUI ha un componente predefinito denominato RectMask2D. Normalmente questo componente viene usato per mascherare una piccola sezione di un'area più grande. Quando si mascherano molti oggetti, questo processo può richiedere molto tempo per l'attivazione di oggetti nella CPU. Per evitare questo collo di bottiglia, Gli strumenti grafici includono un RectMask2DFast componente.

RectMask2DFast funziona allo stesso modo di RectMask2D e è una sostituzione consigliata. Se si verifica un problema per cui la maschera non viene aggiornata dopo l'aggiunta o la rimozione di oggetti da RectMask2DFast allora potrebbe essere necessario richiamare manualmente un aggiornamento simile al seguente:

myRectMask2DFast.ForceClip = true;

Tutti gli strumenti grafici/canvas/ shader e gli strumenti grafici/Canvas shader standard supportano RectMask2D, RectMask2DFaste .RoundedRectMask2D

Nota

Gli strumenti grafici/canvas/ shader e lo shader strumenti grafici /canvas standardnon supportano la proprietà Softness su RectMask2D o RectMask2DFast.

ArrotondatoRectMask2D

RoundedRectMask2D deriva da RectMask2DFast e agisce in modo analogo. L'unica differenza è che RoundedRectMask2D contiene un valore raggio di angolo per gli angoli arrotondati. Questo raggio può essere selezionato per tutti gli angoli o ogni angolo singolarmente.

Esempio Di ArrotondatoRectMask2D con due immagini

Nota

L'instancing del materiale deve essere controllato dall'utente. i materiali condivisi possono essere applicati da RoundedRectMask2D.

Componenti grafici dell'interfaccia utente

I componenti grafici seguenti consentono di aggiungere 3D dimensionalità a un canvas.

CanvasElementRoundedRect

Questo componente genera in modo procedurale una mesh di correzione arrotondata 3D che viene quindi assegnata al flusso del vertice di Canvas. In genere questo componente viene usato per generare mesh backplate usando gli strumenti grafici/Canvas/Backplate shader.

Backplate di esempio CanvasElementRoundedRect

CanvasElementBeveledRect

Proprio come CanvasElementRoundedRect, questo componente genera in modo procedurale un 3D arrotondato rect ma con bordi svelti. In genere, questo componente viene usato per generare mesh di piatto indietro usando gli strumenti grafici/Canvas/Beveled shader.

Esempio CanvasElementBeveledRect

CanvasElementMesh

Il componente MeshRenderer di Unity può essere usato per visualizzare le mesh 3D all'interno di UnityUI, ma non rispetta alcune delle funzionalità di layout fornite da UnityUI. Per risolvere questi problemi di layout, è presente il CanvasElementMesh componente.

Il CanvasElementMesh componente accetta una mesh di input e lo converte in un Graphic componente.

Esempio CanvasElementMesh con razzo

Importante

La mesh di input deve avere la proprietà Read/Write abilitata in modo che i vertici possano essere letti all'interno dello script.

Animazione

Per animare le proprietà del materiale UnityUI, è possibile usare le classi CanvasMaterialAnimator... Per altre informazioni, vedere la documentazione dell'animazione .

Per facilitare il layout dell'interfaccia utente, esistono alcune voci di menu all'interno di Strumenti grafici.

Ancoraggi agli angoli e agli angoli per ancoraggi

Finestra > Strumenti grafici ancora ancoraggi agli angoli e agli angoli degli strumenti >>>> grafici dell'area di disegno ancoraggi per ancoraggi consentono di spostarsi indietro e indietro tra il layout espresso nel sistema di ancoraggio e > il sistema di ancoraggio (vincolo) intrinseco in RectTransform. Ciò può risultare utile quando si spostano tra layout di scalabilità reattivi e fissi.

Vedi anche