Как стать автором
Обновить

Комментарии 8

Предположим, что у нас есть класс, состоящий из десяти свойств. Мы сериализовали объект этого класса, поместили в файл, а далее в коде у нас появляется необходимость изменить одно из десяти свойств в JSON файле. Вариант с тем, чтобы десериализовать файл, внести изменение одному свойству, а далее снова сериализовать - плохой вариант, поскольку операции сериализации и десериализации не самые легковесные. Здесь нам на помощь и приходит класс JObject.

Автор же в курсе что это та же самая десериализация только до ~20% медленнее чем десериализация в конкретный тип?

JSON всем хорош (поддержка на всех платформах и лёгкость расшифровки, доходящая до человекочитаемости), кроме увесистого занимаемого объёма.

Если Unity общается с сервером по сети, то уже стоит посмотреть в сторону protobuf/msgpack или бинарных протоколов (с утаптыванием данных в каждый бит), использования алгоритмов сжатия типа zstd/lz4 и тому подобных ухищрений. У них, разумеется, тоже есть недостатки (обе стороны должны иметь алгоритм дешифровки и держать при себе схемы пакетов, например proto-файл в случае выбора protobuf).

Это не недостатки

В статье нет ничего о Unity. Зачем притягивать её за уши?

Из притянутого за уши, PlayerTransform - неудачное название, сбивает с толку. В примере это чистые координаты.

Почему же? Статья касается движка, хоть и не погружена в него полностью. Были приведены примеры использования JSON в Unity по умолчанию (файлы manifest.json, packages-lock.json), упомянуто про JsonUtility, который является членом API UnityEngine так же, как и некоторые упомянутые в статье свойства. Установка NuGet и Newtonsoft.Json в статье производится в контексте юнити эдитора

Касательно именования класса соглашусь с вами, внесу небольшие изменения в статью

В статье кратко показывается использование не-Unity библиотеки Newtonsoft.json, а остальное притянуто за уши.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации