public static T Load <T>(string filename, Encoding encoding, LevelType levelTypeToLoad) { string filePath = ""; filename = string.Format("{0}/{1}/{2}", Application.persistentDataPath, levelTypeToLoad, filename); Stream stream = null; string data = ""; data = File.ReadAllText(filePath, encoding); string decoded = SaveGameEncoder.Decode(data); stream = new MemoryStream(encoding.GetBytes(decoded), true); T result = SaveGameJsonSerializer.Deserialize <T>(stream, encoding); stream.Dispose(); return(result); }