2014-10-19 158 views
1

大家好我有點卡在這裏。隨機時間我有我的gameObject Enemy Spawn。但事情是,我只想讓敵人在比賽中持續5秒。麻煩的是我根本無法摧毀這個物體。在這裏,我寫了這個代碼,試圖摧毀敵方目標:在Unity中銷燬克隆

public class SpawnManager : MonoBehaviour { 

public GameObject Enemy; 
public float mytimer; 
public float enemyHealth = 5.0f; 

void Start() 
{ 
    GameObject player = GameObject.Find("Player"); 
} 

void spawnEnemy() { 
    Transform enemy; 
    GameObject enemySpawnPoint = GameObject.Find("EnemySpawn"); 
    enemy = Instantiate(Enemy,enemySpawnPoint.transform.position,enemySpawnPoint.transform.rotation) as Transform; 
} 

void OnTriggerEnter(Collider other) 
{ 
    if (other.gameObject.name == "EnemyTrigger") { 
     mytimer = Random.Range(0,10); 
     //Debug.Log("Now Destroying"); 
     Invoke("spawnEnemy", mytimer); 
     Debug.Log("Spawn Normal"); 

     if(Enemy.name == "BloodyMary(Clone"){ 
      Destroy(Enemy, enemyHealth); 
      Debug.Log("Now Destroying"); 
     } 
     } 
    } 

    } 

每次我碰到觸發它產生一個「BloodyMary(克隆)」我正努力給毀了。有什麼建議?

+0

做了任何答案提供的答案是否正確? – 2017-09-25 15:31:36

回答

1

,上面寫着代碼:

Invoke ("spawnEnemy", myTimer); 

呼喚你spawnEnemy()功能,它創建花葯敵人克隆。它也用延時計時器進行呼叫。

如果你不想讓另一個敵人刪除那部分代碼


你也在用計時器摧毀。你可以用Destroy(Enemy)瞬間消滅。

+0

@Ghostdre如果我的答案解決了你的問題,你可以接受它讓別人知道它已經解決了。如果我沒有請讓我知道。 – FunctionR 2014-10-27 21:04:34

+0

誰曾投下我的答案請解釋。如果你提出一個有效的觀點,我會很樂意刪除我的答案。但是,我知道我的答案是正確的。 – FunctionR 2014-12-16 20:30:40

+1

我不明白這可能值得投票。不知道是誰做的,但值得投票選出最小的答案。我要說的唯一的事情就是這個問題是關於在5秒後摧毀並且你的回答是針對每5秒產卵一次。過去那個,有+1。 – 2014-12-16 21:21:22

2

在我眼中,敵人處理自己的毀滅會更有意義。這意味着一個敵人會對自己的持續時間負責,如果在任何時候你可能在場上有大量的敵人,那麼我認爲這會更有意義。

我會創建一個co-routine,它只需等待5秒,然後調用Destroy(gameObject)函數來銷燬它自己。它可能看起來有點像這樣:

IEnumerator DeathTimer(float duration) 
{ 
    yeild return new WaitForSeconds(duration); 
    Destroy(gameObject); 
} 

那麼你的「開始()」方法內我會再調用協同例程(沒有做作爲一個正常的方法)。

void Start() 
{ 
    // calls the coroutine to start 
    StartCoroutine("DeathTimer", duration); 
} 

注:這會使用這樣的事情來完成使用字符串(如上面)調用協同例程,那麼你可以稱之爲「StopCoroutine(」方法名「);」這將隨時停止協程。這比將一個方法參數傳入StartCoroutine()更好。

這意味着你的產卵者現在純粹負責產生敵人,如果他們持續太久,他們對自己的死亡負責。那麼你並不是試圖管理產卵者的多個敵人,你不需要擔心在那裏跟蹤他們。

我有一位朋友在前些日子問了一個非常類似的問題,他用這個,它工作得很好。

+0

我已經編輯了第一個代碼片段中的語法,一位朋友向我指出它稍微關閉了。 – 2014-10-21 13:26:53