Auf Englisch lesen

Teilen über


Animation — MRTK3

Die meisten Eigenschaften der Grafiktools Standard Shader können mithilfe des integrierten Animationssystems von Unity animiert werden. Materialien, die auf Unity-UI-Komponenten verwendet werden, machen ihre Materialeigenschaften nicht standardmäßig für das Animationssystem von Unity verfügbar (und unterstützen auch keine Materialeigenschaftenblöcke). Grafiktools enthalten ein System zur Unterstützung der Animation von Unity-UI-Materialeigenschaften.

Das CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs-Skript macht alle Materialeigenschaften verfügbar, die im Shader Grafiktools/Standard Canvas verfügbar sind. Durch das Hinzufügen dieser Komponente zu einem UnityUI-Spielobjekt mit einem CanvasRenderer werden Materialeigenschaften für das Animationssystem von Unity verfügbar gemacht und beim Animieren automatisch das richtige Material aktualisiert.

Hinweis

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs funktioniert nur mit dem Shader Grafiktools/Standard Canvas. Verwenden Sie für andere Shader das entsprechende Animationsskript. Beispiel: CanvasMaterialAnimatorCanvasBackplate.cs für den Graphics Tools/Canvas/Backplate Shader.

Programmgesteuerte Verwendung

Normalerweise wird ein Canvas-Materialanimator vom Animationssystem von Unity gesteuert, es ist jedoch möglich, diese Klasse programmgesteuert zu verwenden. Nachdem Sie einen der Member der Klasse geändert haben, stellen Sie sicher, dass Sie die ApplyToMaterial -Methode aufrufen. Ein Beispiel für das Pulsieren der Vertexextrusionsmenge finden Sie unten:

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

Erweiterte Nutzung

Wenn Sie den Inhalt von CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs untersuchen, gibt es Codebausteine, die nicht mit dem Grafiktools/Standard Canvas-Shader synchronisiert werden können. Glücklicherweise wird dieser Code automatisch generiert, indem Sie im Projektfenster mit der rechten Maustaste auf einen Shader klicken und Grafiktools > Canvas-Materialanimator generieren auswählen.

Sie können einen Canvas-Materialanimator für jeden Shader generieren, den Ihr Projekt zum Animieren benötigt. Materialeigenschaften werden zur Bearbeitungs- und Laufzeit aktualisiert.

Hinweis

Standardmäßig arbeiten Canvas-Materialanimatoren mit dem freigegebenen Material des Renderers. Wenn sich die Animation nur auf ein einzelnes Material auswirken soll, können Sie die Eigenschaft Instanzmaterialien im Inspektor des Canvas-Materialanimators auswählen. Dadurch wird für jede instance ein neues Material zugeordnet.

Es ist auch erwähnenswert, dass beim Animieren freigegebener Materialien zur Laufzeit im Editor Materialupdates möglicherweise auf den Datenträger serialisiert werden. Um dies zu vermeiden, verwenden Grafiktools das muster MaterialRestorer.cs .

Siehe auch