为什么Unity变量的值自己变了

img

img

img


在FixUpdate里面看的更直观,实际上在Update里面这几个变量也是一直在不受控制地变化

在改变的变量上设置数据断点

数据改变断点参考:

#include <time.h>
#include <stdlib.h>
#include <windows.h>
int main() {
    int a,b[11];//本来是b[10],为判断哪句越界,故意声明为b[11]

    srand((unsigned int)time(NULL));//按两次F11,等黄色右箭头指向本行时,调试、新建断点、新建数据断点,地址:&b[10],字节计数:4,确定。
    while (1) {//按F5,会停在下面某句,此时a的值为10,b[10]已经被修改为对应0..4之一。
        b[(a=rand()%11)]=0;
        Sleep(100);
        b[(a=rand()%11)]=1;
        Sleep(100);
        b[(a=rand()%11)]=2;
        Sleep(100);
        b[(a=rand()%11)]=3;
        Sleep(100);
        b[(a=rand()%11)]=4;
        Sleep(100);
    }
    return 0;
}


值变了应该就是条件为True,逻辑被执行了。不知道你图中的KeyDown是怎么写的。

不过需要使用键盘输入控制的话,应该这么写:

 if (Input.GetKeyDown(KeyCode.A))
{
    // 键盘A键被按下
}