C# 为什么FromJsonOverwrite不将文件数据转换为我的类对象?

C# 为什么FromJsonOverwrite不将文件数据转换为我的类对象?,c#,json,unity3d,C#,Json,Unity3d,我正试图将我的Json文件反序列化为一个单行为类——我的GameData类,它包含诸如健康、移动速度等内容。。这是我的密码: private string _filePath; private static DataService _instance; public DataService Instance { get { return _instance; } } private GameData _gameData; private void Awake() { Don

我正试图将我的Json文件反序列化为一个单行为类——我的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派生的类中,我如何从我的游戏中访问这些字段?

您会遇到这个错误,因为“FromJsonOverwrite”是无效的,它不会返回任何内容。将代码更新为:

JsonUtility.FromJsonOverwritejson,_gameData;
从文档void JsonUtility.FromJsonOverwrite。。。。。。它不会返回任何内容,那么您期望得到什么呢?阅读API和示例可以解决大多数问题。。。