2017-09-10 12 views
1

サバイバルタイプのゲームでは、4つの異なる場所に敵を生みたい。問題は、それらがすべて同じ場所に出現することです。どうしてこれなの?これは途中でUnityにある。すべての敵は同じ場所で産卵する

C#のスクリプト:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class Spawner : MonoBehaviour { 
public int spawnHere = 0; 
public int spawnTimer = 0; 
public int spawnRate = 1; 
public Transform spawner1; 
public Transform spawner2; 
public Transform spawner3; 
public Transform spawner4; 
public GameObject melee1; 


// Use this for initialization 
void Start() { 



} 

// Update is called once per frame 
void Update() { 
    spawnTimer = spawnTimer + spawnRate; 
    spawnHere = Random.Range (1, 5); 
    if(spawnTimer >= 120) { 
     if(spawnHere == 1) { 
      Instantiate (melee1, spawner1); 
} 
     if(spawnHere == 2) { 
      Instantiate (melee1, spawner2); 
     } 
     if(spawnHere == 3) { 
      Instantiate (melee1, spawner3); 
     } 
     if(spawnHere == 4) { 
      Instantiate (melee1, spawner3); 
     } 
     spawnTimer = 0; 

    } 
} 
} 
+0

おそらくあなたの問題ではありませんが、最後のケースでは 'Instantiate(melee1、spawner4);が必要ですか?インスタンス化しない(melee1、spawner3); '? – Carcigenicate

+0

ああ、はい、しかし、あなたが言ったように、それは問題ではありません。 –

+0

'spawnHere'の値を表示して、それが何を提供しているのか確認しましたか? – Carcigenicate

答えて

0

は、あなたがUIに正しく産卵を接続することがありますか?

ウォッチこの:Unity - Survival Shooter - Spawning Enemies

これは私のプロジェクトのためにかなり良い働きました。

また、Spawnを計時するためにTime.deltaTimeも使用する必要があります。すべてのシステムが同じ量のフレーム/秒を出力するわけではありません。 BTW

Unity - docs - Time.deltaTime

Random.rand(MIN、MAX)

Unity - docs - Random.Rand

は、可能な値として最大値を含みます。

関連する問題