Кто может помочь? По этому уроку пытался сделать сохранение и загрузку уровней с созданием истории... Только возникли проблемы:
1) Как не перезаписывать имеющийся файл сохранений, а создавать новые строчки в уже имеющимся файле?
Код
using UnityEngine;
using System.Collections;
using System.IO; // Используем библиотеку ввода вывода
public class Slevel : MonoBehaviour {
public string filename; // Путь сохранения
void Start () // Данный скрипт выполняется при инициализации объекта.
{
if ( filename == "" ) filename = "Save/Save.txt";
// Если название файла не указанно то пишем по умолчанию
}
void OnGUI () // Создаем ГУИ элементы, текстовое поле и 2 кнопки
{
if ( GUI.Button( new Rect(10,10,60,20),"Write") ) // Нажата кнопка "запись"?
{
StreamWriter sw = new StreamWriter(filename); // Создаем файл
sw.WriteLine(Application.loadedLevel); // Пишем название уровня
sw.Close(); // Закрываем(сохраняем)
}
}
}
2) В скрипте загрузки выдаёт ошибку error CS1955: The member 'UnityEngine.Application.loadedLevel' cannot be used as method or delegate
Код
using UnityEngine;
using System.Collections;
using System.IO;
public class Llevel : MonoBehaviour {
public float Level;
// Use this for initialization
void OnGUI () // Создаем ГУИ элементы, текстовое поле и 2 кнопки
{
if ( GUI.Button( new Rect(10,40,60,20),"Read") ) // Нажата кнопка "читать"?
{
StreamReader streamReader = new StreamReader("Save/Save.txt"); // Открываем файл
if(streamReader != null) {
while (!streamReader.EndOfStream) // Читаем строки пока они не закончатся
{
Level = System.Convert.ToSingle(streamReader.ReadLine());
}
}
}
Application.loadedLevel(Level);
}
}
3) И как сделать, чтобы при загрузке предыдущего уровня из текстового файла загружалась соответственно последняя строчка, а потом удалялась? Такое в Unity вообще реально сделать, или надо для этого разные файлы создаать?
В общем суть такая:
Допустим есть 4 уровня (на самом деле их гораздо больше). От уровня 1 к 4 можно пройти двумя путями - соответственно через 2 или через 3. Так вот если прошёл 1 > 2 > 4, то вернуться можно только обратно 4 > 2 > 1.
Собственно делаю скорее не игру, а программу. И единственная проблема - создать эту историю посещений.
4
/ \
2 3
\ /
1