###前提・実現したいこと
Unityで、「制限時間内のみ行動可能にする機能」を実装したいと考えています。
スクリプトは、「制限時間を表示するスクリプト(以下TimeScript)」と「bool変数がtrueの間クリックの回数をカウントするスクリプト(以下ClickCount)」の2つです。
それぞれのスクリプトは、同じCanvas下の異なるTextにアタッチされています。
###発生している問題・エラーメッセージ
TimeScript内でClickCountスクリプトのbool変数を書き換えるため、ClickCountスクリプトがアタッチされているTextを取得してからスクリプトを参照しようとしているのですが、いざ参照先の変数を書き換えようとするとエラーが起きてしまいます。
[エラーメッセージ]
The name `cc' does not exist in the current context
###該当のソースコード
c#
1public class TimeScript : MonoBehaviour { 2 3 //制限時間 4 private float time = 10; 5 //タイムアップ時のテキスト 6 public GameObject finishText; 7 //クリック回数をカウントするテキスト 8 public GameObject clickCountText; 9 10 // Use this for initialization 11 void Start () { 12 //初期カウントを表示 13 //float型からint型へCastし、String型に変換して表示 14 GetComponent<Text>().text = ((int)time).ToString(); 15 //finish文字を非表示にする 16 finishText.SetActive (false); 17 //ClickCountスクリプトを参照 18 ClickCount cc = clickCountText.GetComponent<ClickCount>(); 19 } 20 21 // Update is called once per frame 22 void Update () { 23 //1秒に1ずつ減らしていく 24 time -= Time.deltaTime; 25 //finish文字を表示する 26 if (time < 0) { 27 StartCoroutine ("Finish"); 28 } 29 //マイナスは表示しない 30 if (time < 0) time = 0; 31 GetComponent<Text> ().text = ((int)time).ToString (); 32 } 33 34 //finishコルーチン 35 IEnumerator Finish(){ 36 //finish文字を表示 37 finishText.SetActive (true); 38 //クリックを受け付けない 39 cc.isPlay = false; /////ここでエラーが起きます。///// 40 yield return new WaitForSeconds (1.0f); 41 } 42}
c#
1public class ClickCount : MonoBehaviour { 2 3 private int counter = 0; //押された回数を格納する変数 4 const int counterMax = 50; //最大値 5 6 public bool isPlay = true; //行動可能か 7 8 // Use this for initialization 9 void Start () { 10 11 } 12 13 // Update is called once per frame 14 void Update () { 15 if (isPlay == true) { 16 //左クリックされた時 17 if (Input.GetMouseButtonDown (0)) { 18 counter++; 19 if (counter <= counterMax) { 20 //クリックされた回数を表示する 21 GetComponent<Text> ().text = counter.ToString (); 22 } 23 } 24 } 25 } 26}
エラーメッセージからccが認識されていないと思うのですが、誤字脱字は確認出来ないため、
ClickCount cc = clickCountText.GetComponent<ClickCount> ();
の部分が間違えている可能性を考えたのですが、この部分はエラーが起こっておらず原因が分からずにいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/04 14:47