В настоящее время я пытаюсь использовать распознаватели жестов в 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 файл с пустым списком. Переменная работает на ходу, но не сохраняет и не загружает.