在for循环中定义变量的问题C#

时间:2016-10-22 23:21:30

标签: c# arrays loops for-loop

我和我的朋友已经被黑客攻击了几个小时,但我们无法弄清楚它有什么问题。它本质上是通过数组运行的,如果按钮应该被锁定或可以交互,如果它是null,它就可以进行交互。通过使用播放器prefs,这些设置应该在应用程序的每个会话中持续存在。

以下是代码:

for (i = 0; i < buttons.Length; i = i + 1) {

    if (PlayerPrefs.GetInt("button" + string.Format i) == null) {

        PlayerPrefs.SetInt("button" + string.Format i, 1);
    }

    if (PlayerPrefs.GetInt("button" + string.Format i) == 1) {

        button.interactable = true;

    } else {

        button.interactable = false;

    }
}

目前Unity统一显示5个错误:

  • 错误CS1525:意外的符号`i&#39; (其中2个)
  • 错误CS1519:意外的符号`else&#39;在类,结构或接口成员声明中
  • 错误CS1519:意外符号`=&#39;在类,结构或接口成员声明中
  • 错误CS8025:解析错误

1 个答案:

答案 0 :(得分:5)

只是一个猜测,但你应该写:

for (int i = 0; i < buttons.Length; ++i) {

您可能忘记声明i

这一行:

PlayerPrefs.GetInt("button" + string.Format i)

string.Format是string的静态方法。语法错误。你可以这样写:

PlayerPrefs.GetInt("button" + i)

或者这样:

PlayerPrefs.GetInt(string.Format("button{0}",i));