为什么FromJsonOverwrite无法将文件数据转换为我的类对象?

我正在尝试将Json文件反序列化为Monobehavior类(我的GameData类,其中包含健康,移动速度等信息)。这是我的代码:

private string _filePath;
private static DataService _instance;

public DataService Instance
{
    get { return _instance; }
}

private GameData _gameData;

private void Awake()
{
    DontDestroyOnLoad(gameObject);
    if (_instance == null)
    {
        _instance = new DataService();
    }
    if (_gameData == null)
    {
        _gameData = new GameData(1);
    }
}

public void LoadGameData(GameData gameData)
{
    _filePath = Path.Combine(Application.persistentDataPath,gameData.FileName);
    string json;
    if (File.Exists(_filePath))
    {
        json = File.ReadAllText(_filePath);
        _gameData = JsonUtility.FromJsonOverwrite(json,gameData);
    }
    else
    {
        Debug.Log("File missing.");
    }
}

public void SaveGameData(GameData gameData)
{
    string json = JsonUtility.ToJson(_gameData);
    _filePath = Path.Combine(Application.persistentDataPath,gameData.FileName);
    if (File.Exists(_filePath))
    {
        File.Create(_filePath).Dispose();
    }
    File.WriteAllText(_filePath,json);
}

我得到的错误是:

  

不能将类型void隐式转换为GameData。

我在做什么错了,我该如何解决?

如果解决方案是将我的数据放在一个不是从MonoBehavior派生的类中,该如何从游戏中访问这些字段?

yghe001 回答:为什么FromJsonOverwrite无法将文件数据转换为我的类对象?

您收到此错误,因为'FromJsonOverwrite'是Void,它不返回任何内容。将您的代码更新为:

JsonUtility.FromJsonOverwrite(json,_gameData);
本文链接:https://www.f2er.com/3127892.html

大家都在问