- Home /
 
               Question by 
               dreadthread · Sep 04, 2016 at 03:37 PM · 
                loadingsavingloading file  
              
 
              SerializationException: serializationStream supports seeking, but its length is 0 when trying to load a save game
For whatever reason, my saving and loading code does not work as the save file always turns out to be blank for a reason that I cannon decipher. Here is my code:
 public class SaveManager : MonoBehaviour {
 public static SaveManager saveManager;
 private HealthController healthController;
 // Use this for initialization
 void Awake () {
     healthController = GameObject.FindObjectOfType<HealthController>();
     if(saveManager == null)
     {
         DontDestroyOnLoad(gameObject);
         saveManager = this;
     }else if (saveManager != this)
     {
         Destroy(gameObject);
     }
     
 }
 public void Save()
 {
     BinaryFormatter bf = new BinaryFormatter();
     FileStream file = File.Create(Application.persistentDataPath + "/playerInfo.dat");
     PlayerData data = new PlayerData();
     data.damage = Player.damage;
     data.shotspeed = Player.speedOfLaser;
     data.speed = Player.speed;
     data.fireRate = Player.firingRate;
     data.currentHealth = healthController.currentHealth;
     data.maxHealth = HealthController.maxHealth;
     data.skillPoints = Player.skillPoints;
     data.currentDamageUpgrades = UpgradeManager.currentDamageUpgrades;
     data.currentMaxHealthUpgrades = UpgradeManager.currentMaxHealthUpgrades;
     data.currentSpeedUpgrades = UpgradeManager.currentSpeedUpgrades;
     data.currentShotSpeedUpgrades = UpgradeManager.currentShotSpeedUpgrades;
     data.currentFiringRateUpgrades = UpgradeManager.currentFiringRateUpgrades;
     data.currentWave = WaveSpawner.currentWave;
     data.nextWave = WaveSpawner.nextWave;
     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 + "/playerInfo.dat", FileMode.Open);
         PlayerData data = (PlayerData)bf.Deserialize(file);
         file.Close();
         Player.damage = data.damage;
         Player.speedOfLaser = data.shotspeed;
         Player.speed = data.speed;
         Player.firingRate = data.fireRate;
         healthController.currentHealth = data.currentHealth;
         HealthController.maxHealth = data.maxHealth;
         Player.skillPoints = data.skillPoints;
         UpgradeManager.currentDamageUpgrades = data.currentDamageUpgrades;
         UpgradeManager.currentMaxHealthUpgrades = data.currentMaxHealthUpgrades;
         UpgradeManager.currentSpeedUpgrades = data.currentSpeedUpgrades;
         UpgradeManager.currentShotSpeedUpgrades = data.currentShotSpeedUpgrades;
         UpgradeManager.currentFiringRateUpgrades = data.currentFiringRateUpgrades;
         WaveSpawner.currentWave = data.currentWave;
         WaveSpawner.nextWave = data.nextWave;
     }
 }
 }
    [Serializable]
   class PlayerData
 {
 public float shotspeed, speed, fireRate;
 public int damage, currentHealth, maxHealth, skillPoints, currentDamageUpgrades, currentMaxHealthUpgrades, currentSpeedUpgrades, currentShotSpeedUpgrades, currentFiringRateUpgrades;
 public int currentWave, nextWave;
 }
               Comment
              
 
               
              Answer by dreadthread · Sep 04, 2016 at 03:23 PM
I figured out the answer. The problem was with the DontDestroyOnLoad. I removed that and everything worked!
Your answer
 
 
             Follow this Question
Related Questions
Load file on Android 1 Answer
Newbie questions! (Variables and Saving) 2 Answers
Saving Levels 2 Answers
Saving/Loading Problems 1 Answer
What is the best way to load an instance of a gameObject when loading a saved game? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                