Deselect a selected object?

My script allows the player to select an object and then change is size and shape. I am wanting to be able to deselect the object when the player has clicked on a different object, but I dont know where to start. Could someone help me out?

    var selected = false;
    var SelectedGameObject : GameObject;
     
     
    function Update (){
     
    if(Input.GetMouseButtonDown(0)){
     
    var hit : RaycastHit;
    var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
     
    if (Physics.Raycast (ray, hit, 100.0)){
    SelectedGameObject = hit.collider.gameObject;
     
    selected = true;
    Wait(hit.collider.renderer);
    }
    }
     
     
    if(selected)
    {
    Change();
    }
    }
     
    function Change (){
     
    if(Input.GetKeyDown(KeyCode.A)){
    transform.localScale += Vector3(0.1,0,0);
    }
     
    if(Input.GetKeyDown(KeyCode.D)){
    transform.localScale += Vector3(-0.1,0,0);
    }
     
    if(Input.GetKeyDown(KeyCode.W)){
    transform.localScale += Vector3(0,0,0.1);
    }
     
    if(Input.GetKeyDown(KeyCode.S)){
    transform.localScale += Vector3(0,0,-0.1);
    }
    }
     
    function Wait(rend : Renderer){
     
    var originalColor = rend.material.color;
    rend.material.color = Color.yellow;
    yield WaitForSeconds(2);
    rend.material.color = originalColor;
    }

You could get your selectables using GameObject.FindObjectsOfType, then iterate through them when one is clicked. Unfortunately I’m a C# bloke, so somebody will have to do the translating:

MyCoolScript[] allSelectables = (MyCoolScript) GameObject.FindObjectsOfType<MyCoolScript>();
foreach (MyCoolScript myCoolScript in allSelectables) {
	myCoolScript.selected = false;
}

I fixed it by doing this :slight_smile:

    var selected = false;
    var SelectedGameObject : GameObject;
    
    
    function Update (){
    
    if(Input.GetMouseButtonDown(0)){
     
    var hit : RaycastHit;
    var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
     
    if (Physics.Raycast (ray, hit, 100.0)){
    SelectedGameObject = hit.collider.gameObject;
     
    selected = true;
    
    } else {
    selected = false;
    }
    }
    
    if(selected){
    Change();
    }
    }
    
    
    function Change (){
     
    if(Input.GetKeyDown(KeyCode.A)){
    SelectedGameObject.transform.localScale += Vector3(0.2,0,0);
    }
     
    if(Input.GetKeyDown(KeyCode.D)){
    SelectedGameObject.transform.localScale += Vector3(-0.2,0,0);
    }
     
    if(Input.GetKeyDown(KeyCode.W)){
    SelectedGameObject.transform.localScale += Vector3(0,0,0.2);
    }
     
    if(Input.GetKeyDown(KeyCode.S)){
    SelectedGameObject.transform.localScale += Vector3(0,0,-0.2);
    }
    }