Animation — MRTK3

La plupart des propriétés du nuanceur Graphics Tools Standard peuvent être animées à l’aide du système d’animation intégré d’Unity. Les matériaux utilisés sur les composants de l’interface utilisateur Unity n’exposent pas leurs propriétés de matériau au système d’animation d’Unity par défaut de Unity (et ne prennent pas en charge les blocs de propriétés de matériau). Graphics Tools contient un système pour prendre en charge l’animation des propriétés de matériau de l’interface utilisateur Unity.

Le script CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs expose toutes les propriétés de matériau disponibles dans le nuanceur Graphics Tools/Standard Canvas. L’ajout de ce composant à un objet de jeu UnityUI avec un CanvasRenderer exposera les propriétés de matériau au système d’animation de Unity, et mettra automatiquement à jour le matériau approprié lors de l’animation.

Notes

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs fonctionne uniquement avec le nuanceur Graphics Tools/Standard Canvas. Pour les autres nuanceurs, utilisez leur script d’animation correspondant. Par exemple, CanvasMaterialAnimatorCanvasBackplate.cs pour le nuanceur Graphics Tools/Canvas/Backplate.

Utilisation programmatique

Normalement, un animateur de matériau de canevas est piloté par le système d’animation de Unity, mais il est possible d’utiliser cette classe par programmation. Après avoir modifié les membres de la classe, veillez à appeler la méthode ApplyToMaterial. Voici un exemple de pulsation de la quantité d’extrusion de vertex :

using UnityEngine;

public class ScriptedMaterialAnimation : MonoBehaviour
{
    public CanvasMaterialAnimatorGraphicsToolsStandardCanvas Animator;

    private void Update()
    {
        Animator._VertexExtrusionValue = Mathf.Lerp(0, 0.002f, (Mathf.Sin(Mathf.Repeat(Time.time, Mathf.PI * 2.0f)) + 1.0f) * 0.5f);
        Animator.ApplyToMaterial();
    }
}

Utilisation avancée

Si vous inspectez le contenu de CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, il existe du code réutilisable qui pourrait sortir de la synchronisation avec le nuanceur Graphics Tools/Standard Canvas. Heureusement, ce code est généré automatiquement en cliquant avec le bouton droit sur un nuanceur dans la fenêtre du projet et en sélectionnant Graphics Tools > Générer un animateur de matériau de canevas.

Vous pouvez générer un animateur de matériau de canevas pour tout nuanceur dont votre projet a besoin pour animer. Les propriétés de matériau seront mises à jour au moment de la modification et de l’exécution.

Notes

Par défaut, les animateurs de matériau de canevas fonctionnent sur le matériau partagé du convertisseur. Si vous souhaitez que l’animation n’affecte qu’un seul matériau, vous pouvez sélectionner la propriété Matériaux d’instance sur l’inspecteur de l’animateur de matériau de canevas. Cela allouera un nouveau matériau pour chaque instance.

Il est également important de noter que, lors de l’animation de matériaux partagés au moment de l’exécution dans l’éditeur, les mises à jour de matériau peuvent être sérialisées sur disque. Pour éviter cela, Graphics Tools utilise le modèle MaterialRestorer.cs.

Voir aussi