Изменить спрайт объекта в Unity


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 # Script и прикрепите к нему GameObject. Вставьте код между скобками ... Я уверен, что вы можете понять это оттуда :)


Вы, сэр, легенда.
кал коках
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.