Partager via


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 matérielles au système d’animation d’Unity par défaut (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 matérielles 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 expose les propriétés matérielles au système d’animation d’Unity et met automatiquement à jour le matériel approprié lorsqu’il est animé.

Remarque

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 Graphics Tools/Canvas/Backplate nuanceur.

Utilisation par programmation

Normalement, un animateur de matériau de canevas est piloté par le système d’animation d’Unity, mais il est possible d’utiliser cette classe par programmation. Après avoir modifié l’un des membres de la classe, veillez à appeler la ApplyToMaterial méthode . 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 peut ne pas être synchronisé 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 > Generate Canvas Material Animator.

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

Remarque

Par défaut, les animateurs de matériaux de canevas fonctionnent sur le matériel partagé du renderer. 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 permet d’allouer 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ériel peuvent être sérialisées sur le disque. Pour éviter cela, Graphics Tools utilise le modèle MaterialRestorer.cs .

Voir aussi