Dela via


Animering – MRTK3

De flesta egenskaper i Standard-skuggningen för grafikverktyg kan animeras med unitys inbyggda animeringssystem. Material som används i Unity UI-komponenter exponerar inte sina materialegenskaper för Unitys animeringssystem som standard (de stöder inte heller materialegenskapsblock). Grafikverktyg innehåller ett system som stöder animeringen av Unity UI-materialegenskaper.

Skriptet CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs exponerar alla materialegenskaper som är tillgängliga i Grafikverktyg/Standard-arbetsyteskuggning . Om du lägger till den här komponenten i ett UnityUI-spelobjekt med en CanvasRenderer exponeras materialegenskaper för Unitys animeringssystem och rätt material uppdateras automatiskt när det animeras.

Anteckning

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs fungerar bara med grafikverktygen/Standard Canvas-skuggningen . För andra skuggningar använder du motsvarande animeringsskript. Till exempel CanvasMaterialAnimatorCanvasBackplate.cs för skuggningen Graphics Tools/Canvas/Backplate .

Programmatisk användning

Normalt drivs en animatör av arbetsytematerial av Unitys animeringssystem, men det är möjligt att använda den här klassen programmatiskt. När du har ändrat någon av klassens medlemmar ska du anropa ApplyToMaterial metoden. Ett exempel på pulsning av hörnextrusionsmängden finns nedan:

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

Avancerad användning

Om du inspekterar innehållet i CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs finns det en exempelkod som inte kan synkroniseras med Grafikverktyg/Standard-arbetsyteskuggning . Lyckligtvis genereras den här koden automatiskt genom att högerklicka på en skuggning i projektfönstret och välja Grafikverktyg > Generera arbetsytematerial-animatör.

Du kan generera en animatör för arbetsytematerial för alla skuggningar som projektet behöver animera. Materialegenskaperna uppdateras vid redigering och körning.

Anteckning

Som standard fungerar animatörer av arbetsytematerial på renderarens delade material. Om du vill att animeringen bara ska påverka ett enskilt material kan du välja egenskapen Instansmaterial på arbetsytans materialanimatörs inspektör. Detta allokerar ett nytt material för varje instans.

Det är också värt att notera att när du animerar delat material vid körning i redigeringsprogrammets materialuppdateringar kan serialiseras till disken. För att undvika detta använder Grafikverktyg mönstret MaterialRestorer.cs .

Se även