Animação — MRTK3
A maioria das propriedades no sombreado Padrão das Ferramentas Gráficas pode ser animada com o sistema de animação incorporado do Unity. Os materiais utilizados nos componentes da IU do Unity não expõem as respetivas propriedades materiais ao sistema de animação do Unity por predefinição (nem suportam blocos de propriedade material). As Ferramentas de Gráficos contêm um sistema para suportar a animação das propriedades do material da IU do Unity.
O script CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs expõe todas as propriedades de material disponíveis no sombreado De Tela Padrão/Ferramentas Gráficas . Adicionar este componente a um objeto de jogo 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.
Nota
CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs só funciona com o sombreado Graphics Tools/Standard Canvas . Para outros sombreados, utilize o script de animação correspondente. Por exemplo, CanvasMaterialAnimatorCanvasBackplate.cs para o Graphics Tools/Canvas/Backplate
shader.
Utilização programática
Normalmente, um animador de material de tela é impulsionado pelo sistema de animação do Unity. No entanto, é possível utilizar esta classe programaticamente. Depois de alterar os membros da classe, certifique-se de que chama o ApplyToMaterial
método . Segue-se um exemplo de pulsação da quantidade de extrusão de vértice:
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();
}
}
Utilização avançada
Se inspecionar o conteúdo de CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, existe um código automático que pode ficar dessincronizado com o sombreado Graphics Tools/Standard Canvas . Felizmente, este código é gerado automaticamente ao clicar com o botão direito do rato num sombreado na janela do projeto e selecionar Ferramentas > Gráficas Gerar Animador de Material de Tela.
Pode gerar um animador de material de tela para qualquer sombreado que o seu projeto precise de animar. As propriedades do material serão atualizadas no tempo de edição e execução.
Nota
Por predefinição, os animadores de material de tela operam no material partilhado do compositor. Se quiser que a animação afete apenas um único material, pode selecionar a propriedade Materiais de Instância no inspetor do animador de material de tela. Esta ação irá alocar um novo material para cada instância.
Também vale a pena notar que ao animar materiais partilhados no tempo de execução, as atualizações de material do editor podem ser serializadas para o disco. Para evitar esta situação, as Ferramentas Gráficas utilizam o padrão MaterialRestorer.cs .