Змініть спрайт Об'єкта в Єдності


11

Всередині коду сценарію героя (об'єкта) я хочу додати можливість змінити його спрайт.

Таким чином, програвач натискає клавішу пробілу, а спрайт перетворюється на інший спрайт, який вже доданий до проекту.

Чи можете ви надати мені зразок коду для цього?


1
Хоча функція для зміни спритів нижче повинна працювати точно так, як ви просили, я б запропонував вам заглянути в аніматора Unity. Зазвичай, коли люди змінюють спрайтів, це створити анімацію для дії (наприклад, розмахуючи мечем або відкрити двері), і це зазвичай робиться в більш основних двигунах, поміняючи спрайти вручну. Однак Unity створив підтримку анімації, яка дозволяє створювати файл анімації для всіх необхідних спрайтів, а потім дозволяє вам сказати грі, щоб вона автоматично грала в них за певних умов у контролері анімації.
Бенджамін Дангер Джонсон

Відповіді:


20

Код для вас прокоментували. Насолоджуйтесь.

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

Потрібно мати спрайт-рендерінг, приєднаний до вашого GameObject. Створіть новий сценарій C # та додайте до нього GameObject. Вставте код між круглими дужками ... Я впевнений, що ви можете це зрозуміти звідти :)


ви, сер, легенда.
kal kokah
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.