Pesquisar
Close this search box.

As melhores práticas para salvar estado de GameObjects na Unity

Saiba como salvar um GameObjects na Unity e manter as coisas importantes muito bem guardadas

Salvar o estado de um gameobjects na Unity é uma coisa importante, né? O que? você não sabe oque isso significa e oque é um gameobjects?

Quer dizer, imagine que seu jogo não tem esse recurso e os jogadores tem que terminar ele em uma única jogada. Pode até ser desafiante, mas depende de quanto tempo seu jogo tem.

Se for como um jogo do Sonic SuperStars, que é possível terminar em 2 horas, ok. Mas imagine salvar em uma jogada apenas um Final Fantasy XV que tem dezenas de centenas de horas de conteúdo?

Realmente não dá. Por isso, salvar o GameObjects na Unity (site oficial) é realmente muito importante. Afinal, você deve manter, em algum lugar, o progresso do seu jogador ou se jogo pode ser a coisa mais frustrante que eles vão ter jogado na vida.

Então, nesse artigo, vou te mostrar um jeito fácil e eficiente de fazer isso, pra você não perder nenhum progresso do seu game e, se você ficar com dúvidas, é só deixar nos comentários.

PlayerPrefs – O Básico

Mas, para começar, o que é o PlayerPrefs? Resumidamente é uma forma simples de salvar dados entre sessões de jogo. É tipo um caderninho onde você anota coisas importantes. Mas, Como usar?

  • É só chamar PlayerPrefs.SetInt(“Chave”, valor);
  • PlayerPrefs.SetFloat(“Chave”, valor) ou PlayerPrefs.SetString(“Chave”, valor) para salvar as preferencias do jogador;
  • E para recuperar, usa PlayerPrefs.GetInt(“Chave”), PlayerPrefs.GetFloat(“Chave”) ou PlayerPrefs.GetString(“Chave”);

Por um lado, o PlayerPrefs é fácil de usar e rápido de implementar, mas, por outro, não é seguro (os jogadores podem mexer nos dados), e não é feito para salvar muita coisa. Então, na hora de escolher usar ou não, tem que levar isso em consideração.

Deixa eu te contar uma coisa antes de continuarmos

Você já sonhou em transformar seu amor por videogames em mais do que apenas um hobby?

Estamos preparando uma nova SUPER-AULA ao vivo e exclusiva!!

Nessa aula exclusiva do Studio Married Games, revelaremos não apenas os fundamentos do desenvolvimento de jogos, mas também como você pode superar obstáculos técnicos e iniciar seus projetos com confiança e criatividade.

Esta é sua oportunidade de aprender com os melhores na área, ganhar insights valiosos e começar a trilhar seu caminho em direção a uma carreira dos sonhos no universo dos jogos. A paixão já está aí, agora é hora de dar poder a ela.

Não deixe escapar essa chance de fazer história no mundo dos jogos e seja avisado EM PRIMEIRA MÃO quando essa aula (e outras coisitas mas) forem acontecer!. 

Inscreva-se agora e transforme essa possibilidade em realidade. Estamos te esperando!

Usando PlayerPrefs – Detalhes e Dicas

  • Limites de Dados: Lembre-se que PlayerPrefs é mais adequado para dados simples como high scores, configurações de usuário, etc. Não é ideal para salvar estados complexos de jogo.
  • Cuidado com as Chaves: Use chaves únicas para cada dado que você salvar. Evite conflitos ou sobreposições.
  • Limpeza: Não se esqueça de limpar os PlayerPrefs quando não precisar mais dos dados, usando PlayerPrefs.DeleteKey(“Chave”) ou PlayerPrefs.DeleteAll() para limpar tudo.

Serialization – Um Passo Além

Se você já está bem familiarizado com o PlayerPrefs, então, talvez seja o momento de ir um pouco além com o Serialization. Mas, você sabe o que é? Serialization é o processo de transformar objetos do seu jogo em um formato que pode ser salvo e carregado facilmente.

Você pode usar JSON ou Binary Serialization. Com JSON, você transforma os objetos em strings JSON. Com Binary Serialization, você os transforma em binário, que é mais seguro.

  • Pros: Bem mais seguro e flexível que PlayerPrefs. Dá para salvar objetos complexos.
  • Contras: Exige um pouco mais de código e entendimento de como a serialization funciona.

Salvando o State de um GameObjects na Unity

  • Decida o que salvar: Primeiro, define quais informações do seu GameObject são importantes. Pode ser a vida do personagem, posição, inventário, etc.
  • Crie uma Classe de Save: Faça uma classe em C# que vai representar esses dados. Algo tipo public class SaveData { public float vida; public Vector3 posicao; … }.
  • Serialize e Salve: Quando precisar salvar, crie um objeto SaveData, preencha com os dados do seu GameObject, serialize (em JSON ou binário) e salve em um arquivo ou com PlayerPrefs.
  • Carregue e Aplique: Na hora de carregar, leia o arquivo ou PlayerPrefs, deserialize para um objeto SaveData e aplique os dados ao seu GameObject.

Serialization – JSON vs. Binary:

  • JSON: Mais fácil de debugar, já que você pode ler os dados facilmente. Use JsonUtility.ToJson(objeto) para serializar e JsonUtility.FromJson<Tipo>(string) para deserializar.
  • Binary: Mais seguro e compacto, mas não é legível. Use a classe BinaryFormatter para serializar e deserializar os dados. Lembre-se de tratar as exceções que podem ocorrer durante a leitura e escrita de arquivos.

Salvando Estados Complexos

Para salvar estados de componentes específicos, crie campos na classe SaveData. Ou use o método GetComponent<T> para recuperar o componente e salvar seu estado diretamente.

