Я пытаюсь сохранить имя последнего уровня, в который входит мой игрок, и я хотел использовать Json и папку потоковых ресурсов, поэтому я получаю файл JSON в папке в моем проекте Unity
└───Assets
└───[...] (all my other unity project folder)
└───StreamingAssets
lastlevel.json
Я создал объект ProgressSavior с приложенным сценарием, чтобы сохранить в этом JSON файле имя уровня, а также добавил функцию для получения имени уровня, чтобы в моем главном меню при нажатии play загружена моя последняя сыгранная сцена
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.SceneManagement;
public class ProgressSavior : MonoBehaviour
{
string chemin = Application.streamingAssetsPath + "/lastlevel.json";
Regex levelRegex = new Regex(@"^level_[1-9][0-9]*$");
string Json;
string levelname;
Level Saved;
// Start is called before the first frame update
void Start()
{
levelname = SceneManager.GetActiveScene().name;
Json = File.ReadAllText(chemin);
Saved = JsonUtility.FromJson<Level>(Json);
if (levelRegex.IsMatch(levelname)) {
save();
}
}
bool ShouldWeSave(string s)
{
Debug.Log(s);
Debug.Log(Saved.name);
return int.Parse(s.Split('_')[1]) > int.Parse(Saved.name.Split('_')[1]);
}
public void save()
{
if (ShouldWeSave(levelname))
{
Saved.name = levelname;
Json = JsonUtility.ToJson(Saved);
File.WriteAllText(chemin, Json);
} else
{
Debug.LogWarning("saving was Useless");
}
}
public string load()
{
return Saved.name;
}
}
public class Level
{
public string name;
}
И на P C это работает чудесно, но когда я строю проект на android, это не сработает, и я не понимаю почему,