やまめも

【 ゲーム開発・日々のことについて 】

【Unity エラー】CS1061 存在しないクラスやメソッドにアクセス

CS1061:存在しないメソッド、クラス、メンバーにアクセスしようとしたときに生じる。

書き間違えの可能性あり!

エラー内容

error CS1061: Type `UnityEngine.GameObject' does not contain a definition for `Image' and no extension method `Image' of type `UnityEngine.GameObject' could be found (are you missing a using directive or an assembly reference?)



ケース1
修正前

GameObject.Find("time_out").Image.enabled = false;

修正後

GameObject.Find("time_out").GetComponent<Image>().enabled = false;



ケース2
修正前

OnCollisionEnter2D(Collision2D col){
	if(col.GameObject.transform.tag == "missileLeft"){
		GetComponent<SpriteRenderer>().color = new Vector4(1, 0, 0, 1);
	}
}

修正後

OnCollisionEnter2D(Collision2D col){
	if(col.gameObject.transform.tag == "missileLeft"){
		GetComponent<SpriteRenderer>().color = new Vector4(1, 0, 0, 1);
	}
}



ケース3
エラー内容

error CS1061: Type `UnityEngine.AudioSource' does not contain a definition for `enable' and 
no extension method `enable' of type `UnityEngine.AudioSource' 
could be found (are you missing a using directive or an assembly reference?)


public void MusicOnOff(Toggle toggle){
	// トグルを使ってオンオフをコントロールする
	MusicBackground.enable = toggle.isOn;

	if(toggle.isOn){
		PlayerPrefs.SetInt("MusicOnOff",1);
	}
	else{
		PlayerPrefs.SetInt("MusicOnOff",0);
	}
}



gameObjectとGameObjectの違い

関連サイト