Quem já jogou nintendo 64 sabe o quanto é frustrante jogar um jogo por horas e não poder salvá-lo.
Essa é uma funcionalidade tão simples e comum hoje em dia, mas nem sempre foi assim.
A opção de salvar jogos é uma coisa recente, do século XXI, mas fundamental para a criação de um jogo.
E para nós desenvolvedores é importante nós sabermos aplicar isso nos nossos jogos.
Hoje eu irei te ensinar uma ferramenta para você poder criar save games no seu jogo.
1 – A ferramenta para salvar jogos
2 – Como usar essa ferramenta
3 – Ferramentas relacionadas ao PlayerPrefs
4 – Vídeos na prática
A ferramenta para salvar jogos
A Unity nos oferece uma ferramenta chama PlayerPrefs.
Ele funciona de forma parecida com as variáveis, você dá um nome e salva o valor que você quer.
A diferença é que as variáveis são salvas na memória RAM, já o PlayerPrefs é salvo no HD do computador.
A memória RAM é uma memória temporária do computador, já o HD é uma memória permanente.
Você pode consultar sobre essa ferramenta biblioteca da Unity e eu irei te ensinar tudo sobre ela aqui.
Biblioteca da Unity: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
Como usar essa ferramenta
Como eu disse, o funcionamento do PlayerPrefs é parecido com as variáveis, mas temos diferenças na hora de usar elas.
1 – Como declarar e atribuir um PlayerPrefs
Para declarar uma variável você coloca o nome, tipo de variável que você quer declarar e o valor dessa variável;
int a = 3;
float b = 5.7f;
string c = “nome”;
Quando você roda o Script o computador salva o número em um espaço de memória e dá um nome a ele para podermos buscar essa memória depois
Com o PlayerPrefs vai acontecer a mesma coisa, mas a forma de declarar é diferente.
PlayerPrefs.SetInt(“a”, 3);
PlayerPrefs.SetFloat(“b”, 5.7f);
PlayerPrefs.SetString(“c”, “nome”);
2 – Como buscar uma informação no PlayerPrefs
Agora que nós demos um nome nós podemos buscar essa informação.
Para isso você vai precisar de uma variável.
Nós pegaremos um valor do HD e colocaremos na memória RAM.
VariavelA = PlayerPrefs.GetInt(“a”);
VariavelB = PlayerPrefs.GetInt(“a”);
VariavelC = PlayerPrefs.GetInt(“a”);
Assim você consegue usar essas variáveis no Script, que inicialmente foram atribuídas com o valor do PlayerPrefs.
3 – Como salvar valores de variáveis
Depois de coletar esses valores e modificar as variáveis esta na hora de salvar de novo essas informações que estão na variável.
Para isso nós faremos o que já fizemos, porém com variáveis ao invés de valores.
PlayerPrefs.SetInt(“a”, VariavelA );
PlayerPrefs.SetFloat(“b”, VariavelB );
SetString(“c”, VariavelC );
4 – O que é possível salvar?
Apesar da semelhança, temos algumas diferenças em relação ao PlayerPrefs.
Em uma variável nós podemos declarar int, float, string, Vector3, bool e etc.
Mas com o PlayerPrefs nós só podemos declarar int, float e string.
Assim um bool vai virar de true e false para 1 e 0.
E para um Vector3 serão necessários 3 variáveis, uma para cada eixo.
5 – Como usar o bool e o Vector3
Para usar o bool nós precisaremos verificar antes qual o valor do PlayerPrefs.
bool a = false;
if( PlayerPrefs.GetInt(“a”) == 0 ){
a = false;
}
else{
a = true;
}
Já para o Vector 3 nós precisaremos ter um PlayerPrefs para cada eixo
Vector3 a = new Vector 3(0,0,0)
a.x = PlayerPrefs.GetInt(“ax”);
a.y = PlayerPrefs.GetInt(“ay”);
a.z = PlayerPrefs.GetInt(“az”);
6 – Atribuição com Bool e o Vector3
Usaremos a mesma lógica para atribuir essas variáveis
Tipo Bool
if( a == false ){
PlayerPrefs.SetInt(“a”, 0);
}
else{
PlayerPrefs.SetInt(“a”, 1);
}
Tipo Vector3
PlayerPrefs.SetInt(“ax”, a.x);
PlayerPrefs.SetInt(“ay”, a.y);
PlayerPrefs.SetInt(“az”, a.z);
Essas lógicas servem também para outros tipos de variáveis que você queira trabalhar
Ferramentas relacionadas ao PlayerPrefs
O que aconteceria se eu fosse usar um PlayerPrefs que ainda não foi declarado?
Bem, eu nunca testei a fundo mas quando acontece isso geralmente da algum problema nos meus jogos
Por isso, então, a Unity criou algumas ferramentas relacionadas ao PlayerPrefs
1 – Verificar se o PlayerPrefs existe
Para isso nós usaremos o HasKey
if(PlayerPrefs.HasKey(“a”){
}
2 – Deletar um PlayerPrefs
PlayerPrefs.DeleteKey(“a”);
3 – Deletar todos os PlayerPrefs
PlayerPrefs.DeleteAll
Vídeos na prática
Para você entender e aprender como funciona na prática, deixarei 2 vídeos nossos aqui.
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.