Задать вопрос

Как сделать сохранение в c#, unity3d?

public class Game : MonoBehaviour {
public int score;
public int bonus;

<i>public int[] costUpgrades;
public Text[] textUpgrades;</i>

private Save save = Save();

private string path;

void Awake ()
{
path = Path.Combine(Application.dataPath, "Save.json");
if (File.Exists (path)) {
save = JsonUtility.FromJson<Save> (File.ReadAllText (path));
score = save.score;
bonus = save.bonus;
}

void OnApplicationQuit ()
{
File.WriteAllText (path, JsonUtility.ToJson (save));
}

void Upgrade1 (int index)
{
if(score >= costUpgrades[index])
{
score -= costUpgrades[index];
...

}
}

void OnClick ()
{
score += bonus;
save.score = score;
}
}

[Serializable]
public class Save 
{
public int bonus;
public int score;
public int[] costUpgrades;
public Text[] textUpgrades;
}


Нужно сделать сохранение цены улучшения (costUpgrades) и текста (textUpgrades). Если со счетом и с бонусом все понятно: save.score = score;
то массив, к сожалению, не понимаю.
  • Вопрос задан
  • 420 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 2
TheTalion
@TheTalion
Массив текста - неправильно. Текст - компонент. Нужно брать так:
Text uiText;
string text;

text = uiText.text; (или как-то так)


И сериализуй массив string-ов и будет норм все.
Ответ написан
Комментировать
@Myxach
А чем проблема с PlayerPrefs?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы