а как сериализовать массив интов?
Используется csharp
using UnityEngine;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
public class Save : MonoBehaviour {
public GameObject player;
[System.Serializable]
public class invSave
{
public int id;
}
public void saveI()
{
invSave save = new invSave();
for (int i = 0; i < GameObject.Find("Main Camera").GetComponent<ainv>().width * GameObject.Find("Main Camera").GetComponent<ainv>().height; i++)
{
save.id = GameObject.Find("Main Camera").GetComponent<ainv>().Currentitems[i].ID;
print(save.id);
}
if (!Directory.Exists(Application.dataPath + "/save"))
{
Directory.CreateDirectory(Application.dataPath + "/save");
FileStream f = new FileStream(Application.dataPath + "/save/invs.sv", FileMode.Create);
BinaryFormatter form = new BinaryFormatter();
form.Serialize(f, save);
f.Close();
}
else
{
FileStream f = new FileStream(Application.dataPath + "/save/invs.sv", FileMode.Open);
BinaryFormatter form = new BinaryFormatter();
form.Serialize(f, save);
f.Close();
}
}
public void loadI()
{
if(File.Exists(Application.dataPath + "/save/invs.sv"))
{
FileStream f = new FileStream(Application.dataPath + "/save/invs.sv", FileMode.Open);
BinaryFormatter form = new BinaryFormatter();
try
{
invSave ins = (invSave)form.Deserialize(f);
for (int i = 0; i < GameObject.Find("Main Camera").GetComponent<ainv>().width * GameObject.Find("Main Camera").GetComponent<ainv>().height; i++)
{
GameObject.Find("Main Camera").GetComponent<ainv>().Currentitems[i].ID = ins.id;
print(ins.id);
}
}
catch(System.Exception a)
{
Debug.Log(a.Message);
}
finally
{
f.Close();
}
}
else
{
Application.Quit();
}
}
}
вот я написал полную дичь, типа цикл такой же как в скрипте инвентаря ainv, сохраняю id предметов в 16 ячейках
print(save.id); выдает все норм, все ид на своих местах, но при загрузке print(ins.id); выдает все нули
(ноль - ид пустышки которая лежит в каждой ячейке), но почему-то даже если выставить предметы в ячейки в инспекторе
принт показывает все равно нули. Кароч я так понял что код с циклами в методах сейф/лоад полная чушь, если так и есть то подскажите плес как правильно сериализовать массивы.