Changing texture with raycast on iPad

Hi,
I’ve got an application on iPad, where I change the render of a building (transparent/opaque) when touching this building
My script here works well to switch from initial Opaque to Transparent for the 3 buildings tagged (casault, education and felix) but then, once a building is transparent, if I touch this building again, he doesn’t go back to Opaque . Any ideas why ???

var _casault : GameObject;
var _education : GameObject;
var _felix : GameObject;
var material_transparent: Material;
var material_opaque: Material;
var hit: RaycastHit;

var casault_visible: boolean=true;
var education_visible: boolean=true;
var felix_visible: boolean=true;

function Update(){

for(var touch: Touch in Input.touches)
{
	if(touch.phase==TouchPhase.Began)
	{
		var ray= Camera.main.ScreenPointToRay(touch.position);
		if(Physics.Raycast(ray,hit))
		{
			if(hit.collider.tag=="Casault"&&casault_visible=true)
			{
			_casault.renderer.material=material_transparent;
			casault_visible=false;
			}

			if(hit.collider.tag=="Education"&&education_visible=true)
			{
			_education.renderer.material=material_transparent;
			education_visible=false;
			}

			if(hit.collider.tag=="Felix"&&felix_visible=true)
			{
			_felix.renderer.material=material_transparent;
			felix_visible=false;
			}

			if(hit.collider.tag=="Casault"&&casault_visible=false)
			{
			_casault.renderer.material=material_opaque;
			casault_visible=true;
			}

			if(hit.collider.tag=="Education"&&education_visible=false)
			{
			_education.renderer.material=material_opaque;
			education_visible=true;
			}

			if(hit.collider.tag=="Felix"&&felix_visible=false)
			{
			_felix.renderer.material=material_opaque;
			felix_visible=true;
			}
		}
	}



}
}

I am not really sure if this will work but try this:

function Update(){

for(var touch: Touch in Input.touches)
{
if(touch.phase==TouchPhase.Began)
{

   var ray= Camera.main.ScreenPointToRay(touch.position);
   if(Physics.Raycast(ray,hit))
   {
     if(hit.collider.tag=="Casault"&&casault_visible=true)
     {
     _casault.renderer.material=material_transparent;
     casault_visible=false;
     }else if(_casault.renderer.material=material_opaque){

casault_visible=true; }

}

}

}

}

Try using else instead of just using if. Good Luck!!

Cool it works with “Else if”, except the condition was not the good one
Here the code working:

    function Update(){

for(var touch: Touch in Input.touches) { if(touch.phase==TouchPhase.Began) {

   var ray= Camera.main.ScreenPointToRay(touch.position);
   if(Physics.Raycast(ray,hit))
   {
     if(hit.collider.tag=="Casault"&&casault_visible==true)
     {
     _casault.renderer.material=material_transparent;
     casault_visible=false;
     }else if(hit.collider.tag=="Casault"&&casault_visible==false){
_casault.renderer.material=material_opaque
casault_visible=true; }

}

}

}

}

Thank you !