Udostępnij za pomocą


Animacja — MRTK3

Większość właściwości cieniowania standardowego narzędzi graficznych może być animowana przy użyciu wbudowanego systemu animacji aparatu Unity. Materiały używane w składnikach interfejsu użytkownika aparatu Unity nie uwidaczniają ich właściwości materiału do systemu animacji aparatu Unity domyślnie (ani nie obsługują bloków właściwości materiału). Narzędzia graficzne zawierają system do obsługi animacji właściwości materiału interfejsu użytkownika aparatu Unity.

Skrypt CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs uwidacznia wszystkie właściwości materiału dostępne w cieniatorze narzędzi graficznych/standardowej kanwy . Dodanie tego składnika do obiektu gry UnityUI z elementem CanvasRenderer spowoduje uwidocznienie właściwości materiału w systemie animacji aparatu Unity i automatycznie zaktualizuje poprawny materiał podczas animacji.

Uwaga

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs współpracuje tylko z narzędziami graficznymi/cieniatorem kanwy w warstwie Standardowa . W przypadku innych cieniowania użyj odpowiedniego skryptu animacji. Na przykład CanvasMaterialAnimatorCanvasBackplate.cs dla cieniowania Graphics Tools/Canvas/Backplate .

Użycie programowe

Zwykle animacja materiału kanwy jest sterowana przez system animacji aparatu Unity, jednak można użyć tej klasy programowo. Po zmianie dowolnych elementów członkowskich klasy należy wywołać metodę ApplyToMaterial . Poniżej przedstawiono przykład pulsowania ilości ekstruzji wierzchołka:

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

Użycie zaawansowane

Jeśli sprawdzisz zawartość pliku CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, istnieje kod kociołowy, który może wypadnąć z synchronizacją z cieniatorem narzędzi graficznych/standardowej kanwy . Na szczęście ten kod jest generowany automatycznie, klikając prawym przyciskiem myszy cieniowanie w oknie projektu i wybierając pozycję Narzędzia > graficzne Generuj animację materiału kanwy.

Możesz wygenerować animację materiału płótna dla dowolnego cieniowania, którego projekt musi animować. Właściwości materiału zostaną zaktualizowane w czasie edycji i wykonywania.

Uwaga

Domyślnie animacje materiałów kanwy działają na udostępnionym materiale renderera. Jeśli chcesz, aby animacja miała wpływ tylko na jeden materiał, możesz wybrać właściwość Instance Materials na inspektorze animacji materiału kanwy. Spowoduje to przydzielenie nowego materiału dla każdego wystąpienia.

Warto również zauważyć, że w przypadku animowania udostępnionych materiałów w czasie wykonywania w edytorze aktualizacje materiałów mogą zostać serializowane na dysku. Aby tego uniknąć, narzędzia graficzne używają wzorca MaterialRestorer.cs .

Zobacz też