2017-10-11 75 views
-3

在下面給出的代碼中,變量loop不會遞增。它總是給出0作爲輸出。如果我們在增加值之後打印循環,則循環遞增一次。變量不會在無效更新中增加

public class move : MonoBehaviour 
{ 
    int loop = 0; 
    float[,] comp = new float[10,2]; 
    public Vector3 speed; 

    void Start() 
    { 
     speed = new Vector3(0,0.15f,0); 
    } 

    void Update() 
    { 
     comp = spawner.score; 
     transform.Translate(speed); 

     if(transform.position.y < -2) 
     { 
      loop++; 
      Debug.Log("Loop:"+loop); 
      Destroy(gameObject); 
     } 
    } 
} 
+0

你在你每次調用move:update()'之前,每次都要創建一個新類「move」?你可以嘗試使'loop'靜態或重用你的'move'類? – oerkelens

+0

謝謝你的回覆。我試着讓循環靜態。但事情依然如此。 –

+0

發佈創建'move'實例的代碼並調用Update()' – squillman

回答

0
  1. 您與移動遊戲對象組件正在順利進行 '-2' 在世界POS? (參見 - >if(transform.position.y < -2))或循環可以增量。

  2. 由於「是」在他的評論中說,什麼是Destrou
    你想使用Destroy?在這種情況下,爲什麼要使用循環來計算所有的銷燬元素?
    因此環路增加了,物體剛剛被破壞。

  3. 如果loop是計算元素的數量,您必須將循環變量中誰不能被破壞的其他腳本(例如:你可以用Singleton正確訪問到它)

+0

這是一個輸入錯誤,我的意思是Destroy()。對不起,實際上我想遞增循環到9,然後讓循環= 0,然後遞增到9並重復。 –

+0

'loop ++;如果(循環> 9)循環= 0;' 和我說的第3點你需要把它放在另一個腳本 – DavEat