Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Guardar un numero con PlayerPrefs

Iniciado por BegProductions, Octubre 12, 2016, 02:00:48 PM

Tema anterior - Siguiente tema
Alguien sabe como guardar un score o un numero de monedas predeterminadas para que cuando cierres el juego se guarden gracias
 
con el PlayerPrefs  he escuchado que es mas facil pero no entiendo la guía de Unity.

Octubre 12, 2016, 03:28:11 PM #1 Ultima modificación: Octubre 12, 2016, 03:28:47 PM por Jose134
Cita de: BegProductions date=1476273648Alguien sabe como guardar un score o un numero de monedas predeterminadas para que cuando cierres el juego se guarden gracias
   
   
      con el PlayerPrefs  he escuchado que es mas facil pero no entiendo la guía de Unity.
   


Muy sencillo, inserta en tu codigo PlayerPrefs.SetInt("NombreQueLeQuierasDar", valor); y cuando quieras leer ese numero utiliza miPuntuacionGuardada = PlayerPrefs.GetInt("NombreQueLeHayasDado");
 
 
 
Por ejemplo:
 

private int highScore = ;
public int currentScore = ;
//Funcion que se llama al empezar a jugar (por si no la conoces se llama justo antes del Start)
private void Awake () {
highScore = PlayerPrefs.GetInt("HighScore"); //Recogemos la mayor puntuacion que tengamos guardada
}
//Funcion que se llama cuando terminas el nivel
public void EndLevel () {
     //Si hemos superado la mayor puntuacion
     if (currentScore > highScore) {
       PlayerPrefs.SetInt("HighScore", currentScore); //Guardamos la nueva mejor puntuacion
         highScore = currentScore; //Y esta variable es muy recomendable actualizarla
    }
}

 
 

Donde escribes tu HighScore devo poner una palabre nueva o puedo poner mi ScoreCounter?
 
Y para hacerlo en monedas? No quiero que se reinicie la verdad intentare probrar a ver si me sale algo gracias


Octubre 12, 2016, 06:51:37 PM #4 Ultima modificación: Octubre 12, 2016, 08:06:01 PM por pioj
Cita de: BegProductions date=1476279077Donde escribes tu HighScore devo poner una palabre nueva o puedo poner mi ScoreCounter?
   
   
      Y para hacerlo en monedas? No quiero que se reinicie la verdad intentare probrar a ver si me sale algo gracias
   


Puedes poner el nombre que quieras, eso es simplemente con que nombre quieres que se guarde el valor, como si tuvieras una variable
 
Si quieres con monedas haz exactamente lo mismo, pero cambiando el nombre del valor que guardas, por ejemplo:
 



   
       
   
   
      PlayerPrefs.GetInt("Coins"); / PlayerPrefs.SetInt("Coins", numeroDeMonedasQueHasRecogido); //Para las monedas
   
   
      PlayerPrefs.GetInt("ScoreCounter"); / PlayerPrefs.SetInt("ScoreCounter", mejorPuntuacion); //Para los puntos
   
   
       
   

[/quote]
 
 

Cita de: Jose134 date=1476291097Puedes poner el nombre que quieras, eso es simplemente con que nombre quieres que se guarde el valor, como si tuvieras una variable
   
   
      Si quieres con monedas haz exactamente lo mismo, pero cambiando el nombre del valor que guardas, por ejemplo:
   
   
       
   


Estuve probando algunas cosas y el problema viene que yo al recoger las coins y con el PlayerPref las pongo en un HighScore de monedas este al reiniciar el juego no las guarda no se si me explico grabo un video y lo ves :
 


   
eature=oembed" width="480">

 
Creo explicarme bien
 
Aqui te dejo los scripts que llevo:
 
 
 
 
 
//www.unityspain.com/applications/core/interface/file/attachment.php?id=9914">CoinPickUp.cs
//www.unityspain.com/applications/core/interface/file/attachment.php?id=9913">ScoreManager.cs
//www.unityspain.com/applications/core/interface/file/attachment.php?id=9912">HighScoreOfCoins.cs

Lo tienes bien escrito pero no veo que llames a las funciones ni las asignes en ningun lado.
 
