Как заменить Source Image в компоненте Image с помощью скриптов в Unity?

у меня не получается заменить Source image у компонента Image на текстуру. Unity выдаёт ошибку и говорит что SourceImage не относится к компоненту Image! вот скрипт:

public Image[] img = new Image[5];
private int[] items = new int[5];
private int[] counts = new int[5];
public TextMeshProUGUI[] txts = new TextMeshProUGUI[5];
public Texture[] textur = new Texture[3];
public PickUpPLUS HandCs;
private int IdItem;
// Start is called before the first frame update
void Start()
{
    for(int i = 0; i < 5; i++)
    {
        items[i] = 0;
        counts[i] = 0;
        img[i].SourceImage = textur[items[i]];
        txts[i].text = "";
    }
}

это скрипт инвентаря где int массив items[] это айдишники предметов (0 - ничего, 1 - кирпич, 2 - контроллер направления солнца), counts[] количевство предметов, img[] это массив компонентов Image, textur[] это массив текстур(0 - ничего, 1 - кирпич, 2 - контроллер напр. солнца)


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

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

Я всё понял. Нужно заменить текстуры на спрайты.

Вот так, например, и всё заработает:

public Image[] img = new Image[5];
private int[] items = new int[5];
private int[] counts = new int[5];
public TextMeshProUGUI[] txts = new TextMeshProUGUI[5];
public Sprite[] spriteID = new Sprite[3];
public PickUpPLUS HandCs;
private int IdItem;
// Start is called before the first frame update
void Start()
{
    for(int i = 0; i < 5; i++)
    {
        items[i] = 0;
        counts[i] = 0;
        img[i].sprite = spriteID[items[i]];
        txts[i].text = "";
    }
}
→ Ссылка