ToJson

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

ToJson

Сообщение NOVA 21 янв 2021, 17:53

День добрый. Пытался закинуть в String переменную список GameObject.
Выдаёт только instanceID":10074
Ни position ни rotarion ни каких других параметров, если учитывать что это камеры с кучей настроек.

Синтаксис:
Используется csharp
public List<GameObject> Cameras;

    [Multiline(20)]
    public string Data;


Cameras = GetComponent<MainCameraScript>().Cameras;
        Data = JsonUtility.ToJson(this);
 


Надо вручную это всё пихать? Тогда как плюсовать в цикле данные в переменную Data, чтобы всё это обратно прочитать?
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: ToJson

Сообщение BornFoRdeatH 22 янв 2021, 00:49

Only plain classes and structures are supported; classes derived from UnityEngine.Object (such as MonoBehaviour or ScriptableObject) are not.
Не бойся, если ты один, бойся, если ты ноль.
BornFoRdeatH
Адепт
 
Сообщения: 2377
Зарегистрирован: 22 окт 2011, 23:41
Откуда: Украина
Skype: bornfordeath

Re: ToJson

Сообщение NOVA 23 янв 2021, 09:31

Начинаю догонять. Но.

Создал класс.
Синтаксис:
Используется csharp
public static class FileData
    {
        public static GameObject Camera;
        public static string CameraName;
        public static Vector3 Position;
        public static Quaternion Rotation;
        public static float FOV;
        public static float FL;
        public static string SequencePath;
        public static string FileName;
    }



И написал цикл.
Синтаксис:
Используется csharp
for (int c = 0; c < GetComponent<MainCameraScript>().Cameras.Count; c++)
        {
            FileData.Camera = GetComponent<MainCameraScript>().Cameras[c];
            FileData.CameraName = GetComponent<MainCameraScript>().Cameras[c].name;
            FileData.Position = GetComponent<MainCameraScript>().Cameras[c].transform.position;
            FileData.Rotation = GetComponent<MainCameraScript>().Cameras[c].transform.rotation;
            FileData.FOV = GetComponent<MainCameraScript>().Cameras[c].GetComponent<CameraScript>().FOV;
            FileData.FL = GetComponent<MainCameraScript>().Cameras[c].GetComponent<CameraScript>().FL;
            FileData.SequencePath = GetComponent<MainCameraScript>().Cameras[c].GetComponent<CameraScript>().lastDirectory;

            Data = Data + JsonUtility.ToJson(FileData, true);
        }



Ругается на тип FileData. Хотя если перенести весь класс из public static в основной класс и использовать Data = Data + JsonUtility.ToJson(this, true); всё работает. Но мне нужны переменные в скрипте которые я не хочу записывать.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: ToJson

Сообщение 1max1 23 янв 2021, 09:54

Тебе нужен экземпляр что сериализовать его, статик убери просто и создавай через new.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: ToJson

Сообщение NOVA 23 янв 2021, 13:00

Просто нужные перменные в глобал унёс.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: ToJson

Сообщение NOVA 24 янв 2021, 18:42

А в чём прикол Джейсона я не пойму? Точно так же можно вручную данный в стринг запихать и сохранить и загрузить.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: ToJson

Сообщение 1max1 24 янв 2021, 18:56

Прикол в том что за тебя это уже сделали и тебе ничего писать не нужно.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: ToJson

Сообщение NOVA 25 янв 2021, 20:13

1max1 писал(а):Прикол в том что за тебя это уже сделали и тебе ничего писать не нужно.

Нудануда. Корячусь тут с сохранением списка камер со всеми параметрами, включая 8 параметров скрипта на каждую.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27