// Salva dados do jogador num slot armazenado public void SaveGame() { string path = string.Concat(Application.persistentDataPath, "/", PlayerPrefs.GetString("slot")); // Abre arquivo e formatter using (FileStream fileStream = File.Create(path)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); // Envia dados DadosJogadorRevisao dadosJogadorRevisao = new DadosJogadorRevisao(); dadosJogadorRevisao.LanguageID = this.languageID; dadosJogadorRevisao.NumberGold = this.numberGold; dadosJogadorRevisao.PlayerID = this.playerID; dadosJogadorRevisao.WeaponID = this.weaponID; dadosJogadorRevisao.EquippedArrowID = this.equippedArrowID; dadosJogadorRevisao.ArrowQuantities = this.arrowsQuantity; dadosJogadorRevisao.PotionQuantities = this.potionsQuantity; dadosJogadorRevisao.InventaryItems = this.inventaryItems; dadosJogadorRevisao.WeaponImprovements = this.weaponImprovements; // Verifica o inventario this.inventaryItems.Clear(); foreach (GameObject item in inventarioRevisao.inventaryItems) { this.inventaryItems.Add(item.name); } // Serializa dados para arquivo binaryFormatter.Serialize(fileStream, dadosJogadorRevisao); } }
// Carrega dados salvo num slot public void LoadGame(string slot) { string path = string.Concat(Application.persistentDataPath, "/", slot); // Verifica se arquivo existe if (File.Exists(path)) { // Abre arquivo e formatter using (FileStream fileStream = File.Open(path, FileMode.Open)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); // Carrega dados DadosJogadorRevisao dadosJogadorRevisao = binaryFormatter.Deserialize(fileStream) as DadosJogadorRevisao; this.languageID = dadosJogadorRevisao.LanguageID; this.numberGold = dadosJogadorRevisao.NumberGold; this.playerID = dadosJogadorRevisao.PlayerID; this.weaponID = dadosJogadorRevisao.WeaponID; this.actualWeaponID = dadosJogadorRevisao.WeaponID; this.initialWeaponID = dadosJogadorRevisao.WeaponID; this.arrowsQuantity = dadosJogadorRevisao.ArrowQuantities; this.potionsQuantity = dadosJogadorRevisao.PotionQuantities; this.inventaryItems = dadosJogadorRevisao.InventaryItems; this.weaponImprovements = dadosJogadorRevisao.WeaponImprovements; // Verifica o inventario inventarioRevisao.inventaryItems.Clear(); // Recupera dados foreach (string item in this.inventaryItems) { GameObject obj = Resources.Load <GameObject> (string.Concat("Prefabs/Weapons/", item)); inventarioRevisao.inventaryItems.Add(obj); } inventarioRevisao.inventaryItems.Add(initialWeapons[weaponID]); GameObject temp = Instantiate(initialWeapons[weaponID]); inventarioRevisao.loadedItems.Add(temp); playerActualLife = playerMaxLife; playerActualMana = playerMaxMana; // Toca musica e carrega a cena string nextScene = "PrimeiraFase"; audioControllerRevisao.ChangeMusic(audioControllerRevisao.musicStage1, nextScene, true); } } else { NewGame(); } }