Animação – MRTK3

A maioria das propriedades no sombreador Padrão das Ferramentas de Gráfico pode ser animada usando o sistema de animação interno do Unity. Os materiais usados nos componentes da interface do usuário do Unity não expõem suas propriedades materiais ao sistema de animação do Unity por padrão (nem dão suporte a blocos de propriedades do material). As Ferramentas de Gráfico contêm um sistema para dar suporte à animação das propriedades do material da interface do usuário do Unity.

O script CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs expõe todas as propriedades do material disponíveis no sombreador Ferramentas de Gráfico/Tela Padrão. A adição desse componente a um objeto de jogo do UnityUI com um CanvasRenderer irá expor as propriedades do material ao sistema de animação do Unity e atualizará automaticamente o material correto quando animado.

Observação

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs funciona apenas com o sombreador Ferramentas de Gráfico/Tela Padrão. Para outros sombreadores, use o script de animação correspondente. Por exemplo, CanvasMaterialAnimatorCanvasBackplate.cs para o sombreador Graphics Tools/Canvas/Backplate.

Uso programático

Normalmente, um animador de material de tela é controlado pelo sistema de animação do Unity, no entanto, essa classe pode ser usada programaticamente. Depois de alterar qualquer membro da classe, chame o método ApplyToMaterial. Um exemplo de como pulsar a quantidade de extrusão de vértice está abaixo:

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 avançado

Se você inspecionar o conteúdo de CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, há um código clichê que pode ficar fora de sincronia com o sombreador Ferramentas de Gráfico/Tela Padrão. Felizmente, esse código é gerado automaticamente clicando com o botão direito do mouse em um sombreador na janela do projeto e selecionando Ferramentas de Gráfico > Gerar Animador de Material de Tela.

Você pode gerar um animador de material de tela para qualquer sombreador que precise de animação em seu projeto. O tempo de edição e execução das propriedades do material serão atualizados.

Observação

Por padrão, os animadores de material de tela operam no material compartilhado do renderizador. Para que a animação afete apenas um único material, selecione a propriedade Materiais de Instância no inspetor do animador de material de tela. Isso irá alocar um novo material para cada instância.

Também vale a pena observar que, ao animar materiais compartilhados no tempo de execução, as atualizações de material do editor podem ser serializadas no disco. Para evitar isso, as Ferramentas de Gráfico usam o padrão MaterialRestorer.cs.

Confira também