Hey, it’s been a while since I last used Unity. I’m currently working on a project and I’m encountering some serious issues with saving data using PlayerPrefs. I can’t seem to save any data, and I’ve tried different approaches. It’s not because I lack knowledge in C#, so I think there might be something wrong with my version (2022.3.4f1). Interestingly, it works fine with older versions. Any suggestions? Here’s an example of one of the scripts I’ve tried. When I press the button, it should save the data, but it doesn’t. I’ve used Debug to check, and it’s not receiving any data.
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class GuardaPlayerPref : MonoBehaviour
{
public string playerPrefsKey = "Puntos"; // La clave con la que se guardará el valor en PlayerPrefs
private Button button;
public IACalificador calificador;
public TextMeshProUGUI textoValorGuardado; // Referencia al componente TextMeshProUGUI del campo de texto
public enum IACalificador
{
PuntosEjercicioActual = 1
}
private void Awake()
{
button = GetComponent<Button>(); // Obtén la referencia al componente Button del objeto actual
}
private void Start()
{
button.onClick.AddListener(GuardarPuntos); // Agrega un Listener al evento onClick del botón
calificador = IACalificador.PuntosEjercicioActual;
// Obtén el valor guardado en PlayerPrefs y actualiza el campo de texto
int savedValue = PlayerPrefs.GetInt(playerPrefsKey);
textoValorGuardado.text = savedValue.ToString();
}
private void GuardarPuntos()
{
// Aquí guardas el valor deseado en PlayerPrefs
int valueToSave = (int)calificador; // Obtén el valor de calificador y conviértelo a entero si es necesario
PlayerPrefs.SetInt(playerPrefsKey, valueToSave);
PlayerPrefs.Save(); // Guardar los cambios en PlayerPrefs
// Actualiza el campo de texto con el nuevo valor guardado
textoValorGuardado.text = valueToSave.ToString();
}
}