Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Где тут ошибка CS8523???

Артем ЭЭЭЭ Ученик (91), на голосовании 4 недели назад
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class AchMenu : MonoBehaviour
{
int money;
public int total_money;
[SerializeField] Button firstAch;
[SerializeField] bool isFirst;
void Start()
14 {
money = PlayerPrefs.GetInt("money");
total_money = PlayerPrefs.GetInt("total_money");
isFirst = PlayerPrefs.GetInt("isFirst") == 1 ? true : false;

if (total_money >= 10 && !isFirst)
{
firstAch.interactable = true;
}
else
{
firstAch.interactable = false;
StartCoroutine(IdleFarm());
}


30 void GetFirst()
{
int money = PlayerPrefs.GetInt("money");
money += 10;
PlayerPrefs.SetInt("money", money);
isFirst = true;
PlayerPrefs.SetInt("IsFirst+", isFirst ? 1 : 0);
}

IEnumerator IdleFarm()
{
yield return new WaitForSeconds(1);
money++;
Debug.Log(money);
PlayerPrefs.SetInt("money", money);
StartCoroutine(IdleFarm());
}

void ToMenu()
{
SceneManager.LoadScene(0);
}
52 void Update()
{

}
}
}


ОШИБКА CS8321 - СТРОКА 30,14
ОШИБКА CS8321 - СТРОКА 48,14
ОШИБКА CS8321 - СТРОКА 52,14
Голосование за лучший ответ
Оракул Оракул (59427) 1 месяц назад
Открывающих скобок больше закрывающих
Артем ЭЭЭЭУченик (91) 1 месяц назад
и что делать?
Оракул Оракул (59427) Артем ЭЭЭЭ, добавить отсутствующие закрывающие
Ярослав Котенко Мастер (1785) 1 месяц назад
открывающие скобки не закрыты и их больше
Андрей Панарин Искусственный Интеллект (227370) 1 месяц назад
Пишите код лесенкой, чтобы было легче отследить, где какая скобка лишняя, а где недостает.

Вот исправленная структура кода:
 using System.Collections; 
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

//На этом уровне пишем директивы using и объявляем классы
public class AchMenu : MonoBehaviour
{
//На этом уровне объявляем поля, начинаем и заканчиваем методы

int money;
public int total_money;
[SerializeField] Button firstAch;
[SerializeField] bool isFirst;

void Start()
{
//На этом уровне и правее пишем тело метода и его вложенные блоки

money = PlayerPrefs.GetInt("money");
total_money = PlayerPrefs.GetInt("total_money");
isFirst = PlayerPrefs.GetInt("isFirst") == 1 ? true : false;

if (total_money >= 10 && !isFirst)
{
firstAch.interactable = true;
}
else
{
firstAch.interactable = false;
StartCoroutine(IdleFarm());
}

// Здесь видно, что метод Start() не был закрыт выше, а ниже уже начинается метод GetFirst().
// Так нельзя. Закройте скобку метода Start(), прежде чем начинать новый метод.
// Ниже я добавил скобку, чтобы закрыть метод Start():
}

void GetFirst()
{
int money = PlayerPrefs.GetInt("money");
money += 10;
PlayerPrefs.SetInt("money", money);
isFirst = true;
PlayerPrefs.SetInt("IsFirst+", isFirst ? 1 : 0);
}

IEnumerator IdleFarm()
{
yield return new WaitForSeconds(1);
money++;
Debug.Log(money);
PlayerPrefs.SetInt("money", money);
StartCoroutine(IdleFarm());
}

void ToMenu()
{
SceneManager.LoadScene(0);
}

void Update()
{

}
}

// Всё, выше мы класс закрыли, после этого никакие закрывающие скобки больше не нужны.
// } - эту скобку я закомментировал, чтобы компилятор ее не воспринимал и не ругался на нее
За корректность остальных нюансов кода не ручаюсь, могут быть и другие ошибки.
Их стоит обсудить отдельно.
Похожие вопросы