Как заменить картинку скриптом?

240
11 апреля 2017, 07:55

Всем привет.

Есть ui image и нужно, чтобы при событии заменялась картинка на другую.
Как можно заменить картинку скриптом?

Это то, что я смог сделать, но это не хочет работать:

img1.GetComponent().sprite = Resources.Load("2.png");

и так

img1.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("2.png");
Answer 1

Предположу, что так:

img1.GetComponent<Image>().sprite = Resources.Load<Sprite>("2");

или так:

img1.GetComponent<Image>().sprite = Resources.Load("2") as Sprite;

При загрузке с ресурсов не нужно указывать расширение файлов. Загрузка ориентируется по имени. Плюс, емнип, у UI кнопок компонент не SpriteRenderer, а Image

Если не сработает .sprite, попробуй через overrideSprite, т.е.

img1.GetComponent<Image>().overrideSprite = Resources.Load<Sprite>("2");

Кстати, если img1 это ссылка на объект UI типа Image, то можно писать сразу

img1.sprite = Resources.Load<Sprite>("2");

безо всяких GetComponent<Image>()

Напомню, что при таком подходе в настройках текстуры должен быть выставлен TextureType - Sprite (2D and UI), SpriteMode - Single.

Если у картинки тип Texture, то нужно будет в начале загружать как текстуру, а потом применять Sprite.Create для создания спрайта.

READ ALSO
Нужна программа в установщике Windows Installer

Нужна программа в установщике Windows Installer

Коротко опишу проблему: нужна программа зашитая в установщик Windows Installer и при этом небольшого размераРаботаю с WMI, событиями WMI в частности

192
Подключение System.Drawing в dll библиотеку С#

Подключение System.Drawing в dll библиотеку С#

Делаю динамическое подключение классов и возникла необходимость вынести код в dll библиотекуПо умолчанию System

285
Окно отображается ни по центру WPF

Окно отображается ни по центру WPF

Суть такаяСоздано окно Window

283