Моя цель - создать 50 объектов, которые имеют одинаковую структуру и используют постоянные данные.
Сначала я узнал о данных о персистентности, последовал официальному руководству Unity и заставил его работать. Поскольку учебное пособие работает с одним объектом, я начал создавать свою игру, такую как:
Мои методы для сохранения и загрузки данных персистентности.
public void saveBuy1()
{
Debug.Log("SavingBuy1");
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(Application.persistentDataPath + "/buy1.dat");
PlayerData data = new PlayerData();
data.isBoxSold = 1;
bf.Serialize(file, data);
file.Close();
}
public void loadBuy1()
{
Debug.Log("loading");
if (File.Exists(Application.persistentDataPath + "/buy1.dat"))
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(Application.persistentDataPath + "/buy1.dat", FileMode.Open);
PlayerData data = (PlayerData)bf.Deserialize(file);
file.Close();
GameObject.Find("buyBox1").GetComponentInChildren<Text>().text = "Item bought";
isBoxsold1 = data.isBoxSold1;
}
}
Мой класс PlayerData:
[Serializable]
class PlayerData {
public int coinsAmount;
public int isBoxsold;
}
Создание поля
//Regular box 1
int isBoxSold = 0;
int price1 = 6;
public Text boxPrice1;
public Image boxImage1;
public Button buyButton1;
Но я быстро понял, что должен быть более эффективный способ создания мои объекты-ящики, чем делать это:
//Regular box 1
int isBoxSold1 = 0;
int price1 = 6;
public Text boxPrice1;
public Image boxImage1;
public Button buyButton1;
//Regular box 2
int isBoxSold2 = 0;
int price2 = 6;
public Text boxPrice2;
public Image boxImage2;
public Button buyButton2;
, а затем создать дубликат метода loadBuy1 и вызвать его loadBuy2 et c ...
Итак, я обнаружил скриптовые объекты, которые, кажется, решить проблему необходимости создавать новые атрибуты и поля для каждого блока, но вместо этого создавать один класс один раз. Однако я не могу сказать asp, как можно связать эти экземпляры класса box, используя объекты сценариев с постоянством? Есть ли способ, где я мог бы создать один метод загрузки и сохранения, чтобы сохранить и загрузить все данные персистентности для всех объектов коробки одновременно? или мне все еще нужно создать метод сохранения и загрузки для каждого блока?