Salvar arquivos binário
2 participantes
Página 1 de 1
Salvar arquivos binário
pessoal preciso da seguinte situação, na verdade a ideia é simples e tudo que vi deste assunto é complicado demais.
Eu preciso salvar como arquivo binário variáveis string, por exemplo o usário vai entrar com 8 nomes de objetos e vai clicar em salvar. e a proxima vez que ele abrir o jogo vai estar salvo esta lista de 8 nomes de objetos, ele pode alterar ou usar esta lista mesmo.
Eu preciso salvar como arquivo binário variáveis string, por exemplo o usário vai entrar com 8 nomes de objetos e vai clicar em salvar. e a proxima vez que ele abrir o jogo vai estar salvo esta lista de 8 nomes de objetos, ele pode alterar ou usar esta lista mesmo.
evandromagico- Iniciante
- PONTOS : 2972
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar arquivos binário
- Crie 2 Arquivos um Chamado "Data" e o Outro Chamado "Save".
- Os Dados Ficaram Salvos no Arquivo Data.
- No Arquivo Save Terá As Funções De Salvar ou Carregar Os Dados.
Script Data
Script Save e Load
Script De Exemplo:
- Os Dados Ficaram Salvos no Arquivo Data.
- No Arquivo Save Terá As Funções De Salvar ou Carregar Os Dados.
Script Data
- Código:
using System;
[Serializable]
public class Data
{
public string[] NomesSalvos = new string[8];
}
Script Save e Load
- Código:
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using UnityEngine;
public class Save : MonoBehaviour
{
public static Save SaveOrLoad;
void Start()
{
if (SaveOrLoad == null)
{
SaveOrLoad = this;
}
else
{
Destroy(gameObject);
}
}
// Funções de Save e Load
public void Save()
{
string Path = Application.persistentDataPath + "/nomeDoArquivo.fun";
BinaryFormatter Bin = new BinaryFormatter();
FileStream File = new FileStream(Path, FileMode.Create);
Data dados = new Data();
for (int c = 0; c < 8; c++)
{
dados.NomesSalvos[c] = Exemplo.ScriptExemplo.Nomes[c];
}
bin.Serialize(File, dados);
File.Close();
}
public void Load()
{
string Path = Application.persistentDataPath + "/nomeDoArquivo.fun";
if (File.Exists(Path))
{
BinaryFormatter Bin = new BinaryFormatter();
FileStream File = new FileStream(Path, FileMode.Open);
Data dados = (Data)Bin.Deserialize(File);
for (int c = 0; c < 8; c++)
{
Exemplo.ScriptExemplo.Nomes[c] = dados.NomesSalvos[c];
}
File.Close();
}
}
}
Script De Exemplo:
- Código:
using UnityEngine;
public class Exemplo : MonoBehaviour
{
public static Exemplo ScriptExemplo;
public string[] Nomes;
void Start()
{
if (ScriptExemplo == null)
{
ScriptExemplo = this;
}
else
{
Destroy(gameObject);
}
}
public void SalvarNomes()
{
Save.SaveOrLoad.Save();
}
public void CarregarNomes()
{
Save.SaveOrLoad.Load();
}
}
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Salvar arquivos binário
Valeu mano obrigado! vou testar...
evandromagico- Iniciante
- PONTOS : 2972
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar arquivos binário
então, ele deu este erro aqui olha só:
Assets\Save.cs(23,17): error CS0542: 'Save': member names cannot be the same as their enclosing type
ele tbm diz que o arquivo "bin" da linha 35 , não existe no contexto
Assets\Save.cs(23,17): error CS0542: 'Save': member names cannot be the same as their enclosing type
ele tbm diz que o arquivo "bin" da linha 35 , não existe no contexto
evandromagico- Iniciante
- PONTOS : 2972
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar arquivos binário
evandromagico escreveu:então, ele deu este erro aqui olha só:
Assets\Save.cs(23,17): error CS0542: 'Save': member names cannot be the same as their enclosing type
ele tbm diz que o arquivo "bin" da linha 35 , não existe no contexto
Erro Meu
- Coloquei o Nome do Script Igual o da Void, Troca o Nome da Void Save Para Salvar().
- o Colocar o "B" Maiúsculo no "Bin".
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Salvar arquivos binário
haha fechou chegando em casa já vou verificar...
evandromagico- Iniciante
- PONTOS : 2972
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar arquivos binário
então fiz as alterações e tbm tava dando um erro no arquivo data ai coloquei ": MonoBehaviour" e o erro parou criei dois botões salvar e carregar e quando eu clico em salvar, ele da este erro aqui:
IndexOutOfRangeException: Index was outside the bounds of the array.
Save.Salvar () (at Assets/Save.cs:33)
Exemplo.SalvarNomes () (at Assets/Exemplo.cs:24)
UnityEngine.Events.InvokableCall.Invoke () (at <58a34b0a618d424bb5fc18bb9bcdac20>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <58a34b0a618d424bb5fc18bb9bcdac20>:0)
UnityEngine.UI.Button.Press () (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:68)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:110)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update() (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:377)
Tenho que salvar estes scripts em algum lugar específico? e no arquivo "save" preciso fazer alguma alteração no arquivo original?
IndexOutOfRangeException: Index was outside the bounds of the array.
Save.Salvar () (at Assets/Save.cs:33)
Exemplo.SalvarNomes () (at Assets/Exemplo.cs:24)
UnityEngine.Events.InvokableCall.Invoke () (at <58a34b0a618d424bb5fc18bb9bcdac20>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <58a34b0a618d424bb5fc18bb9bcdac20>:0)
UnityEngine.UI.Button.Press () (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:68)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:110)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update() (at C:/Program Files/Unity/Hub/Editor/2019.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:377)
Tenho que salvar estes scripts em algum lugar específico? e no arquivo "save" preciso fazer alguma alteração no arquivo original?
evandromagico- Iniciante
- PONTOS : 2972
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar arquivos binário
Quantos Nomes você Colocou ?
Nos Scripts "Data" e "Save" Altere o Numero 8 pela quantidade de Nomes Salvos.
e Tire o "MonoBehaviour" do Arquivo "Data".
Nos Scripts "Data" e "Save" Altere o Numero 8 pela quantidade de Nomes Salvos.
e Tire o "MonoBehaviour" do Arquivo "Data".
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Salvar arquivos binário
Conseguiu ?
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Tópicos semelhantes
» Como faz para salvar as escalas dos arquivos no TilePallets?
» Carregar arquivos da biblioteca
» Cloud Save por arquivo binario no google play services
» Arquivos NUGET
» Arquivos de Expanssão OBB
» Carregar arquivos da biblioteca
» Cloud Save por arquivo binario no google play services
» Arquivos NUGET
» Arquivos de Expanssão OBB
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos