2017-06-16 118 views
1

我試圖在每次調用NewSpawn()時實例化一個殭屍預製件,這是當reSpawn變量變爲'true'(通過檢查器)時。但是,一旦我實例化了一個殭屍,它會對殭屍的無限循環進行無限循環。 [克隆克隆克隆]如何限制每個方法調用一個殭屍實例化? (我想打10個殭屍,而不是10,000。 謝謝! Errors for Zombie Navigation and instantiationUnity:GameObject反覆實例化問題

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

public class Zombie : MonoBehaviour { 

    public GameObject zombiePrefab; 
    public Transform zombieSpawnPoint; 
    private Transform[] spawnPositions; 
    public bool reSpawn = false; 
    private bool lastToggle = false; 

    // Use this for initialization 
    void Start() { 
     spawnPositions = zombieSpawnPoint.GetComponentsInChildren<Transform>(); 
    } 

    private void NewSpawn() //spawn location of newZombie 
    { 
     Instantiate(zombiePrefab, transform.position, transform.rotation); 
     int i = Random.Range(1, spawnPositions.Length); 
     transform.position = spawnPositions[i].transform.position; 

    } 


    void Update() { //T-toggle 
     if (reSpawn != lastToggle) 
     { 
      NewSpawn(); 
      reSpawn = false; 
     } 
     else 
      lastToggle = reSpawn; 
    } 
} 

回答

3

只需撥打NewSpawn()在按鈕單擊事件,而不是設置reSpawn爲true。

除此之外這並未」任何意義。

else 
{ 
    lastToggle = reSpawn; 
} 

他們已經等於

+0

好了,想通了,它這是因爲被實例化的預製具有殭屍腳本。當我刪除它時,它被單例化。但是,我遇到了殭屍預製不接受場景的玩家變換的問題,並且當我將玩家預製時,他們不再朝着玩家跑去。我如何讓殭屍向玩家預製的殭屍奔跑,而不是玩家場景? – BenSmith

+0

@BenSmith這是一個完全不同的話題。考慮爲此提出一個新問題。我會盡力幫助你。 – Deadzone