Сохранение всех идентификационных номеров оружия с помощью цикла - PullRequest
0 голосов
/ 25 февраля 2019

У меня нет опыта программирования, и я играю с Unity Engine.Итак, у меня есть менеджер предметов.У всего оружия есть идентификационные номера, например, 23 для топора, 9 для ручного оружия и т. Д. *

Я пытаюсь создать систему безопасной загрузки.

1 Ответ

0 голосов
/ 25 февраля 2019

Вы должны использовать уникальный ключ для сохранения.Но вы используете один и тот же ключ для всех идентификаторов: «номер».

int i = 0;
foreach(var weapon1 in itemManager.items) {
    PlayerPrefs.SetInt ("nummer_" + i++, weapon1.id); 
}

Но возникает вопрос: как вы будете читать с PlayerPrefs неизвестные ключи?Лучший способ - сериализовать список оружия в файл.

https://docs.unity3d.com/Manual/script-Serialization.html https://unity3d.com/ru/learn/tutorials/topics/scripting/serialization-and-game-data

Или вы можете объединить все свои идентификаторы в строку, сохранить их в PlayerPrefs и анализировать при чтении:

//save
String weaponsList;
foreach(var weapon1 in itemManager.items) {
    weaponsList += weapon1.id + ',';
}
PlayerPrefs.SetString ("weapons",weaponsList); 

//load
String weaponsList = PlayerPrefs.GetString("weapons", String.Empty);
var weaponsIds= weaponsList.Split(new[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
foreach(var weaponId in weaponsIds) {
   //...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...