Проблема сохранения и загрузки Json файла в Unity - PullRequest
0 голосов
/ 28 февраля 2020

В настоящее время я пытаюсь использовать распознаватели жестов в Unity3D. Для этого мне нужно сравнить библиотеку жестов с жестом, который я делаю. Я использую скрипт для сохранения и загрузки от другого пользователя Unity, так как не знаю, как это сделать самому. Проблема, с которой я сталкиваюсь: если я сохраню жесты в виде файла json во время игры, я могу сравнить их за один раз. Но если я перезапускаю прогон, он перестает читать файл json и возвращает NULL или не соответствует, как если бы в файле json ничего не было.

[Serializable]
public class GestureTemplates
{
    public List<DrawnGesture> templates;

    public GestureTemplates()
    {
        templates = new List<DrawnGesture>();
    }

}
private string gestureFileName = "gestures.json";

void Start () {
        LoadTemplates();
}

private void SaveTemplates()
    {
        string filePath = Application.dataPath + "/streamingAssets/" + gestureFileName;
        string saveData = JsonUtility.ToJson(templates);
        File.WriteAllText(filePath, saveData);
        Debug.Log("Template Saved");
    }

    private void LoadTemplates()
    {
        templates = new GestureTemplates();
        string filePath = Path.Combine(Application.streamingAssetsPath, gestureFileName);
        if (File.Exists(filePath))
        {
            string data = File.ReadAllText(filePath);
            templates = JsonUtility.FromJson<GestureTemplates>(data);
        }
    }

Что я заметил если для сохранения требуется некоторое время, но на самом деле он сохраняется, поскольку вызывает строку debug.Log и файл сохранения можно использовать в одном и том же запуске.

Любая помощь будет принята с благодарностью.

Редактировать: фигу. Это тоже не спасение. Сохраняется как Json файл с пустым списком. Переменная работает на ходу, но не сохраняет и не загружает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...