Noticias

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

[AYUDA] Script de tiempo jugado

Iniciado por Hirotsugu, Julio 30, 2015, 11:43:06 PM

Tema anterior - Siguiente tema
Hola, buenas a todos hace poco hice un script para ver el tiempo que ha jugado cierto usuario, pero cada que cierro la aplicación ese tiempo inicia de 0 nuevamente, la idea es que por mas que dsalga del juego al entrar tome en cuenta el tiempo que ya habia jugado antes y lo continuo desde ahi al volver a abrir el juego. Estaba leyendo y vi que con los PlayerPrefs podia guardar variables pero no se si con este pequeño ejemplo que hice sirva en realidad o como podría mejorarlo para que almacene mi variable de tiempo, o es que debería usar un save()
using UnityEngine;
using System.Collections;

public class Temporizador : MonoBehaviour {
 
// Use this for initialization
void Awake () {

}

// Update is called once per frame
void Update () {

   //Tiempo desde que se inicializa la escena
   float t = Time.timeSinceLevelLoad;

   ///////////////
   // llave tiempo y valor que va hasta el momento
   PlayerPrefs.SetFloat("time",t);
   Debug.Log("GUARDADO");

   //Compruebo si existe la llave  para retornar mi variale tiempo
   if(PlayerPrefs.HasKey("time"))
   {
      float x = PlayerPrefs.GetFloat("time");
      Debug.Log(x);

   }
}
}
Agradecería que puedan ayudarme, me he pasado un buen rato leyendo y no le doy en el clavo aun 

puede ser que sea con static class? me parece que eso guarda en memoria

Es muy simple. Si lo primero que haces es salvar la variable "time" con valor 0 y luego miras si la variable existe y lees su valor ... lo normal es que encuentres que vale 0.
La verdad es que mirando el script, lo raro es que te funcione medio bien.Lo que tienes que hacer es que cada vez que cierras la escena, sumar el valor de http://docs.unity3d.com/ScriptReference/Time.html" rel="external nofollow">Time.timeSinceLevelLoad, con el valor de la variable "time" que se almacena en PlayerPref. Cuando quieras saber el tiempo de juego, basta con comprobar el valor de la variable "time".
Así de simple. Nada de Updates ni cosas así, que la lías.

Lo termine de hacer sumandole el valor guardado al final con otro valor base, osea mi tiempo final + una variable inicializada en 0 y esa ir guardando, pero pensaba hacer que el juego se cierre por un momento hasta luego cuando termine el tiempo, pero lo malo es que si borro datos piudes entrar de nuevo como si nada y con el tiempo dese 0 nuevamente xD maldito borrar datos  no saben de alguna forma de como solucionar eso?

Etiquetas: