Bagikan melalui


Animasi — MRTK3

Sebagian besar properti pada shader Graphics Tools Standard dapat dianimasikan menggunakan sistem animasi bawaan Unity. Bahan yang digunakan pada komponen UI Unity tidak mengekspos properti materialnya ke sistem animasi Unity secara default (juga tidak mendukung blok properti material). Alat Grafis berisi sistem untuk mendukung animasi properti material UI Unity.

Skrip CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs memaparkan semua properti material yang tersedia di shader Graphics Tools/Standard Canvas . Menambahkan komponen ini ke objek game UnityUI dengan CanvasRenderer akan mengekspos properti material ke sistem animasi Unity dan akan secara otomatis memperbarui materi yang benar saat dianimasikan.

Catatan

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs hanya berfungsi dengan shader Graphics Tools/Standard Canvas . Untuk shader lain, gunakan skrip animasi yang sesuai. Misalnya, CanvasMaterialAnimatorCanvasBackplate.cs untuk Graphics Tools/Canvas/Backplate shader.

Penggunaan terprogram

Biasanya animator material kanvas didorong oleh sistem animasi Unity, namun, dimungkinkan untuk menggunakan kelas ini secara terprogram. Setelah mengubah salah satu anggota kelas, pastikan untuk memanggil ApplyToMaterial metode . Contoh pulsing jumlah ekstrusi vertex di bawah ini:

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

Penggunaan tingkat lanjut

Jika Anda memeriksa konten CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs, ada kode boilerplate yang dapat tidak sinkron dengan shader Graphics Tools/Standard Canvas . Untungnya, kode ini dibuat secara otomatis dengan mengklik kanan shader di jendela proyek dan memilih Alat > Grafis Menghasilkan Animator Bahan Kanvas.

Anda dapat menghasilkan animator material kanvas untuk shader apa pun yang dibutuhkan proyek Anda untuk menganimasikan. Properti material akan diperbarui pada waktu edit dan run time.

Catatan

Secara default, animator material kanvas beroperasi pada materi bersama perender. Jika Anda ingin animasi hanya memengaruhi satu materi, Anda dapat memilih properti Materi Instans pada pemeriksa animator material kanvas. Ini akan mengalokasikan materi baru untuk setiap instans.

Perlu juga dicatat bahwa ketika meniru materi bersama pada durasi dalam pembaruan materi editor mungkin diserialisasikan ke disk. Untuk menghindari hal ini, Graphics Tools menggunakan pola MaterialRestorer.cs .

Lihat juga