更新游戏进度变量

时间:2016-02-25 21:14:11

标签: c# unity3d

我正在尝试创建一个名为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与玩家输入相关联。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

无论何时在方法内部进行变量初始化,每次调用方法时都会初始化它们。我想在你的例子中,每次方法触发时你都在初始化int progress = 0;。为了解决这个问题,请从方法中删除初始化并在应用程序开始时将其实例化。