Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 .