Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
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 .