Link
https://www.youtube.com/watch?v=yxziv4ISfys
Waarom deze tutorial?
Wanneer je een spel afsluit en weer opstart, is het spel opnieuw gestart. Ik wil kijken hoe het moet om een save and load systeem te maken.
Wat heb ik er van geleerd?
Met PlayerPrefs kan je dingen opslaan en later weer laden.
PlayerPrefs.SetInt("Variable",100);
Maar dit is niet echt veilig aangezien het maar een text file is.
Met serialization vergrendel je een bestand. Je kan een languege sirialization gebruiken of de ingebouwde verzie van serialization, maar die is heel uitgebreid terwijl je dat niet nodig hebt.
Hiervoor moet je de namespace Using System; en Using System.Runtime.Serialization.Formatters.Binary; Using System.IO;
Hiermee maak je ze binary (ze zijn dus nog wel te lezen maar erg lastig te veranderen). Het is toch veel veiliger dan playerprefs.
In een Save() method zet je dan deze code:
public void Save()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(Application.persistentDataPath + "/playerInfo.dat");
PlayerData data = new PlayerData();
data.health = health;
data.experience = experience;
bf.Serialize(file, data);
file.Close();
}
public void Load()
{
if (File.Exists(Application.persistantDataPath + "/playerInfo.dat"))
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(Application.persistentDataPath + /playerInfo.dat",FileMode.open);
PlayerData data = (PlayerData)bf.Deserialize(file);
file.Close();
health = data.health;
experience = data.experience;
}
}
//In deze class maak je een class aan waarmee je variables kan opsturen.
[Serializable]
class PlayerDate
{
public float heath;
public float experience;
}
Geen opmerkingen:
Een reactie posten