Outils UnityUI — MRTK3

UnityUI n’est peut-être pas le premier outil auquel les développeurs de réalité mixte pensent lors de la création d’interfaces utilisateur 3D. Mais avec quelques composants et utilitaires d’assistance, il est possible de rendre des interfaces utilisateur 3D belles et flexibles dans UnityUI.

Exemples de boutons et de curseurs de l’interface utilisateur Unity

Conseil

Il est facile de créer des goulots d’étranglement des performances lors de la création d’UnityUI. Avant de créer des dispositions UnityUI complexes, il est recommandé de lire ce tutoriel.

Exemple

Consultez l’exemple UnityUI pour obtenir des démonstrations de différents composants créés pour UnityUI.

Composants de comportement de l’interface utilisateur

Les composants ci-dessous facilitent le rendu de l’interface utilisateur, mais ce ne sont pas des composants graphiques visibles.

ScaleMeshEffect

Sur des composants UnityUI, la matrice unity_ObjectToWorld (ou UNITY_MATRIX_M dans URP) n’est pas la matrice de transformation de la transformation locale sur laquelle réside le composant graphique, mais celle de sa zone de dessin parente. De nombreux effets de nuanceur dans Outils graphiques nécessitent que l’échelle d’objet soit connue. Pour résoudre ce problème, le fichier ScaleMeshEffect.cs stocke les informations de mise à l’échelle dans les attributs du canal UV lors de la construction du maillage de l’interface utilisateur.

Conseil

Une zone de dessin ou CanvasRenderer au sein de Outils graphiques invite à ajouter un ScaleMeshEffect.cs quand il le faut.

RectMask2DFast

UnityUI contient un composant intégré appelé RectMask2D. Normalement, ce composant est utilisé pour masquer une petite section d’une zone plus grande. Lors du masquage de nombreux objets, ce processus peut prendre beaucoup de temps pour éliminer des objets sur le processeur. Pour éviter ce goulot d’étranglement, Outils graphiques inclut un composant RectMask2DFast.

RectMask2DFast fonctionne de la même façon que RectMask2D et est un remplacement recommandé. Si vous rencontrez un problème où le masquage n’est pas mis à jour après l’ajout ou la suppression d’objets de RectMask2DFast, vous devrez peut-être appeler manuellement une mise à jour comme ci-dessous :

myRectMask2DFast.ForceClip = true;

Tous les nuanceurs Graphics Tools/Canvas/ et le nuanceur Graphics Tools/Standard Canvas prennent en charge RectMask2D, RectMask2DFast et RoundedRectMask2D.

Notes

Les nuanceurs Graphics Tools/Canvas/ et le nuanceur Graphics Tools/Standard Canvasne prennent pas en charge la propriété Softness sur RectMask2D ou RectMask2DFast.

RoundedRectMask2D

RoundedRectMask2D est dérivé de RectMask2DFast et agit de la même manière. La seule différence est que RoundedRectMask2D contient une valeur de rayon d’angle pour les angles arrondis. Ce rayon peut être sélectionné pour tous les angles ou pour chaque angle individuellement.

Exemple RoundedRectMask2D avec deux images

Notes

L’instanciation de matériau doit être contrôlée par l’utilisateur. Cela signifie que des matériaux partagés peuvent être appliqués par RoundedRectMask2D.

Composants graphiques d’interface utilisateur

Les composants graphiques ci-dessous permettent d’ajouter une dimensionnalité 3D à une zone de dessin.

CanvasElementRoundedRect

Ce composant génère de façon procédurale un maillage rectangulaire arrondi 3D qui est ensuite affecté au flux de vertex de la zone de dessin. Normalement, ce composant est utilisé pour générer des maillages de plaque arrière à l’aide du nuanceur Graphics Tools/Canvas/Backplate.

CanvasElementRoundedRect – Exemple de plaque arrière

CanvasElementBeveledRect

Tout comme CanvasElementRoundedRect, ce composant génère de façon procédurale un rectangle arrondi 3D, mais avec des bords biseautés. Normalement, ce composant est utilisé pour générer des maillages de plaque arrière à l’aide du nuanceur Graphics Tools/Canvas/Beveled.

Exemple CanvasElementBeveledRect

CanvasElementMesh

Le composant MeshRenderer d’Unity peut être utilisé pour afficher des maillages 3D dans UnityUI, mais il ne respecte pas certaines des fonctionnalités de disposition fournies par UnityUI. Pour résoudre ces problèmes de disposition, il existe le composant CanvasElementMesh.

Le composant CanvasElementMesh prend un maillage d’entrée et le convertit en composant Graphic.

Exemple CanvasElementMesh avec rocket

Important

La propriété Lecture/Écriture du maillage d’entrée doit être activée afin que les sommets puissent être lus dans le script.

Animation

Pour animer les propriétés de matériau UnityUI, vous pouvez utiliser les classes CanvasMaterialAnimator... Pour plus d’informations, consultez la documentation d’animation.

Pour faciliter la disposition de l’interface utilisateur, il existe quelques éléments de menus dans Outils graphiques.

Ancrages à angles et angles à ancres

Fenêtre > Outils graphiques > Canvas Anchors > Anchors to Corners et Fenêtre > Outils graphiques > Canvas Anchors > Corners to Anchors vous permettent de basculer entre les dispositions du système d’épinglage et du système d’ancrage (contrainte) inhérent dans RectTransform. Cela peut être utile lors du basculement entre des dispositions à l’échelle réactive et à l’échelle fixe.

Voir aussi