/// <summary> /// Función que guarda las estadísticas en estadisticas.dat si alguno de los valores es mejor que los actuales. /// </summary> /// <param name="estadisticas">estadísticas que queremos guardar</param> public static void GuardarEstadisticas(Estadisticas estadisticas) { BinaryFormatter formatter = new BinaryFormatter(); string patch = Application.persistentDataPath + "/estadisticas.dat"; if (!File.Exists(patch)) { FileStream stream = new FileStream(patch, FileMode.Create); RegistroEstadisticas registro = new RegistroEstadisticas(estadisticas.enemigosDerrotados, estadisticas.ataquesRealizados, Time.time - estadisticas.inicioDePartida); formatter.Serialize(stream, registro); stream.Close(); } else { RegistroEstadisticas estadisticasActuales = cargarEstadiscas(); int enemigosDerrotados; if (estadisticasActuales.EnemigosDerrotados >= estadisticas.enemigosDerrotados) { enemigosDerrotados = estadisticasActuales.EnemigosDerrotados; } else { enemigosDerrotados = estadisticas.enemigosDerrotados; } int ataquesRealizados; if (estadisticasActuales.AtaquesRealizados >= estadisticas.ataquesRealizados) { ataquesRealizados = estadisticasActuales.AtaquesRealizados; } else { ataquesRealizados = estadisticas.ataquesRealizados; } float maximaDuracionDePartida; float tiempo = Time.time; if (estadisticasActuales.MaximaDuracionDePartida >= tiempo - estadisticas.inicioDePartida) { maximaDuracionDePartida = estadisticasActuales.MaximaDuracionDePartida; } else { maximaDuracionDePartida = tiempo - estadisticas.inicioDePartida; } FileStream stream = new FileStream(patch, FileMode.Create); RegistroEstadisticas registro = new RegistroEstadisticas(enemigosDerrotados, ataquesRealizados, maximaDuracionDePartida); formatter.Serialize(stream, registro); stream.Close(); } }
/// <summary> /// Función que muestra el menú de estadísticas y oculta los demas. /// </summary> public void actualizarEstadisticas() { estadisticas = GuardarCargarConf.cargarEstadiscas(); if (estadisticas == null) { estadisticas = new RegistroEstadisticas(); } estadisticasAtaque = GameObject.Find("nAtaques"); estadisticasAtaque.GetComponent <Text>().text = "" + estadisticas.AtaquesRealizados; estadisticasEnemigo = GameObject.Find("nEnemigos"); estadisticasEnemigo.GetComponent <Text>().text = "" + estadisticas.EnemigosDerrotados; estadisticasTiempo = GameObject.Find("nTiempo"); estadisticasTiempo.GetComponent <Text>().text = estadisticas.tiempoFormateado(); //Debug.Log("Ataques" + estadisticas.AtaquesRealizados); //Debug.Log("Enemigos" + estadisticas.EnemigosDerrotados); //Debug.Log("Tiempo: " + estadisticas.tiempoFormateado()); }
/// <summary> /// Función que carga las estadísticas guardadas en estadisticas.dat /// </summary> /// <returns>Si existe nos devolvera un objeto de tipo RegistroEstadisticas con las estadísticas actuales si no existe devuelve null</returns> public static RegistroEstadisticas cargarEstadiscas() { string patch = Application.persistentDataPath + "/estadisticas.dat"; if (File.Exists(patch)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(patch, FileMode.Open); RegistroEstadisticas registro = formatter.Deserialize(stream) as RegistroEstadisticas; stream.Close(); return(registro); } else { Debug.Log("No existe el archivo"); return(null); } }