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

0 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;

    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Dou*_*oid 5

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

for (int i = 0; i < buttons.Length; ++i) {
Run Code Online (Sandbox Code Playgroud)

你可能忘了申报 i

这一行:

PlayerPrefs.GetInt("button" + string.Format i)
Run Code Online (Sandbox Code Playgroud)

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

PlayerPrefs.GetInt("button" + i)
Run Code Online (Sandbox Code Playgroud)

或者这样:

PlayerPrefs.GetInt(string.Format("button{0}",i));
Run Code Online (Sandbox Code Playgroud)