- Home /
Can't transfer file from datapath to devices
Hi, I have a following piece of code to save game configs which are retrieved from Google spreadsheets. This piece works in the editor! I just press a button like "Sync with google" and it downloads new data, then I want to have a build with that data, not retrieving it from actual aplication on mobile. There is also a bulk which initializes content with the Load function, but nothing special aboiut it. Everything works fine in Unity when I press play, until I begin to build my project for iOS or Android, DoesSaveExist(string name) function on device returns false, so building doesn't properly handle .dataPath saved files. I also tried using .persistentDataPath but it is located somewhere at users/application data on PC so I have no idea how it may be included in the build. Also tried storing in Assets folder, but still not working. Please, point if I am missing something about this?
public static string GetSavePath(string name)
{
return Path.Combine(Application.dataPath, name + ".sav");
}
public static bool DoesSaveExist(string name)
{
return File.Exists(GetSavePath(name));
}
public static bool SaveGoogleData(List<Game.Design.Level> parsedData)
{
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream(GetSavePath("GoogleParsedData"), FileMode.Create))
{
try
{
formatter.Serialize(stream, parsedData);
}
catch (Exception)
{
Debug.Log("Google data NOT SAVED");
return false;
}
}
Debug.Log("Google data saved to: " + GetSavePath("GoogleParsedData").ToString());
return true;
}
public static List<Game.Design.Level> LoadGoogleData(string name = "GoogleParsedData")
{
if (!DoesSaveExist(name))
{
Debug.Log("Google data save DOES NOT EXIST");
return null;
}
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream(GetSavePath(name), FileMode.Open))
{
try
{
return (List<Game.Design.Level>)formatter.Deserialize(stream);
}
catch (Exception)
{
return null;
}
}
}
Have yout tried the strea$$anonymous$$g assets folder? Application.strea$$anonymous$$gAssetsPath
Answer by Phoera · Jan 19, 2016 at 03:40 PM
Actually solved it by loading from Resources.Load in runtime. I also changed binary to scriptable object with neede field.
Your answer
Follow this Question
Related Questions
Opening data file from asset folder 2 Answers
Application.CaptureScreenshot() does not save any image on Android while it does on Editor! 0 Answers
SqliteException: Unable to open the database file - Ready-made DB Provided To Access 0 Answers
When to use persistentDataPath versus dataPath 1 Answer
Streaming Assets or Persistent Data Path for reading files after build. 1 Answer