Noticias

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

DateTime no me funciona

Iniciado por 0c0de, Febrero 13, 2016, 10:29:07 PM

Tema anterior - Siguiente tema
Os comento mi problema es que quiero poner una medida de "proteccion" en un boton es decir que cuando lo pulses una vez se desabilite y cuando pasen X dias se habilite de nuevo pues bien lo estoy haciendo con DateTime y resulta que no me lo calcula o no me funciona es decir que cuando salgo y entro de nuevo se reinicia el contador el codigo es este:
private DateTime _CurretnTime;
private DateTime _OldTime;

void Start(){
    if (PlayerPrefs.HasKey ("timer")) {
      CalculateDifferenceOfTime ();
   }
}

public void CalculateDifferenceOfTime(){
   _CurretnTime = DateTime.Now;
   long temp = Convert.ToInt64 (PlayerPrefs.GetString ("timer"));
   _OldTime = DateTime.FromBinary (temp);
   TimeSpan _Diference = _CurretnTime.Subtract (_OldTime);

   if (_Diference > TimeSpan.Zero) {
      m_GodluckButton.enabled = false;
      Debug.Log ("Esperando");
   } else {
      m_GodluckButton.enabled = true;
      Debug.Log ("Finalizado");
   }
}
Agradeceria mucho vuestra ayuda

Pos solo se me ocurre que no lo estes guardando bien, como pones el PlayerPrefs  "timer" ???
 Si lo pasas a string directamente tendras una fecha muy bonita con su formato dias/mes/año horas/minutos/segundos, pero luego no te funcionara el convert.toint64 , tendrias que pasarlo primero a binario y luego a string.Prueba de esta forma.PlayerPrefs.SetString("timer",DateTime.Now.ToBinary().ToString()) Cheers  

Febrero 14, 2016, 12:30:46 AM #2 Ultima modificación: Febrero 14, 2016, 12:31:31 AM por 0c0de
Así es como lo tengo en la función OnApplicationExit() para guardarlo al salirSe me olvido ponerlo xD

xD jajja al no verlo pense que por ahi andarian los tiros.Pues va a ser por tenerlo en OnApplicationExit(), cada vez que sales lo vuelve a guardar, tendrias que ponerlo solo cuando se pulse el boton  y solo activar el boton cuando pase el tiempo que quieras.Que por cierto ahora que me fijo bien,  si pones TimeSpan.Zero  sera 00:00:00:00 y entonces _Diference siempre sera mayor. Pon TimeSpan.FromDays(1); por ejemplo. o pa probar mas rapido tambien puedes TimeSpan.FromMinutes(1), ten encuenta que el esperando y el finalizando iran al reves.El finalizando en el if y el esperando en el else lml   lml

Muchas gracias hammer ahora lo probare

Ya esta arreglado con tu solucion

Etiquetas: