Checking Tiles For Match Problem Using If Statements

Howdy all. Got a quick one as i am stuck. I have this code for a tile match game. Now the code works for the following matches only. The Numbers Signify the tile in Squence

  • 1,2,3,4,5
  • 2,3,4,5
  • 3,4,5

it does not work for the following matches

  • 1,2,3,4
  • 1,2,3
  • 2,3,4

here is the code. Any help would be appreciated.

void CheckForTileMatch () {

		if (OneOne.renderer.material.name == OneTwo.renderer.material.name) {
			if (OneTwo.renderer.material.name == OneThree.renderer.material.name) {
				if (OneThree.renderer.material.name == OneFour.renderer.material.name) {
					if (OneFour.renderer.material.name == OneFive.renderer.material.name) {
						Debug.Log ("You have a 5 x Match!!!");
					}
				}
			}		
		} else if (OneOne.renderer.material.name == OneTwo.renderer.material.name) {
			if(OneTwo.renderer.material.name == OneThree.renderer.material.name) {
				if (OneThree.renderer.material.name == OneFour.renderer.material.name){
					Debug.Log ("You have a 4 x Match!!!");
				}
			}		
		} else if (OneTwo.renderer.material.name == OneThree.renderer.material.name) {
			if(OneThree.renderer.material.name == OneFour.renderer.material.name) {
				if(OneFour.renderer.material.name == OneFive.renderer.material.name) {
					Debug.Log ("You have a 4 x Match!!!");
				}
			}
		} else if (OneOne.renderer.material.name == OneTwo.renderer.material.name) {
			if(OneTwo.renderer.material.name == OneThree.renderer.material.name) {
				Debug.Log ("You have a 3 x Match!!!");
			}
		} else if (OneTwo.renderer.material.name == OneThree.renderer.material.name) {
			if(OneThree.renderer.material.name == OneFour.renderer.material.name) {
				Debug.Log ("You have a 3 x Match!!!");
			}
		} else if (OneThree.renderer.material.name == OneFour.renderer.material.name) {
			if(OneFour.renderer.material.name == OneFive.renderer.material.name) {
				Debug.Log ("You have a 3 x Match!!!");
			}
		}
	}

also if anyone can suggest a more efficient way of doing this i am all for it :).

Are you looking for this?

void CheckForTileMatch () {

int matches = 1; 

if (OneOne.renderer.material.name == OneTwo.renderer.material.name) {
	matches++; 
}	 
if (OneTwo.renderer.material.name == OneThree.renderer.material.name) {
	matches++; 
}
if (OneThree.renderer.material.name == OneFour.renderer.material.name) {
	matches++; 
}
if (OneFour.renderer.material.name == OneFive.renderer.material.name) {
	matches++; 
}	

Debug.Log("You have a "+matches+" x Match!!!");
}