2017-10-11 76 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