Goondude
Goondude

Reputation: 101

Unity2d : I want to change sprite in runtime by click on it

I want to change sprite in runtime by click on it . Now I already have sprite-A on Screen , and when i click on it , i want it to draw sprite-B and delete sprite-A . ( sprite-A and sprite-B are same size )

and here are my latest code . Now i can draw sprite-B (but different position from sprite-A ) , and i really dont know how to delete sprite-A :(

public Sprite checkbox;
private SpriteRenderer myRenderer;
void Start () 
{  
    checkbox = Resources.Load<Sprite>("sprite-B");

}
void OnMouseDown()
{
    GameObject check = new GameObject();
    check.AddComponent<SpriteRenderer>();
    check.GetComponent<SpriteRenderer>().sprite = checkbox;
}

really need some help :D big thanks !

Upvotes: 1

Views: 5520

Answers (2)

Nintendood
Nintendood

Reputation: 19

Here's what I did that worked in C#.

public Sprite buttonDown;
public Sprite buttonUp;

void OnMouseDown() {
    SpriteRenderer sr = gameObject.GetComponent<SpriteRenderer>();
    sr.sprite = buttonDown;
}

void OnMouseUp () {
    SpriteRenderer sr = gameObject.GetComponent<SpriteRenderer>();
    sr.sprite = buttonUp;
    Application.LoadLevel(1);
}

Upvotes: 1

Deepika C P
Deepika C P

Reputation: 1303

Try this

#pragma strict

var newSprite : Sprite;

var IsMouseOver : boolean=false;

function Start () {
    //print(gameObject.name);
}

function Update () {
    if (Input.GetMouseButtonDown(0))
    {
        GetComponent(SpriteRenderer).sprite = newSprite;
    }    
}

Upvotes: 1

Related Questions