Como usar PlayerPrefs na Unity?

PlayerPrefs é uma…

…classe em Unity que permite que os desenvolvedores armazenem e recuperem dados de configuração e progresso do jogo. É uma ferramenta útil para criar jogos com um sistema de progresso para que os jogadores possam salvar seus avanços. Essa classe usa um arquivo XML simples para salvar e carregar dados do jogo. PlayerPrefs pode ser usado para armazenar coisas como configurações de som e idioma, bem como para manter o progresso do jogador.

Um dos benefícios do uso de PlayerPrefs é que ele é fácil de usar e requer apenas algumas linhas de código. Para salvar um valor, os desenvolvedores podem usar um método simples, PlayerPrefs.SetFloat (), PlayerPrefs.SetInt (), ou PlayerPrefs.SetString (). Para recuperar um valor, eles podem usar um dos métodos de recuperação correspondentes. A simplicidade de PlayerPrefs torna mais fácil para os desenvolvedores adicionar funcionalidades de salvamento de jogo a seus jogos sem gastar muito tempo e esforço em desenvolvimento.

No entanto, é importante lembrar que o uso de PlayerPrefs pode ter algumas limitações. Como os dados são salvos localmente no dispositivo do jogador, os jogadores podem manipulá-los. Isso pode resultar em trapaças ou outros problemas se os desenvolvedores confiarem muito em PlayerPrefs. Além disso, a quantidade de dados que podem ser armazenados com PlayerPrefs é limitada. Se os desenvolvedores precisarem armazenar grandes quantidades de dados, eles podem precisar procurar outras opções de armazenamento, como o armazenamento em nuvem ou banco de dados.

Caso queira aprender a como criar um powerup na unity, você pode assistir o tutorial logo a baixo. Mas se chegou até aqui apenas querendo o código do vídeo, você pode encontrá-lo um pouco mais a baixo!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;

public class GameManager: MonoBehaviour {


    public const float velocidade = 3.0f;
    
    [Header("Paineis")]
    [SerializeField] private GameObject painelJogo;
    [SerializeField] private GameObject painelGameOver;

    [Header("Textos")]
    [SerializeField] private TMP_Text txtScore;
    [SerializeField] private TMP_Text txt_go_Score;
    [SerializeField] private TMP_Text txt_go_Best;

    private int best = 0;
    private int score = 0;

    public void FimDeJogo() {
        Time.timeScale = 0;

        painelJogo.SetActive(false);
        painelGameOver.SetActive(true);
        txt_go_Score.text = score.ToString();

        // confere score
        best = PlayerPrefs.GetInt("best", 0);
        if(score > best) {
            best = score;
            PlayerPrefs.SetInt("best", best);
            PlayerPrefs.Save();
        }
        
        txt_go_Best.text = best.ToString();

    }


}
Compartilhe !