2011-11-20 1535 views
1

我正在與Unity3d合作創建一款iPhone遊戲。由於iPhone的性能比PC高度有限,我想保持經濟。在我的比賽中,我有一個非常長的樓梯,並且有一個角色在其上行走。如果角色高於某一高度,則該步驟將被破壞。但我無法獲得對單個gameObject的引用。我怎麼能做到這一點?非常感謝你!如何銷燬unity3d中的實例化(克隆)對象?

function buildFirstStair() { 
    for (var y = 0; y < 80; y++) { 
     for (var x = 0; x < 80; x++) { 
      if (x == y) { 
       var step = Instantiate(cube, Vector3(0, x*0.25, y*0.25), Quaternion.identity); 
      } 
     } 
    } 
} 
+0

我不是100%清楚你的意思是「如果角色高於一步高度,步驟將被破壞,但我無法獲得對單個遊戲對象的引用。」你能詳細說明一下嗎? – DuckMaestro

+0

謝謝我已經解決了這個問題。 – Yangrui

+0

您可以在答案中分享您的解決方案,以便未來的讀者也可以得到幫助嗎? – DuckMaestro

回答

5

您可以將所有實例放入一個List中,然後刪除它們。 喜歡的東西:

function Create() 
{ 
    List<GameObject> mylist; 

    for (float y = 0; y < 80; y++) 
     for (float x = 0; x < 80; x++) { 
      if (x == y) { 
       mylist.push((GameObject) Instantiate(...), Quaternion.identity)); 
      } 
     } 
} 

,並刪除你這樣做

foreach object in mylist 
{ 
    Destroy(object); 
} 

對不起,C#代碼,但我是一個C#用戶。