Ni llamas a la funcion HighScoreofCoins para que guarde la puntuacion en`los playerPrefs,ni guardas en ninguna variable la que te devuelde PlayerPrefs.Int("ScoreManager");,aparte que se tendrian que llamar igual tienes el SetInt que lo guardara en una "key" del PlayerPrefs llamada HighScoreManager pero tienes el GetInt intentando coger una que se llama ScoreManager.
 
Te dijo mas o menos
 
en el ScoreManager.cs en el start pones
 
score =0;
 
score = PlayerPrefs,GetInt("HighScore");
 
 
 
y en la funcion AddPoints
 
score + = PointsToAdd;
 
if(score > PlayerPrefs.GetInt("HighScore")){
 
PlayerPrefs.SetInt("HighScore",score);
 
}
 
 
 
Asi te tendria que ir,el script HighScoreOfPoints borralo
 
 
 
 
 
 

No se si lo has escrito mal pero en la funcion de AddPoints tu escribes
 
score + = PointsToAdd;
 
Por lo que veo ese = me da un error y no me deja compilar
 
Creo que el HighScore no devo eliminarlo ya que va conectado al HighScore a lo cual viene mi duda de que entonces como le paso los puntos al texto?
 
Gracias
 
 
 
Beg


Octubre 13, 2016, 04:26:37 PM #9 Ultima modificación: Octubre 13, 2016, 04:46:41 PM por BegProductions
Si ajaja me acabo de dar cuanta ya lo solucione y va todo perfect lo unico malo que le veo es que se acumulan los puntos y el morir te quita uno pero al salir vuelven a como estaban no se que sera
 
 
 
Por ejemplo yo ahora tengo 7 puntos salgo, entro y tengo los siete pero al suicidarme siete veces en el juego salir y volver a entrar vuelvo a tener esos siete si sabes alguna solución te lo agradezco
 
Alguna ayuda con lo de arriba?
 
 
 
 
 
 
 
Les comparto el Script de la muerte
 
 
 
 
 
 
 
//www.unityspain.com/applications/core/interface/file/attachment.php?id=9916">DeathTrigger.cs

Wow, noi, pero entiendes algo de los scripts??? No se, alucino un poco que hayas sido capaz de montar lo del video con estas preguntas.
 
Pero bueno,
 
En el AddPoints hay un if para que solo guarde la puntuacion solo si el score es superior al valor guardado, puedes quitarlo para que guarde siempre que sea llamada o crearte otra funcion que quite un punto y guardar los valores PlayerPrefs otra vez.
 
Deberias  mirar algun tutorial de programacion, avanzarias mucho mas rapido luego ,sin tener que atascarte a cada paso que das,con el gasto de energia y ganas que te convella.
 
Saludos!

Cita de: hammer date=1476371710Wow, noi, pero entiendes algo de los scripts??? No se, alucino un poco que hayas sido capaz de montar lo del video con estas preguntas.
   
   
      Pero bueno,
   
   
      En el AddPoints hay un if para que solo guarde la puntuacion solo si el score es superior al valor guardado, puedes quitarlo para que guarde siempre que sea llamada o crearte otra funcion que quite un punto y guardar los valores PlayerPrefs otra vez.
   
   
      Deberias  mirar algun tutorial de programacion, avanzarias mucho mas rapido luego ,sin tener que atascarte a cada paso que das,con el gasto de energia y ganas que te convella.
   
   
      Saludos!
   


El asset lo compre xd, se me da muy mal la programación por eso pregunto tanto Losiento.

No hombre,pregunta todo lo que quieras que para eso estamos,pero esque considero que si perdieras dos dias viendo tutoriales de programacion te seria todo muchisimo mas facil,en youtube hay muchos,nadie dice que tengas que convertirte en programador , pero con 4 o 5 cosas basicas verias como mejoras muchissimo y como cualquier cosa la buscarias en un momento en la ayuda de unity y de como mejorarias la utilizacion de assets externos.Lo dijo por propia experiencia que empeze dando palos de ciego tambien y me sabe mal ver como gastais energia en cosas muy simples.Sin acritud lo digo de buen rollo
 
 
 
Saludos!

Octubre 13, 2016, 08:39:04 PM #13 Ultima modificación: Octubre 14, 2016, 07:36:28 AM por pioj
Hombre gracias jaja cuando lo digo todos se enfadan y demás pero tu pareces ser mas sociable, tengo un curso que compre en una pagina no diré el nombre por Spam pero estoy entre verme esa que es del 2016
 
O verme unos tutoriales de Hagamos Videojuegos 2014 , supongo que iré a por los del 2016 por el tema de que Unity siempre cambia de actualizaciones y todo ese teme si ahora mismo me estoy bajando la Unity 5.4.2  que ha salido hacer unas 6 horas como mucho , bueno nos vemos.

Octubre 13, 2016, 10:44:11 PM #14 Ultima modificación: Octubre 13, 2016, 10:44:52 PM por hammer
No se enfada nadie hahahah xD, lo que escribiendo no se puede percibir el tono en que se dicen las cosas y puede crear mal entendidos,dont worry,
 
Sobre el curso si es solo de programacion de scripts ,y no sobre el programa en si,pues el que mas ameno veas ,recuerdo que el de hagamos videojuegos sobre programacion no estaba mal, aunque no lo vi, eran videos cortitos y eso es bueno.Pero si tienes alguno comprado pues se supone que sera mejor el comprado.
 
Saludos!

Etiquetas: