2014-10-27 28 views
1

進入一個小問題。一旦我觸發了一個觸發器,我想讓一個敵人產生。我只想在場上有一名敵人。現在,當我再次觸發觸發器時,我希望場上的敵人在下一個敵人即將產卵時自我消滅。有關如何這樣做的任何想法?我是否對此使用「摧毀」作業?繼承人我有什麼:觸發器...產卵...摧毀統一3D 3D

public GameObject Enemy; 
public float mytimer; 


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

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

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

     } 
    } 

    } 
+0

我懷疑other.gameObject.name ==「EnemyTrigger」是造成你不要在你的if語句得到的,因爲其他看起來好像沒什麼問題。你可以在OnTriggerEnter的if裏面放一個調試日誌,看看它是否被調用? – 2014-10-27 21:50:11

回答

0

您可以將敵人存儲到一個私有變量和實例化一個新的人之前每一次摧毀它。這樣你將只有其中一個。

private GameObject enemy = null; 
void spawnEnemy() { 
    if(enemy != null){ 
     Destroy(enemy); 
    } 
    GameObject enemySpawnPoint =  GameObject.Find("EnemySpawn"); 
    enemy = Instantiate(Enemy,enemySpawnPoint.transform.position,enemySpawnPo int.transform.rotation) as GameObject; 
}