Сохранение данных в json в течение игры Unity? - PullRequest
0 голосов
/ 02 декабря 2019

Каков подходящий способ циклически проходить по всем активным игровым объектам и сохранять данные экземпляров каждые десять секунд?

В идеале я хотел бы создать отдельный JSON-файл, содержащий все данные игровых объектов, аналогично следующему:

            {
                "Instance ID" : " xxxxxx"
                "Time" : 10
                "Attributes" : [
                    { "Position" : "(xx,xx) },
                    { "Speed" : "xxx" },
                    { "Color" : "xxx" },
                ]
                "Instance ID" : " xxxxxx"
                "Time" : 20
                "Attributes" : [
                    { "Position" : "(xx,xx) },
                    { "Speed" : "xxx" },
                    { "Color" : "xxx" },
                ]
                ...
            }

В настоящее время я могу сохранять данные отдельного игрового объекта каждые 10 секунд. Однако включение вторичного игрового объекта просто перезаписывает исходный файл JSON.

1 Ответ

1 голос
/ 02 декабря 2019

Эта ссылка охватывает JsonUtility, сериализацию JSON из документации Unity.

Вот примерное описание вашего примера json:

[Serializable]
public class CustomObject
{
    public int instanceID;
    public float time;
    public Vector2 position;
    public float speed;
    public string color;
}
CustomObject myObject = new CustomObject();
myObject.instanceID = 1;
myObject.time = 10.0;
myObject.position = new Vector2(0.0f, 0.0f);
myObject.speed = 23;
myObject.color = 'red';

string jsonObject = JsonUtility.ToJson(myObject);

, а затем позже, когда выхочу снова поместить его в объект:

anotherObject = JsonUtility.FromJson<CustomObject>(jsonObject);

Я не проверял его, не знаю, работает ли он, но этого должно быть достаточно, чтобы указать вам правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...