Hello Internet, I have a problem. Right now, I have an android game that’s heavily using Serialization cause it’s a sandbox game, I want it to have a world selection system that selects a specific world and load’s it, Just like Terraria or Minecraft. But the problem is that when I run my game on my android device(Not the Unity Editor), it wasn’t saving or loading. I found questions and answers that were too complicated to use but if anyone has an answer, please I need it. Thank You.
For the code, This is a class for saving block ID’s with Types and float
for positions:
public static class BlockSerialization
{
private static string path;
public static void SaveBlocks(List<BlockID> blockList, int worldSeed)
{
BinaryFormatter formatter = new BinaryFormatter();
path = Directory.GetCurrentDirectory() + "/" + worldSeed + "World.WLD";
FileStream stream = new FileStream( path, FileMode.Create);
formatter.Serialize(stream, blockList);
stream.Close();
}
public static List<BlockID> LoadBlocks(int worldSeed)
{
path = Directory.GetCurrentDirectory() + "/" + worldSeed + "World.WLD";
if (BlockSaveExists(worldSeed))
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream stream = new FileStream(path, FileMode.Open);
List<BlockID> items = formatter.Deserialize(stream) as List<BlockID>;
stream.Close();
return items;
}
else
{
Debug.LogWarning("Save File Not Found In " + path);
return null;
}
}
public static void DeleteBlocks(int worldSeed)
{
path = Directory.GetCurrentDirectory() + "/" + worldSeed + "World.WLD";
if (File.Exists(path))
{
File.Delete(path);
}
else
{
Debug.LogWarning("No "+ path +" File Exists");
}
}
public static bool BlockSaveExists(int worldSeed)
{
path = Directory.GetCurrentDirectory() + "/" + worldSeed + "World.WLD";
if (File.Exists(path))
{
return true;
}
else
{
return false;
}
}
}