He estado usando la unidad de forma intermitente durante un año y sigo aprendiendo. Estoy tratando de crear un juego básico en el que un jugador tiene que pasar por niveles y acumular puntos en una cuenta regresiva de tiempo en Android. El jugador habrá completado el nivel una vez que haya alcanzado un final que mostraría la cantidad de puntos acumulados junto con el tiempo necesario para completarlo. La puntuación más alta se mostrará a partir de la multiplicación de los puntos y el tiempo empleado, lo cual es simple.
La puntuación más alta ya se habría guardado usando las preferencias del jugador y la puntuación más alta se mostrará en la pantalla de selección de nivel debajo de cada nivel (por ejemplo, lvl 1: 136, lvl2: 245, etc...). Acabo de aprender cómo guardar un int simple usando playerprefs.
Mi problema es cómo guardo el puntaje más alto de cada nivel individual y luego lo muestro en la pantalla de selección de nivel usando las preferencias del jugador.
Como en mi primer comentario, PlayerPrefs funciona con pares clave-valor para que pueda hacerlo así.
// Setting values PlayerPrefs.SetInt("Level1", 100); PlayerPrefs.SetInt("Level2", 200); // Getting values int someint = PlayerPrefs.GetInt("Level1"); int someint2 = PlayerPrefs.GetInt("Level2");Entonces, cuando quieras guardarlo para cada nivel, haz algo como esto.
//Save Score with scene name as the key and the score as the value PlayerPrefs.SetInt(SceneManager.GetActiveScene().name, _score);Puedes ponerlo donde quieras. Siempre obtendrá el nombre de la escena actualmente activa como clave.
También puede guardar flotantes y cadenas y también eliminar entradas.
Para obtener más información, consulte los documentos de Unity: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html