2017-04-19 4 views
0
void Spawnwave() 
{ 
    //Standard unit is lvl1 unit 
    int saverUnit = 1; 
    int saverPossibilty = 100; 
    System.Random randy = new System.Random(); 
    //This for gets the possibility for the first possible enemy 
    for (int i = 0; i < possibilty.Length; i++) 
    { 
     if (possibilty[i] != 0) 
     { 
      saverUnit = i; 
      saverPossibilty = possibilty[i]; 
      break; 
     } 
    } 

    //As only 2 kind of units per wave can be spawned +1 spawns the "stronger" one 
    for (int i = 0; i < level+5; i++) 
    { 
     if (randy.Next(100) > saverPossibilty) 
     { 
      StartCoroutine(SpawnUnit(saverUnit + 1)); 
     } 
     else 
     { 
      StartCoroutine(SpawnUnit(saverUnit)); 
     } 
    } 
} 

IEnumerator SpawnUnit(int unit) 
{ 
    Instantiate(enemies[unit],spawnPoint.position, spawnPoint.rotation); 
    yield return new WaitForSeconds(timeBetweenEnemies); 
} 

だから私はUnity Tower Defenseゲームを作ろうとしています。これらの2つの方法は、レベルの敵の値を0.5秒間隔で5発生成する必要があります。私はそれをデバッグし、コードを実行しますが、私はちょうど新しいgameobjectsを取得しません。ユニティでゲームオブジェクトを生成できない

私は例:Youtube(brackeys)と彼のTower Defense Tutorialで解決策を探しましたが、私は間違いを見つけられません。

ありがとうございました。 Mika。

+1

Unityで 'System.Random'を呼び出す必要はありません。組み込みの' UntityEngine.Random'を代わりに使用してください。 –

+1

このコードでは本当に問題はありません。 'System.Random'は問題ありません。 –

+1

ゲームを実行していた階層は、あなたが望んでいるものと異なる位置に産卵しているかもしれません。 – CNuts

答えて

0

@ScottChamberlainが示すように、次のようにランダム生成を呼び出す必要があります.10は任意の数です。

int rnd = Random.Range(0,10) 

私はこれをテストすることができませんが、現在、私のinitalの考えは、このライン

Instantiate(enemies[unit],spawnPoint.position, spawnPoint.rotation); 

は最後に、どのようにあなたの可能性配列を

GameObject clone = Instantiate(enemies[unit],spawnPoint.position, spawnPoint.rotation) as GameObject; 

ことをやっていることならされています。

+0

インスタンス化されたオブジェクトを変数に格納することはオプションです。これは、インスタンシエーションにまったく影響しません。 –

+0

my配列は、0〜100の値を持つ整数の配列です。私はすべての敵のために別の配列を持っています。たとえば、長さが3の敵配列がある場合、Possible配列の値は{90,10,0}です。その整数で決めると、ゲームが進行するにつれて、より良い敵を生み出す可能性が増し、その数が増える可能性が増したいと考えています。私のことはちょうどうまく動作するはずだったと思います...しかし、どういうわけか、ゲームオブジェクトは生成されません。 – Mreifenberger

+0

したがって、整数の配列を使用して敵の発動確率を決定しています。 coルーチンが実際に呼び出されていることをデバッグしましたか? –

関連する問題