[SOLVED] The name 'etc. etc.' does not exist in the current context

“The name ‘state_sokak’ does not exist in the current context.” That is the problem according to console. I think there is no other parsing errors. As you can see the game is not completed yet.

print (myState);
	 if (myState == States.devam) {
	 	State_devam ();
	 } else if (myState == States.sokak) {
 	state_sokak ();
	 	}
	 	}

The main problem is here. “state_sokak ();” part is red. What shall i do in order to solve the problem?


     using UnityEngine;
     using UnityEngine.UI;
     using System.Collections;

      public class TextAdv : MonoBehaviour {


	public Text text;
	
	private enum States {devam, sokak, kv_0, çv_0, devam_0, ab_0, bak_0, sal_0, çatışma};
	private States myState;
	
	// Use this for initialization
	void Start () {
	
		myState = States.devam;
	
	}
	
	// Update is called once per frame
	void Update () {
	
		 print (myState);
		 if (myState == States.devam) {
		 	State_devam ();
		 } else if (myState == States.sokak) {
		 	state_sokak ();
		 	}
		 	}
		 
		
	void State_devam () {	
			text.text = "Yıl 2035, 23 Haziran. Uzun zamandır gerçekleşmekte olan Türkçü örgütlenme, ilk kez bir eylem yapıyor. Neredeyse 20 yıl önce kurulan Tigir:Er oluşumu varlığını sadece " + 
						"Facebook üzerinden yürütürken şimdi milyonlarca insanın inandığı bir oluşum haline geldi. 23 Haziran günü, Tigir:Er'in kendini dünyaya tanıttığı gün olacaktır! \n\n" +
						"Devam etmek için boşluk tuşuna bas." ;
						
			if (Input.GetKeyDown(KeyCode.Space)) {
			
				myState = States.sokak;			
		
		}
	
		
	
	}
	void State_sokak () {	
		text.text = "Sonunda Ankara'da ilk eylem için dışarıdasın. Tigir:Er'e hizmet edip önce ülkeyi, sonra dünyayı fethedeceksin. En büyük düşmanın ise " +
					"virüsler. Onları temizlemen gerek! Grubun sloganlar atarak ilerlerken bir grup K virüsü ve Ç virüsü görüyorsun.\n\n" +
					"K virüsüne yaklaşmak için K tuşuna bas.\n\n" +
					"Ç virüsüne yaklşmak için Ç tuşuna bas.\n\n" +
					"Devam etmek için D tuşuna bas.";
		if (Input.GetKeyDown(KeyCode.K)) {
			
			myState = States.kv_0;			
			
		}
		
		
		
	}
	
	void State_kv_0 () {	
		text.text = "Sen: Amına kodumun piçleri!\n\n" +
					"K virüsü: Abe bi dal sigara ver be gözünü sevem.\n\n" +
					"Sen: Postallarımız altında ezileceğiniz gün yakındır!\n\n" +
					"K Virüsü: Özür dileriz abe.\n\n" +
					"Geri dönmek için G tuşuna bas.";
		if (Input.GetKeyDown(KeyCode.G)) {
			
			myState = States.sokak;			} } }
1 Like

Hi,

Your issue is one of case-sensitivity.

if (myState == States.devam) 
{
	State_devam ();		// method being called here - name has a capital "S"
} 
else if (myState == States.sokak) 
{
	state_sokak ();		// method being called here - name has a lowercase "s"
}

…and the two corresponding methods are;

void State_devam () {	

...

}

…and

void State_sokak () {	

...

}

Note how you are calling state_sokak but the method is called State_sokak.

To resolve;

// Update is called once per frame
void Update () {

	print (myState);
	if (myState == States.devam) 
	{
		State_devam ();
	} 
	else if (myState == States.sokak) 
	{
		State_sokak ();		// the method name now has a capital "S"
	}
	
}

Thanks! I can finally continue.

1 Like

You are more than welcome Derin.

C# is case-sensitive, so this should be a good lesson that will serve you well going forward, e.g. something to check for if you run into any problems in the future :slight_smile:

Privacy & Terms