Use o método SerializeField para declarar uma lista ou array. Use o método Serialize para serializar a lista ou array.

Use GetComponentsInChildren para recuperar componentes filhos. Use RegisterComponent para registrar componentes criados dinamicamente. Use Copy para copiar o estado de componentes mutáveis antes de serializá-los.

  • Componentes do GameObject: Se você precisa salvar estados de componentes específicos (como Rigidbody, Animator, etc.), você pode criar campos específicos para isso na sua classe SaveData.
  • Salvando Listas ou Arrays: Se você tem listas de itens ou arrays de estados, você também pode serializar esses tipos. Apenas certifique-se de que os tipos que você está serializando são serializáveis.

Aproveitando que estamos conversando, deixa eu te fazer um convite:

Imagine um lugar onde sua paixão por jogos se torna o alicerce de uma carreira empolgante. Imaginou? Então chega de imaginar e vem para onde isso é real: É a nossa Super-Aula ao vivo, exclusiva para entusiastas de jogos como você, que desejam dar o próximo grande passo. 

Nesta super aula do Studio Married Games, vamos juntos descobrir como transformar ideias em realidade, superar qualquer desafio técnico e explorar ferramentas que farão seus projetos ganharem vida.

Se você está procurando um sinal para começar, este é ele. Estamos preparando tudo, mas você já pode guardar um lugar para você! Tá esperando o que?

Junte-se a uma comunidade de criadores apaixonados e dê o primeiro passo em direção a uma carreira de sucesso no desenvolvimento de jogos. Seu futuro no mundo dos jogos começa com esta aula. A aventura está apenas começando. Vamos nessa? 🎮🚀

Práticas de Salvamento de Jogos

  • Frequência de Salvamento: Decida quando salvar o jogo. Pode ser após um evento importante, ao sair de uma área, ou periodicamente em um intervalo de tempo.
  • Save Slots: Implemente slots de salvamento para que os jogadores possam ter múltiplos jogos salvos.
  • Feedback para o Jogador: Dê um feedback visual ou sonoro quando o jogo for salvo para que o jogador saiba que seu progresso não será perdido.

Testando e Debugando

  • Teste Exaustivo: Teste todas as possibilidades de salvamento e carregamento. Tente quebrar seu próprio sistema de save/load para encontrar falhas.
  • Logs de Debug: Use logs de debug para acompanhar o processo de salvamento e carregamento, especialmente se estiver usando serialization.

Dicas Extras

  • Segurança: Se segurança é importante, prefira Binary Serialization.
  • Teste: Sempre teste bem o sistema de save/load para garantir que tudo funciona direitinho.
  • Compatibilidade de Versão: Se você planeja atualizar seu jogo, pense em como os saves antigos vão funcionar com as novas versões.
  • Documentação: Documente como seu sistema de salvamento funciona. Isso é útil para futuras referências e para outros membros da equipe.
  • Backup: Pense em ter um sistema de backup, para o caso de algo dar errado.

Salve essas Dicas

Aprender Unity e desenvolvimento de jogos é uma jornada emocionante e recompensadora. Com dedicação, prática e um entendimento sólido dos conceitos-chave, você estará no caminho certo para criar jogos incríveis e mergulhar em um setor dinâmico e em constante evolução.

Prepare-se para descobrir dicas valiosas que impulsionarão seu conhecimento e habilidades no Unity, abrindo portas para a criação de experiências únicas e impactantes. Vamos mergulhar neste mundo fascinante do desenvolvi

Salvar o estado de um jogo é uma tarefa crucial e pode ser bem complexa dependendo do quão detalhado é seu jogo. Mas com essas dicas, você já tem uma boa base para criar um sistema robusto e confiável. Vai fundo e transforme essa ideia em realidade! Qualquer coisa, estamos aqui pra ajudar. Boa sorte!

FAQ Rápido

Qual a importância das ferramentas de versionamento?

Ferramentas de versionamento, como Git, permitem mesclar facilmente o trabalho de todos, mesmo trabalhando sozinho. Elas também facilitam o backup do trabalho, a criação de backlog e a experimentação sem medo de perder o progresso.

Como posso encontrar soluções para problemas no Unity?

Consultar a documentação do Unity 3D e do Unreal Engine é uma ótima estratégia. Além disso, pesquisar no Google e visitar sites como Answers.unity3d.com, stackoverflow.com e gamedev.stackexchange.com pode fornecer respostas para suas perguntas.

Por que devo participar de Game Jams?

As Game Jams são oportunidades para estimular a mente e as habilidades de desenvolvimento de jogos. Elas permitem experimentar novos recursos, testar habilidades e prototipar projetos em um curto período de tempo.

Como a reavaliação do trabalho pode beneficiar meu desenvolvimento?

Reavaliar e criticar o trabalho anterior é essencial para identificar pontos fortes e falhas, permitindo melhorias com base no aprendizado contínuo.

Fale conosco nos comentários e diga oque achou dessa matéria e aproveite para ler mais notícias e matérias, como por exemplo, sobre Prop Artist, no nosso site.

Saiba quais são as principais Técnicas Avançadas de Shading em Jogos 3D
Conheça a Unreal Engine e todas as ferramentas que fazem dessa uma das melhores engines no mercado
quer saber os salários de Desenvolvedores de Jogos no Brasil ao Exterior? Veja aí quanto Ganha um Desenvolvedor de Jogos
Já pensou em fazer um jogo de um personagem que você ama? Então, saiba Como Fazer Um Fan Game
Já pensou em como fazer o seu Marketing para Jogos VR/AR? Descubra como
Saiba mais sobre a memória T-Force Vulcan DDR5 e descubra se ela é a ideal para o seu setup