Cambia lo sprite di un oggetto in Unity


11

All'interno del codice di script dell'eroe (oggetto) voglio aggiungere la possibilità di cambiarne lo sprite.

Quindi il giocatore preme il tasto spazio e lo sprite si trasforma nell'altro sprite già aggiunto al progetto.

Potete fornirmi un codice di esempio per farlo?


1
Sebbene la funzione per cambiare gli sprite di seguito dovrebbe funzionare esattamente come ti è stato chiesto, ti suggerirei di guardare nell'animatore Unity. Di solito, quando le persone cambiano gli sprite, è creare un'animazione per un'azione (come oscillare una spada o aprire una porta) e ciò avviene in genere in motori di base scambiando gli sprite manualmente. Unity ha tuttavia integrato il supporto per le animazioni che consente di creare un file di animazione per tutti gli sprite necessari, quindi di dire al gioco di riprodurli automaticamente date determinate condizioni nel controller di animazione.
Benjamin Danger Johnson,

Risposte:


20

Il codice è stato commentato per te. Godere.

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
    }
}

Devi avere un renderizzatore sprite collegato a GameObject. Crea un nuovo script C # e allega un GameObject. Incolla il codice tra parentesi ... Sono sicuro che puoi capirlo da lì :)


signore, siete una leggenda.
kal kokah,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.