Страницы

четверг, 29 августа 2013 г.

Файловое I/O в Unity3D

В настоящее время, не существует платформенно-независимого способа сохранения данных в Unity3D. Если вам необходимо открыть файл для чтения или записи, то нужно задавать правильный путь. Описанный ниже трюк будет работать на PC, Mac, iOS и Android:


string fileName = "";
#if UNITY_IPHONE   
 string fileNameBase = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/'));
 fileName = fileNameBase.Substring(0, fileNameBase.LastIndexOf('/')) + "/Documents/" + FILE_NAME;
#elif UNITY_ANDROID
 fileName = Application.persistentDataPath + "/" + FILE_NAME ;
#else
 fileName = Application.dataPath + "/" + FILE_NAME;
#endif
 
fileWriter = File.CreateText(fileName);
fileWriter.WriteLine("Hello world");
fileWriter.Close();
Начиная с  Unity 3.3, больше нет необходимости использовать код специфичный для каждой отдельной платформы, для использования простейшего файлового I/O. Решением является Application.persistentDataPath.
Этот код заменяет код выше:
string fileName = Application.persistentDataPath + "/" + FILE_NAME;
 fileWriter = File.CreateText(fileName);
 fileWriter.WriteLine("Hello world");
 fileWriter.Close();

Комментариев нет :

Отправить комментарий