2016-10-13 49 views
1

例如,如果原始預製件被破壞,其他零件也被破壞。有沒有更多的克隆預製... 我必須摧毀原始預製...因爲它是敵人... 有沒有什麼辦法可以永久製作克隆prdfab,即使原件被刪除?例如,當原始預製件被刪除時,所有預製件都被銷燬

IEnumerator timedelay() 
    { 
     yield return new WaitForSeconds(3f); 
     Debug.Log("sdfaDF"); 
     br = Instantiate(a ,new Vector3 (-4,-6,0), Quaternion.identity) as   GameObject; 
     br.tag = "a"; 
     makebox(); 
    } 


void OnTriggerEnter2D(Collider2D other) 
    { 

     if (other.gameObject.tag == "a") 
     { 

      Destroy(other.gameObject); 
      gm.mylife -= 1; 

     } 
    } 

如果原始預製件符合OnTriggerEnter2D,則它將銷燬...然後克隆預製件停止創建。即使原來的一個被破壞,我也需要使克隆的預製件不被破壞。

+0

你的代碼是非常草率和不完整的,但基於我所看到的,你想克隆GO「a」。當它被破壞時,當然你不能從它實例化它就像。從一張紙上覆制文本,然後刻錄「源表」,但仍想從中複製文本。你不能。它不存在了... –

+0

@Mark感謝您的批評意見...我通過使用resource.load解決了問題。那麼它工作得很好... – fluentparrot

回答

0

使用您提供的代碼進行調試非常困難,但我可以考慮1場景。確保你不在裏面。

您可能已經銷燬了原始預製件,而不是克隆,我的意思是中的實際預製項目編輯器中的預製件。如果你想消滅你可以在一個陣列保存,然後遍歷數組呼籲各Destroy()的所有克隆

[SerializeField] GameObject originalPrefab; 
var baseClone = Instantiate(originalPrefab); 
var clone1 = Instantiate(baseClone); 
var clone2 = Instantiate(baseClone); 
var clone3 = Instantiate(baseClone); 
Destroy(baseClone); // Only destroy baseClone 

[SerializeField] GameObject originalPrefab; // You dragged & dropped your prefab here 
var clone1 = Instantiate(originalPrefab); 
var clone2 = Instantiate(originalPrefab); 
var clone3 = Instantiate(originalPrefab); 
var clone4 = Instantiate(originalPrefab); 
Destroy(originalPrefab); // If you do this you destroy everything. 

相反,試試這個。

+0

謝謝你的幫助,但我已經通過使用resource.load來弄清楚了。它現在工作得很好。我也考慮你的意見。 – fluentparrot

相關問題