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.
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
, RectMask2DFast
e .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.
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.
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.
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.
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 .
Voci di menu
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.