Анимация — MRTK3

Большинство свойств стандартного шейдера Graphics Tools можно анимировать с помощью встроенной системы анимации Unity. Материалы, используемые в компонентах Unity UI, по умолчанию не предоставляют свои свойства материалов системе анимации Unity (и не поддерживают блоки свойств материалов). В Graphics Tools имеется система для поддержки анимации свойств материалов Unity UI.

Скрипт CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs предоставляет все свойства материала, доступные в шейдере Graphics Tools/Стандартный холст. Добавление этого компонента в игровой объект UnityUI с помощью CanvasRenderer предоставит свойства материала системе анимации Unity и автоматически обновит правильный материал при анимации.

Примечание

Скрипт CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs работает только с шейдером Graphics Tools/Стандартный холст. Для других шейдеров используйте соответствующий скрипт анимации. Например, CanvasMaterialAnimatorCanvasBackplate.cs для шейдера Graphics Tools/Canvas/Backplate.

Использование программным способом

Обычно аниматор материала холста управляется системой анимации Unity, однако этот класс можно использовать программным способом. После изменения любого из членов класса обязательно вызовите метод ApplyToMaterial. Ниже приведен пример пульсирования объемного эффекта вершины:

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

Расширенное использование

При проверке содержимого CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs существует стандартный код, который может не синхронизироваться с шейдером Graphics Tools/Стандартный холст. К счастью, этот код создается автоматически путем нажатия правой кнопкой мыши шейдера в окне проекта и выбора пункта Graphics Tools > Создать материал холста.

Вы можете создать аниматор материала холста для любого шейдера, необходимого для анимации проекта. Свойства материала будут обновлены во время редактирования и выполнения.

Примечание

По умолчанию аниматоры материалов холста работают с общим материалом отрисовщика. Если вы хотите, чтобы анимация влияла только на один материал, можно выбрать свойство Материалы экземпляра в инспекторе аниматора материала холста. При этом будет выделен новый материал для каждого экземпляра.

Также стоит отметить, что при анимации общих материалов во время выполнения в редакторе обновления могут быть сериализованы на диск. Чтобы избежать этого, в Graphics Tools используется шаблон MaterialRestorer.cs.

См. также раздел