2015-04-23 46 views
0

晚上好,我正在這個2D射擊遊戲爲我的一個學校任務,基本上你必須拍攝從左側移動到右側的敵人屏幕一側。需要讓我的spawnmanager隨着時間的推移產卵對象更快(Unity c#)

爲了逐漸增加難度,我試圖增加敵人產生的間隔,但是我無法讓我的腳本工作。這裏是我到目前爲止,虛空更新部分就是我試圖提高速度(沒有運氣),希望有人可以給我一個指針:)

using UnityEngine; 
using System.Collections; 
public class Spawner : MonoBehaviour { 
    public bool SpawnerEnabled; 
    public GameObject Enemy; 
    public float SpawnInterval; 
    void Start() 
    { 
     StartCoroutine (SpawnEnemy()); //starter spawnenemy koden 
     SpawnerEnabled = true; 
    } 
    void Update() 
    { 
     public float SpawnInterval+0.001; 
     yield return new WaitForSeconds(1); 

    } 

    IEnumerator SpawnEnemy() 
    { 
     while (true) { 
      if(SpawnerEnabled) 
      { 
      GameObject alien = Instantiate(Enemy) as GameObject; 
       alien.name = "Enemy"; //Dette gør at clonen ikke kommer til at hedde enemy(clone) men bare enemy 
       alien.transform.position = new Vector3(-20,Random.Range(-4f,5f), 2); // inden for intervallet -4 og +5 på y axen kan objektet spawne, det er dog fastlåst til kordinat -11 på Yaxen og +2 på Zaxen 

       yield return new WaitForSeconds(SpawnInterval); // her venter den det antal sekunder vi sætter den til for at spawne næste enemy 

      } 
       yield return null; 
      } 
    } 
} 

回答

1

嘗試下面的代碼,但你可能需要定製爲您的使用

using UnityEngine; 
using System.Collections; 
public class Spawner : MonoBehaviour { 
    public bool SpawnerEnabled; 
    public GameObject Enemy; 
    public float SpawnInterval; 
    private Float timer; 
    void Start() 
    { 
     SpawnerEnabled = true; 
     StartCoroutine (SpawnEnemy()); 
    } 

    IEnumerator SpawnEnemy() 
    { 
     while (SpawnerEnabled) { 
      timer +=Time.deltaTime(); 
      if(timer >= SpawnInterval){ 
       GameObject alien = Instantiate(Enemy) as GameObject; 
       alien.name = "Enemy"; 
       alien.transform.position = new Vector3(-20,Random.Range(-4f,5f), 2); 

       yield return new WaitForSeconds(SpawnInterval); 
       timer = 0; 
       SpawnInterval += Mathf.Sqrt(time); 
      } 
    } 
} 

Mathf.Sqrt將增加spawninterval像圖下方spawnInterval

以上圖片僅供參考。

相關問題