2016-06-27 81 views
2

你好,我已經創建了一個系統,找到一個特定的模型,併產生它,但它會有意識地克隆對象反覆,儘管我試圖找到方法來結束函數或錯誤的布爾不工作,關於如何做這件事的任何建議都會很棒。 謝謝你的時間和耐心。對象不斷克隆C#unity

void Update() 
{ 




if (NKCell.GetComponent<ModelChangeScript>().HighqualityModel == true) 
    { 

     HQModelSpawn(); 



public void HQModelSpawn() 
{ 
    HighQualityModel = false; 

    Transform[] HQTransforms = this.GetComponentsInChildren<Transform>(); 



    foreach (Transform t in HQTransforms) 
    { 
     if (t.gameObject.CompareTag("HighQualityModel")) 

     { 
      HQMesh = t.gameObject; 


      Instantiate(t.gameObject, CurrentPosition, Currentrotation); 




      transform.position = CurrentPosition; 
      transform.rotation = Currentrotation; 



      Debug.Log("Found " + t); 

      break; 
     } 

    } 


} 
+3

更新將每幀運行...也許你應該在Start中實例化對象嗎? –

+0

我剛剛嘗試過,它不能以這種方式工作,我相信只有當場景啓動時纔開始。 – ryand444

+0

@ ryand444開始是物體生命的開始,而不是場景生活。 – Catwood

回答

3

所有你需要做的這Start Event,如果你不願意這樣做,那麼首先,更新的代碼如下,你應該假布爾也如下面的代碼提示。

void Update() 
{ 
if (NKCell.GetComponent<ModelChangeScript>().HighqualityModel == true) 
    { 
     HQModelSpawn(); 
NKCell.GetComponent<ModelChangeScript>().HighqualityModel = false; 
    } 


public void HQModelSpawn() 
{ 
    HighQualityModel = false; 

    Transform[] HQTransforms = this.GetComponentsInChildren<Transform>(); 



    foreach (Transform t in HQTransforms) 
    { 
     if (t.gameObject.CompareTag("HighQualityModel")) 

     { 
      HQMesh = t.gameObject; 


      Instantiate(t.gameObject, CurrentPosition, Currentrotation); 




      transform.position = CurrentPosition; 
      transform.rotation = Currentrotation; 



      Debug.Log("Found " + t); 

      break; 
     } 

    } 


} 
+0

這是否工作,謝謝,它似乎只在更新中工作,只是讓自己和其他人知道,至少我的代碼。 – ryand444