Я создаю игру с Unity3d и использую редактор 2019.3.3.
У меня проблема с IOS сборками.
Я пробую свою игру на устройстве android и он работает нормально, однако вчера я попробовал свою игру на IOS devide, и у меня были проблемы с сохранением и загрузкой файла xml на IOS.
Я использую этот код для сохранения:
SaveAvatar() {
XmlSerializer serializer = new XmlSerializer(typeof(AvatarData));
FileStream stream = new FileStream(Application.persistentDataPath + "avatar_data.xml", FileMode.Create);
serializer.Serialize(stream, avatarData);
stream.Close();
}
и я использую этот код для загрузки:
LoadAvatar() {
XmlSerializer serializer = new XmlSerializer(typeof(AvatarData));
FileStream stream = new FileStream(Application.persistentDataPath + "avatar_data.xml", FileMode.Open);
avatarData = (AvatarData)serializer.Deserialize(stream);
stream.Close();
}
Also in OnEnable function I create my xml file if it does not exists: Without this code, it is not saving the game in editor or android as well.
OnEnable () {
if (!File.Exists(Application.persistentDataPath + "avatar_data.xml")) { avatarData.jobID = 10000;
SaveAvatar();
}
Эти коды не работают в IOS, даже если сериализация класса содержит только один тип int. (Я попытался сохранить другой класс, чтобы увидеть, есть ли у моего основного класса сохранения проблемы или нет)
Мой класс сохранения содержит типы переменных:
Строки, Ints, Enums, float, list, другие классы и переменные собственного класса
Вот примеры переменных из моего класса: (Выборки из всех типов переменных)
[System.Serializable]
public class AvatarData{
public bool dead;
public string avatarName;
public int age;
public float health;
public AvatarData father; (Self Class variable)
public EnumGender gender; (Enum)
public JobClass job; (Another Class variable)
public List<GroupClass> groups; (Another Class List variable)
public List<AvatarData> children; (Self Class List variable)
public List<PetClass> pets;
public List<LogClass> logs;
public List<JobClass> Jobs;
public List<EventClass> tempEvents;
public List<ItemsClass> myItems;
}
Когда я использую функции SaveAvatar или LoadAvatar, в IOS это вызывает ошибки и код не продолжает дальнейшие строки. без сохранений работает нормально.
Может кто-нибудь сказать мне, что не так с моим кодом
Спасибо