首页 > 解决方案 > 如何防止 CS0161 错误?- 团结

问题描述

我正在使用 unity 2018。我想将我的数据保存在我的游戏中,但我不断收到错误消息:“Assets/Assets/Scripts/SaveSystem.cs(15,30): error CS0161: `SaveSystem.LoadPlayer()': not所有代码路径都返回一个值”

这是我正在使用的当前代码:

using UnityEngine;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public static class SaveSystem {
    public static void SavePlayer(GlobalCookies player)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string path = Application.persistentDataPath + "playerdata.bcdata";
        FileStream stream = new FileStream(path, FileMode.Create);
        PlayerData data = new PlayerData(player);
        formatter.Serialize(stream, data);
        stream.Close();
    }
    public static PlayerData LoadPlayer()
    {
        string path = Application.persistentDataPath + "playerdata.bcdata";
        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream stream = new FileStream(path, FileMode.Open);
            PlayerData data = formatter.Deserialize(stream) as PlayerData;
            stream.Close();
            return data;
        }
        else
        {
            Debug.LogError("Save file 'playerdata.bcdata' was not found, please reinstall the missing file (error in: " + path + ")");
        }

    }

}

标签: c#unity3dsave

解决方案


在您的Debug.LogError电话下,添加throw new InvalidOperationException();

像这样:

public static PlayerData LoadPlayer()
    {
        string path = Application.persistentDataPath + "playerdata.bcdata";
        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream stream = new FileStream(path, FileMode.Open);
            PlayerData data = formatter.Deserialize(stream) as PlayerData;
            stream.Close();
            return data;
        }
        else
        {
            String message = "Save file 'playerdata.bcdata' was not found, please reinstall the missing file (error in: " + path + ")";
            Debug.LogError( message  );
            throw new InvalidOperationException( message );
        }

    }


推荐阅读