2015-04-22 98 views
1

我一直在研究允許用戶通過單擊指定區域來創建目標的遊戲。我試圖實現它,因此,儘管遊戲將存儲用戶創建的所有目標的信息,但最多隻能最多顯示9個目標(如果您願意的話,將會顯示一系列「頁面」)。在Unity中調整GameObjects列表的大小

問題是我在清理這個區域時遇到了麻煩。 我試圖通過改變其規模,明確目標,以0/0/0

if(newPage) 
      { 
       print("Making New Page..."); 
       //"Clear" the screen of Targets 
       foreach(GameObject obj in targets) 
       { 
        obj.gameObject.transform.localScale = new Vector3(0.0f , 0.0f, 0.0f); 
        //print(obj); 
       } 

       newPage = false; 
       totalPages++; 
       currentPage++; 
      } 

一些有用的東西:

目標是List
NewPage公司的名稱是用來表示當布爾運行此代碼
totalPages和currentPages用於稍後重新激活目標

這兩個打印語句都是有效的,但沒有一個目標實際上消失。我不確定它爲什麼不起作用。

回答

1

而不是縮小的對象,可能會更容易與GameOjbect.SetActive()函數來禁用它:

if(newPage) 
    { 
     print("Making New Page..."); 
     //"Clear" the screen of Targets 
     foreach(GameObject obj in targets) 
     { 
      obj.SetActive(false); 
      //print(obj); 
     } 

     newPage = false; 
     totalPages++; 
     currentPage++; 
    } 

如果你希望對象是活躍在現場,但根本看不到,那麼另一種選擇是禁用MeshRenderer組件:

obj.GetComponent<MeshRenderer>().enabled = false;