PlayerPrefs é uma ferramenta da Unity que nos permite salvar dados dentro do nosso jogo, seja da forma mais simples até a mais avançada como um banco de dados.
Nós podemos salvar e recuperar 3 tipos de variáveis: string, float e int.
Isso acaba sendo um problema quando queremos salvar valores como bool, Vector3 ou Vector2 e color.
Mas existe uma forma de você salvar esses valores sem precisar apelar para “gambiarras”.
Te mostrarei aqui hoje sobre o Vector 3 e o Vector2 e se você quer aprender mais sobre o PlayerPrefs temos um artigo completo sobre isso:
https://www.crieseusjogos.com.br/salvar-o-jogo-na-unity/
PlayerPrefs Vector3 | Como salvar Vector 3 e 2 na Unity
1- O que é um Vector3 para o computador?
2- PlayerPrefs na Unity
3- PlayerPrefs Vector3
4- PlayerPrefs Vector2
O que é um Vector 3 para o computador?
Você já parou pra pensar como o computador lida com o processamento de dados?
Essa é uma questão ampla e pode ser complexa, porque podemos falar desde números binários até variáveis.
Mas olhando por uma lado prático, todo o computador é capaz de processar somente alguns tipos de variáveis.
São as principais float, int e string.
E você deve estar se perguntando, como então existem muito mais tipos de variáveis como Vector3, bool e o computador não é capaz de trabalhar com elas?
A resposta é que as linguagens que usamos para fazer jogos são linguagens de alto nível.
Isso significa que a forma de programar esta mais perto da linguagem e praticidade humana.
Logo, o que essas linguagens fazem é traduzir o Vector3 em 3 variáveis float, o que fica muito mais compreensível para nós.
Se você for programar em C, por exemplo, ela é uma linguagem de mais baixo nível e não existem variáveis do tipo bool, pois elas são traduzidas para um valor int de 0 ou 1.
PlayerPrefs na Unity
Você deve ter notado que você pode gravar somente variáveis int, float e string na Unity.
Isso acontece então porque o computador não é capaz de trabalhar com variáveis complexas como o Vector3.
Logo, ele não vai conseguir guardar um valor valor Vector3.
É claro que a Unity poderia ter feito esse trabalho para traduzir o Vector3 em 3 variáveis float, mas ela faz isso para que a manipulação de dados seja mais precisa.
Resta então o nosso dever fazer essa tradução e faremos isso com 2 métodos, setbool e getbool.
PlayerPrefs Vector3
void SetVector3(string Repositorio, Vector3 V) { PlayerPrefs.SetFloat(Repositorio + "/x", V.x); PlayerPrefs.SetFloat(Repositorio + "/y", V.y); PlayerPrefs.SetFloat(Repositorio + "/z", V.z); } Vector3 GetVector3(string Repositorio) { return new Vector3(PlayerPrefs.GetFloat(Repositorio + "/x"), PlayerPrefs.GetFloat(Repositorio + "/y"), PlayerPrefs.GetFloat(Repositorio + "/z")); }
PlayerPrefs Vector2
O Vector 2 trabalha somente com as coordenadas x e y, diferente do Vector3 que trabalha com x, y e z.
Com o Vector2 então fazemos de forma semelhante:
void SetVector2(string Repositorio, Vector2 V) { PlayerPrefs.SetFloat(Repositorio + "/x", V.x); PlayerPrefs.SetFloat(Repositorio + "/y", V.y); } Vector2 GetVector2(string Repositorio) { return new Vector2(PlayerPrefs.GetFloat(Repositorio + "/x"), PlayerPrefs.GetFloat(Repositorio + "/y")); }
Artigos Relacionados:
PlayerPrefs Bool | Como salvar variáveis bool na Unity
Gostou desse artigo? Temos mais em nosso blog: www.crieseusjogos.com.br
Também temos vídeos toda semana em nosso canal do Youtube: Crie seus jogos – Youtube
Baixe gratuitamente: os passos para desenvolver jogos de sucesso
Seja o primeiro a comentar.