Ubah sprite dari Obyek di Unity

11

Di dalam kode skrip pahlawan (objek) saya ingin menambahkan kemungkinan untuk mengubah sprite-nya.

Jadi pemain menekan tombol spasi dan sprite berubah menjadi sprite lain yang sudah ditambahkan ke proyek.

Bisakah Anda memberi saya contoh kode untuk melakukan ini?

Hebat
sumber
1
Meskipun fungsi untuk mengubah sprite di bawah ini harus bekerja persis seperti yang Anda minta, saya menyarankan agar Anda melihat ke animator Unity. Biasanya ketika orang mengganti sprite, itu adalah membuat animasi untuk sebuah aksi (seperti mengayunkan pedang atau membuka pintu) dan ini biasanya dilakukan di mesin yang lebih mendasar dengan menukar sprite secara manual. Namun Unity telah membangun dukungan untuk animasi yang memungkinkan Anda untuk membuat file animasi untuk semua sprite yang diperlukan, kemudian memungkinkan Anda untuk memberitahu game untuk memainkannya secara otomatis dengan syarat tertentu dalam pengontrol animasi.
Benjamin Danger Johnson

Jawaban:

20

Kode telah dikomentari untuk Anda. Nikmati.

public Sprite sprite1; // Drag your first sprite here
public Sprite sprite2; // Drag your second sprite here

private SpriteRenderer spriteRenderer; 

void Start ()
{
    spriteRenderer = GetComponent<SpriteRenderer>(); // we are accessing the SpriteRenderer that is attached to the Gameobject
    if (spriteRenderer.sprite == null) // if the sprite on spriteRenderer is null then
        spriteRenderer.sprite = sprite1; // set the sprite to sprite1
}

void Update ()
{
    if (Input.GetKeyDown (KeyCode.Space)) // If the space bar is pushed down
    {
        ChangeTheDamnSprite (); // call method to change sprite
    }
}

void ChangeTheDamnSprite ()
{
    if (spriteRenderer.sprite == sprite1) // if the spriteRenderer sprite = sprite1 then change to sprite2
    {
        spriteRenderer.sprite = sprite2;
    }
    else
    {
        spriteRenderer.sprite = sprite1; // otherwise change it back to sprite1
    }
}

Anda harus memasang sprite renderer di GameObject Anda. Buat C # Script baru dan lampirkan GameObject. Tempel kode di antara tanda kurung ... Saya yakin Anda bisa mengetahuinya dari sana :)

Savlon
sumber
Anda pak, adalah legenda.
kal kokah