Как сменить спрайт объекта по клику?

Начал обучаться Unity и встрял с первым заданием...

Есть три кнопки (Камень, Ножницы, Бумага) и есть некий невидимый GameObject. Нужно сделать так, чтобы при нажатии на кнопку объект менял свой Sprite на тот что лежит в заранее заготовленной папке. Просмотрел уйму видео... и не могу понять, как сделать.

public class Button : MonoBehaviour
{
    public Sprite Button_stn, Button_scs, Button_pap, GameObj;
    public void Button_stn_cl()
    {
        GameObj = Resources.Load("1") as Sprite;
    }

    public void Button_scs_cl()
    {
        GameObj = Resources.Load("2") as Sprite;
    }

    public void Button_pap_cl()
    {
        GameObj = Resources.Load("3") as Sprite;
    }

    public void Game_object()
    {
        GetComponent<SpriteRenderer>().sprite = GameObj;
    }

    void Start()
    {
        
    }
}

Ответы (1 шт):

Автор решения: aepot

Ссылочные типы - основа всия C#. Вам нужно не туториалы смотреть, а учить самые основы, как всё устроено. Поймете как работают ссылочные типы - узнаете, насколько просто было сделать то, что я написал ниже. При условии, что я Unity вообще не знаю.

public class Button : MonoBehaviour
{
    public Sprite Button_stn, Button_scs, Button_pap;
    private SpriteRenderer renderer;

    public void Button_stn_cl()
    {
        renderer.sprite = LoadSprite("1");
    }

    public void Button_scs_cl()
    {
        renderer.sprite = LoadSprite("2");
    }

    public void Button_pap_cl()
    {
        renderer.sprite = LoadSprite("3");
    }

    private Sprite LoadSprite(string resourceName)
    {
        return Resources.Load(resourceName) as Sprite;
    }

    void Start()
    {
        renderer = GetComponent<SpriteRenderer>();
    }
}

Ссылочные и значимые типы в C#.

И не жалейте букв, пишите код из понятных слов. Пройдет какое-то время, и вы сами не вспомните, в каком состоянии вы были, когда назвали метод bt_cl_hdlr, а вот если это будет ButtonClickHandler - будет гораздо легче вспомнить, что же всё-таки этот метод делает.

→ Ссылка