4.6 New UI How to change Button Image?

23,686

Solution 1

Tested and Working.

public Sprite myImage;
public Button myBtn;
void Start(){

         myImage = Resources.Load<Sprite>("BTNS"); // Make sure not to include the file extension

         //Make sure it is added in the Inspector. Or reference it using GameObject.Find.
         myBtn.image.sprite = myImage; // That is right, no need to GetComponent.

}

Solution 2

Also you can use the properties of Button Component

http://docs.unity3d.com/Manual/script-Button.html

Specifically you can set the button's behavior based on events.

Example:

Empty properties

And then :

Button with sprite swap behavior on events

Share:
23,686
Mastro
Author by

Mastro

Certified Scrum Trainer and PMI Certified Agile Practitioner. Software Development Manager and .NET Developer and Game Developer

Updated on June 25, 2020

Comments

  • Mastro
    Mastro almost 4 years

    Everything I search is based on the old UI.

    I've tried the following

    button.image = Resource.Load<Image>("...");
    button.GetComponent<Image>() = Resources.Load<Image>("....");
    button.GetComponent<Button>().image = Resources.Load<Image>("....");
    button.GetComponent<Image>().sprite = Resources.Load<Sprite>("....");
    

    I want to change the button image on an event.