2016-10-22 2 views
0

Я и мой друг несколько часов взламывали его, но мы просто не можем понять, что с ним не так. Он по существу работает через массив, и если кнопка должна быть заблокирована или взаимодействовать, а если она равна нулю, она будет взаимодействовать. Используя префикс игрока, эти настройки должны сохраняться через каждую сессию с помощью приложения.Проблемы с переменной, определенной в цикле for C#

Вот код:

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; 

    } 
} 

В настоящее время единство отображения 5 ошибок:

  • ошибка CS1525: Неожиданный символ `я» (2 из них)
  • ошибка CS1519: Неожиданный символ ` else 'в объявлении класса, структуры или интерфейса
  • ошибка CS1519: Неожиданный символ `=' в объявлении члена класса, структуры или интерфейса
  • ошибки CS8025: Синтаксическая ошибка
+0

'я = 0; 'строка должна быть ИНТ' я = 0; 'это то, что вызывает ошибку символа. –

+0

Tiny улучшить: изменить «i = i + 1» на «i ++» –

ответ

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

Спасибо, что решил мою проблему: D Извините, я новичок в C#, поэтому я не знаю всего синтаксиса еще для строк и т. Д. –

+0

Уверенная вещь ! :) Я рад, что смогу помочь! – DoubleVoid

+0

Ах, и если бы это помогло вам, отметьте это сообщение как ответ :) Нажав на галочку – DoubleVoid

Смежные вопросы