Hello everyone, today i come to a problem that i cannot solve by myself, i been tryng since yesterday and i just cant figure what is wrong.
Im tryng to write a serialized file on android device, when i run the game in the editor it perfectly creates the file in my PC but not in my android device, here is the code im using
this is my serialized Class.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class SaveData {
public static SaveData Instance = new SaveData();
public int estadoDeVentana = 1;
public int Canon = 0;
public int metralleta = 1;
public int laser = 0;
public int rocket = 0;
public int handgun = 0;
public bool canonB = false;
public bool metralletaB = true;
public bool laserB = false;
public bool rocketB = false;
public bool HandgunB = false;
//Cuerpos
public int cuerpo = 1;
public int doble = 0;
public int second = 0;
public bool cuerpoB = true;
public bool dobleB = false;
public bool secondB = false;
//Turbinas
public int basica = 1;
public int bigone = 0;
public int gravity = 0;
public int single = 0;
public int tri = 0;
public bool basicaB = true;
public bool bigoneB = false;
public bool gravityB = false;
public bool singleB = false;
public bool triB = false;
//Cabinas
public int basicaCab = 1;
public int dog = 0;
public int pico = 0;
public int power = 0;
public int ultima = 0;
public bool basicaCabB = true;
public bool dogB = false;
public bool picoB = false;
public bool powerB = false;
public bool ultimaB = false;
//Stats
public int PlayerMaxHealth;
public int PlayerCurrentHealth;
public double PlayerMaxStamina;
public double PlayerCurrentStamina;
public int PlayerAtack;
public int PlayerSpeed;
public int Defensa = 0;
public int Coins = 0;
public int Diamantes = 0;
// Use this for initialization
}
These are my write/load methods.
public void SavedData()
{
if (!Directory.Exists("Saves"))
Directory.CreateDirectory("Saves");
BinaryFormatter formatter = new BinaryFormatter();
string dataPath = Application.persistentDataPath;
FileStream saveFile = File.Create(dataPath + "/save.binary");
DatosLocales = SaveData.Instance;
formatter.Serialize(saveFile, DatosLocales);
saveFile.Close();
}
public void LoadData()
{
Debug.Log(Application.persistentDataPath);
BinaryFormatter formatter = new BinaryFormatter();
string dataPath = Application.persistentDataPath;
FileStream saveFile = File.Open(dataPath + "/save.binary", FileMode.Open);
SaveData.Instance = (SaveData)formatter.Deserialize(saveFile);
saveFile.Close();
estadoDeVentana = SaveData.Instance.estadoDeVentana = estadoDeVentana;
Canon = SaveData.Instance.Canon;
metralleta = SaveData.Instance.metralleta;
laser = SaveData.Instance.laser;
rocket = SaveData.Instance.rocket;
handgun = SaveData.Instance.handgun;
canonB = SaveData.Instance.canonB;
metralletaB = SaveData.Instance.metralletaB;
laserB = SaveData.Instance.laserB;
rocketB = SaveData.Instance.rocketB;
HandgunB = SaveData.Instance.HandgunB;
cuerpo = SaveData.Instance.cuerpo;
doble = SaveData.Instance.doble;
second = SaveData.Instance.second;
cuerpoB = SaveData.Instance.cuerpoB;
dobleB = SaveData.Instance.dobleB;
secondB = SaveData.Instance.secondB;
basica = SaveData.Instance.basica;
bigone = SaveData.Instance.bigone;
gravity = SaveData.Instance.gravity;
single = SaveData.Instance.single;
tri = SaveData.Instance.tri;
basicaB = SaveData.Instance.basicaB;
bigoneB = SaveData.Instance.bigoneB;
gravityB = SaveData.Instance.gravityB;
singleB = SaveData.Instance.singleB;
triB = SaveData.Instance.triB;
basicaCab = SaveData.Instance.basicaCab;
dog = SaveData.Instance.dog;
pico = SaveData.Instance.pico;
power = SaveData.Instance.power;
ultima = SaveData.Instance.ultima;
basicaCabB = SaveData.Instance.basicaCabB;
dogB = SaveData.Instance.dogB;
picoB = SaveData.Instance.picoB;
powerB = SaveData.Instance.powerB;
ultimaB = SaveData.Instance.ultimaB;
Diamantes = SaveData.Instance.Diamantes;
Coins = SaveData.Instance.Coins;
}
I already checked that the project have the External (SD card) option activated.
Also this is my manifest Code which is in my unity folder.
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="preferExternal"
android:versionCode="1"
android:versionName="1.0">
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<application
android:theme="@style/UnityThemeSelector"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:debuggable="true">
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</application>
</manifest>
I hope someone can help me whit informacion or any strategy to solve this, i leave my mail for any help bolmack@hotmail.com
Thanks!