/////////////////////////////////////////////////////////////////////////////////////////////////////// /// /// /// MÉTODOS PÚBLICOS /// /// /// /////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Genera y guarda el archivo de progreso /// </summary> /// <param name="obj">Objeto que se utiliza para obtener los valores de los datos a guardar</param> public void SaveFile(SerializationObject obj) { FileStream file; if (File.Exists(destination)) { file = File.OpenWrite(destination); } else { file = File.Create(destination); } file.Dispose(); File.WriteAllText(destination, String.Empty); SerializationObjectChiper chiperObject = new SerializationObjectChiper(); string jsonToChiper = ProgressManager.Instance.GetJson(obj); byte[] fileBytesToChiper = Encoding.UTF8.GetBytes(jsonToChiper); ActualGameID = GameManager.Instance.gameID; FileBytes = Encoding.UTF8.GetBytes(ActualGameID); string hashResult = ConvertObject(fileBytesToChiper); chiperObject.obj = obj; chiperObject._result = hashResult; File.AppendAllText(destination, ProgressManager.Instance.GetJson(chiperObject)); file.Close(); }
/// <summary> /// Carga el archivo del progreso del juego y actualiza los valores del manager de progreso /// </summary> public void LoadFile() { if (!File.Exists(destination)) { return; } string readedJson = File.ReadAllText(destination); SerializationObjectChiper chiperObj = ProgressManager.Instance.GetChiperfromJson(readedJson); SerializationObject ReadedObj = chiperObj.obj; string testObjJson = ProgressManager.Instance.GetJson(ReadedObj); byte[] fileBytes = Encoding.UTF8.GetBytes(testObjJson); ActualGameID = GameManager.Instance.gameID; FileBytes = Encoding.UTF8.GetBytes(ActualGameID); string testResult = ConvertObject(fileBytes); if (testResult == chiperObj._result) { ProgressManager.Instance.UpdateValues(ReadedObj); } else { ProgressManager.Instance.ResetProgress(); } }
/// <summary> /// Obtiene el json de un Objeto de serializacion cifrado /// </summary> /// <param name="obj">Objeto de serializacion cifrado</param> /// <returns>Json del objeto</returns> public string GetJson(SerializationObjectChiper obj) { return(JsonUtility.ToJson(obj)); }