Работа над игрой в стиле блэкджек. Не могу прочитать и написать файл
Так. Я пытаюсь создать профиль сохранения, но у меня есть ошибка, показанная на картинке, и я не знаю, как ее исправить, так как я следовал инструкциям на YouTube, и эта ошибка никогда не возникала. Может ли кто-нибудь помочь мне решить, что я должен делать.
using UnityEngine;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class SavingControl : MonoBehaviour
{
public static SavingControl control;
public int cash = PlayerBetting.instance.bankBal;
public int difficulty = 2;
void Awake ()
{
if (control = null)
{
DontDestroyOnLoad(gameObject);
control = this;
}
else if (control != this)
{
Destroy(gameObject);
}
}
public void Save()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(Application.persistentDataPath + "/playerInfo.dat");
PlayerData data = new PlayerData();
data.BankBal = cash;
data.Difficulty = difficulty;
bf.Serialize(file, data);
file.Close();
}
public void Load()
{
if (File.Exists(Application.persistentDataPath + "/PlayerInfo.dat"))
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(Application.persistentDataPath = "/PlayerInfro.dat", FileMode.Open);
PlayerData data = (PlayerData)bf.Deserialize(file);
file.Close();
cash = data.BankBal;
difficulty = data.Difficulty;
}
}
} [Serializable]
class PlayerData
{
public int BankBal;
public int Difficulty;
}
1 ответ
Решение
Изменить =
к +
:
FileStream file = File.Open(Application.persistentDataPath + "/PlayerInfro.dat", FileMode.Open);
Еще лучше использовать Path.Combine
:
FileStream file = File.Open(Path.Combine(Application.persistentDataPath, "PlayerInfro.dat"), FileMode.Open);