Animación: MRTK3

La mayoría de las propiedades del sombreador de herramientas de gráficos estándar se pueden animar mediante el sistema de animación integrado de Unity. Los materiales que se usan en los componentes de la interfaz de usuario de Unity no exponen sus propiedades de material al sistema de animación de Unity de forma predeterminada (ni admiten bloques de propiedades de material). Las herramientas de gráficos contienen un sistema para admitir la animación de las propiedades de material de la interfaz de usuario de Unity.

El script CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs expone todas las propiedades de material disponibles en el sombreador de Herramientas de gráficos / Lienzo estándar. Al agregar este componente a un objeto de juego UnityUI con canvasRenderer, se expondrán las propiedades de material al sistema de animación de Unity y se actualizará automáticamente el material correcto cuando se anime.

Nota

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs solo funciona con el sombreador de Herramientas de gráficos / Lienzo estándar. Para otros sombreadores, use su script de animación correspondiente. Por ejemplo, CanvasMaterialAnimatorCanvasBackplate.cs para el Graphics Tools/Canvas/Backplate sombreador.

Uso de programación

Normalmente, un animador de material de lienzo está controlado por el sistema de animación de Unity, pero es posible usar esta clase mediante programación. Después de cambiar cualquiera de los miembros de la clase, asegúrese de llamar al ApplyToMaterial método. A continuación se muestra un ejemplo de pulsión de la cantidad de extrusión de vértices:

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();
    }
}

Uso avanzado

Si inspecciona el contenido de CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, hay código reutilizable que podría no sincronizarse con las Herramientas de gráficos / Lienzo estándar. Afortunadamente, este código se genera automáticamente haciendo clic con el botón derecho en un sombreador en la ventana del proyecto y seleccionando Herramientas de gráficos > Generar animador de material de lienzo.

Puede generar un animador de material de lienzo para cualquier sombreador que el proyecto necesite para animar. Las propiedades del material se actualizarán en tiempo de edición y ejecución.

Nota

De forma predeterminada, los animadores de material de lienzo funcionan en el material compartido del representador. Si desea que la animación afecte a un solo material, puede seleccionar la propiedad Materiales de instancia en el inspector del material de lienzo. Esto asignará un nuevo material para cada instancia.

También vale la pena tener en cuenta que, al animar materiales compartidos en tiempo de ejecución en las actualizaciones de materiales del editor, puede serializarse en el disco. Para evitar esto, Las herramientas de gráficos usan el patrón MaterialRestorer.cs.

Vea también