价值不会因方法改变而保持不变

时间:2015-06-13 23:45:25

标签: c# unityscript

我想使用方法更改我的值。方法中的值会发生变化,但不会超出方法,它们保持不变。我试图通过方法第一次改变这些值,所以我不知道它们可以改变与否。任何参考或帮助:) 代码:

方法: -

void WeaponUpdateMethod (int objUpdateValue, float  time, string updateMoney, string saveData, float sliderValue)
{
    buttonClick.Play ();
    int t = objUpdateValue;
    if (t < 1 && totalMoney > 5000) { 
        t = 1;
        totalMoney -= 5000;
        time = 12f;
    } else if (t != 2 && t < 2 && totalMoney > 10000) { 
        t = 2;
        totalMoney -= 10000; 
        time = 15f;
    } else if (t != 3 && t < 3 && totalMoney > 14000) { 
        t = 3;
        totalMoney -= 14000; 
        time = 17f;
    } else if (t != 4 && t < 4 && totalMoney > 25000) { 
        t = 4;
        totalMoney -= 25000; 
        time = 20f;
    } 
    if (t == 0) {
        updateMoney = "" + 5000;
    } else if (t == 1) {
        updateMoney = "" + 10000;
    } else if (t == 2) {
        updateMoney = "" + 14000;
    } else if (t == 3) {
        updateMoney = "" + 25000;
    } else if (t == 4) {
        updateMoney = "full";
    }
    PlayerPrefs.SetInt (saveData, t);
    PlayerPrefs.SetInt ("totalMoney", totalMoney);
    PlayerPrefs.Save ();
    sliderValue = t;
    objUpdateValue = t;
    print (objUpdateValue);     
    print(objUpdateValue+" from method");
} 

在此使用: -

public void UpgradeSpeedUp ()
{
    // to upgrade speedUp  
    WeaponUpdateMethod (speedUpUpdateValue, ManageSingleShotPowers.speedUpTime, speedUpUpdateMoney.text, "spedUpUpdate", speedUpSlider.value);

    print(speedUpUpdateValue +" from calling");
}

1 个答案:

答案 0 :(得分:0)

在C#中,参数默认按值传入。您必须指定要通过引用传入的参数。您可以通过在参数前面使用关键字ref来实现,例如,ref int objUpdateValue。