почему данные ma json читаются на P C, а не на android? - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь сохранить имя последнего уровня, в который входит мой игрок, и я хотел использовать 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, это не сработает, и я не понимаю почему,

1 Ответ

0 голосов
/ 19 апреля 2020

На Android путь будет другим, как указано в официальной документации здесь .

Используйте взамен "jar:file://" + Application.dataPath + "!/assets".

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