Я бы порекомендовал использовать FileStream
и StreamWriter
и убедиться, что FileMode.Create
установлено.Также создайте папку, если она не существует.
var folderPath = Application.persistentDataPath;
// Create directory if not exists
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
Чем использовать Path.Combine
для создания строк пути, которые не зависят от системы
var filePath = Path.Combine(folderPath, "gamesettings.json");
Теперь запишите файл
// Create file or overwrite if exists
using (var file = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Write))
{
using (var writer = new StreamWriter(file, Encoding.UTF8))
{
writer.Write(content);
}
}
Однако для тестирования локального на ПК из UnityEditor я бы не хотел, чтобы приложение пропускало данные на мой компьютер для разработки, а вместо этого поместил бы его где-нибудь, например, в StreamingAssets
и только в сборке, используя persistentDataPath
var folderPath =
#if !UNITY_EDITOR
Application.persistentDataPath;
#else
Application.streamingAssetsPath;
#endif