Animazione - MRTK3
La maggior parte delle proprietà in Strumenti grafici Standard shader può essere animata usando il sistema di animazione predefinito di Unity. I materiali usati nei componenti dell'interfaccia utente di Unity non espongono le relative proprietà materiali al sistema di animazione di Unity per impostazione predefinita (né supportano i blocchi di proprietà dei materiali). Gli strumenti di grafica contengono un sistema che supporta l'animazione delle proprietà dei materiali dell'interfaccia utente di Unity.
Lo script CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs espone tutte le proprietà dei materiali disponibili nello shader Canvas di strumenti grafici/Standard. L'aggiunta di questo componente a un oggetto gioco UnityUI con CanvasRenderer esporrà le proprietà dei materiali al sistema di animazione di Unity e aggiornerà automaticamente il materiale corretto quando viene animato.
Nota
CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs funziona solo con lo shader Canvas di strumenti di grafica/Standard. Per altri shader, usa lo script di animazione corrispondente. Ad esempio, CanvasMaterialAnimatorCanvasBackplate.cs per lo Graphics Tools/Canvas/Backplate
shader.
Utilizzo a livello di codice
In genere un animatore di materiali canvas è guidato dal sistema di animazione di Unity, tuttavia, è possibile usare questa classe a livello di codice. Dopo aver modificato uno dei membri della classe, assicurarsi di chiamare il ApplyToMaterial
metodo . Di seguito è riportato un esempio di pulsazione della quantità di estrusione dei vertici:
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();
}
}
Utilizzo avanzato
Se si esamina il contenuto di CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, il codice boilerplate potrebbe non essere sincronizzato con lo shader Strumenti grafici/Standard Canvas. Fortunatamente, questo codice viene generato automaticamente facendo clic con il pulsante destro del mouse su uno shader nella finestra del progetto e selezionando Strumenti > di grafica Genera animazione materiale canvas.
È possibile generare un animatore di materiale canvas per qualsiasi shader che il progetto deve animare. Le proprietà dei materiali verranno aggiornate in fase di modifica e di esecuzione.
Nota
Per impostazione predefinita, gli animatori di materiali canvas operano sul materiale condiviso del renderer. Se desiderate che l'animazione influisca solo su un singolo materiale, potete selezionare la proprietà Materiali istanza nel controllo dell'animatore del materiale canvas. Verrà allocato un nuovo materiale per ogni istanza.
Vale anche la pena notare che quando si animano i materiali condivisi in fase di esecuzione negli aggiornamenti dei materiali dell'editor possono essere serializzati su disco. Per evitare questo, Strumenti di grafica usa il modello di MaterialRestorer.cs .