2016-05-06 5 views
0

乱数を生成しようとしていますが、< = 1の場合、astroidが生成されます(はい、間違っていますが、それは私のコード上にあるので、私は今それを変更したくない)。しかし、私は問題を抱えています。私はちょうどHSコンピュータ科学の私の最終プロジェクトのための団結のゲームをコード化するためにいくつかのC#を学んだ。 whileループ自体については、3 Qが入っています。whileループ、クラスの問題、別のクラスの関数を呼び出す

"class、struct、またはinterfaceメンバ宣言中のトークンが無効です"というメッセージが表示されます。 while状態で

、私は私のプレーヤーのクラスでisDeadと呼ばれるブール変数をチェックしようとしています。エラーはそれがフィールドであると言いますが、タイプのように使用されます。そして、括弧が一致してもクラスはwhileループで終了しています(私は知っていますが、私はC++に慣れています)、それはspawnStuff()関数が動作しなくなっています。申し訳ありませんが、これらは単純な質問ですが、私は他のサイトから私の問題を解決する答えを見つけることができませんでした。 Unityフォーラムは私の投稿を削除しました。 UnityEngineを使用して;

; using System.Collections;

public class CallSpawn : MonoBehaviour 
{ 
    public Transform astroid; 
    public Vector3 position; 

    while (Player.isDead == false) 
    { 
     bool generate() 
     { 
      int rnd = Random.Range(0, 10); 
      if (rnd <= 1) 
      { 
       return true; 
      } 
      else 
      { 
       return false; 
      } 
     } 

    } 
     void spawnStuff() 
     { 
      if (generate() == true) 
      { 
       position = new Vector3(Random.Range(-30.0F, 30.0F), 20, Random.Range(0.0F, 0.0F)); 
       Instantiate(astroid, position, Quaternion.identity); 
      } 
     } 
} 
+0

ええと、それは私だけですか、またはクラスの中であなたの 'while'ループですか、*どのメソッドの外ですか? – hyde

+0

もしC++に慣れていたら、どうしてあなたはそれがOKだと思うのか分かりません。確かにC++では大丈夫だからです。 – hyde

答えて

0

私はUnityに精通していませんが、私はC#を理解していますが、whileループはメソッドのコンテキスト外です。ログには、値を返すので、クラスがwhileループで終了していると表示されます。言い換えれば、whileループは、関数の中にあるべきであり、逆の関数ではありません。次のコードは、それが動作する順序が変更される回数が最も少なくなります。

public class CallSpawn : MonoBehaviour 
{ 
    public Transform astroid; 
    public Vector3 position; 

    bool generate() 
    { 
     int rnd = Random.Range(0, 10); 
     if (rnd <= 1) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     }   
    } 

    void spawnStuff() 
    { 
     while (Player.isDead == false) 
     { 
      if (generate() == true) 
      { 
       position = new Vector3(Random.Range(-30.0F, 30.0F), 20, Random.Range(0.0F, 0.0F)); 
       Instantiate(astroid, position, Quaternion.identity); 
      } 
     } 
    } 
} 

私はそれはあなたが何をする必要があるか実現するとは思わないが、少なくとも、あなたは仕事と、おそらく次のステップはどうあるべきかを把握するためのコードを取得することができます。私はそれが助けて欲しい

+0

ありがとう!私は何を考えているのかわからない、それは本当に愚かな監督だった。私は必要以上に複雑にしました。助けてくれてありがとう! – aaronmh

関連する問題