我正在尝试创建一个名为progress
的变量,该变量在游戏过程中会更新(可以上下移动)。它使用if条件每1/10秒更新一次。
int progress = 0;
int total;
if (timedecimalpairs % 0.1m == 0) { //Always true
if (demandproductionrate >= 100)
progress += 10;
else
progress -= 50;
total = progress;
GUI.Box (new Rect (Screen.width - 220, 277, 50, 25), total.ToString());
}
timedecimalpairs
依次假定值为0.1 / 0.2 / 0.3,因此if条件始终为真。问题是我的progress
变量总是假定值为10或-50,当满足第二个if条件时,它并不总和10 + 10 + 10等。游戏期间demandproductionrate
与玩家输入相关联。
你能帮助我吗?
答案 0 :(得分:0)
无论何时在方法内部进行变量初始化,每次调用方法时都会初始化它们。我想在你的例子中,每次方法触发时你都在初始化int progress = 0;
。为了解决这个问题,请从方法中删除初始化并在应用程序开始时将其实例化。