PlayerData.cs
//Container to hold data
[System.Serializable]
public class PlayerData
{
public string playerName;
public float playerAge;
public int playerClass;
}
SaveLoadSystem.cs
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;
using UnityEngine.UI;
public class SaveLoadSystem : MonoBehaviour
{
public InputField nameInputField;
public Slider ageSlider;
public Dropdown classDropdown;
//Path where data file will be stored
string filePath;
void Awake()
{
filePath = Path.Combine(Application.dataPath, "playerData.dat");
}
public void SavePlayerData()
{
PlayerData playerData = new PlayerData();
playerData.playerName = nameInputField.text;
playerData.playerAge = ageSlider.value;
playerData.playerClass = classDropdown.value;
Stream stream = new FileStream(filePath, FileMode.Create);
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(stream, playerData);
stream.Close();
}
public void LoadPlayerData()
{
if(File.Exists(filePath))
{
Stream stream = new FileStream(filePath, FileMode.Open);
BinaryFormatter binaryFormatter = new BinaryFormatter();
PlayerData data = (PlayerData)binaryFormatter.Deserialize(stream);
stream.Close();
nameInputField.text = data.playerName;
ageSlider.value = data.playerAge;
classDropdown.value = data.playerClass;
}
}
}