Сериализация классов и структур в Unity

Сериализация представляет собой процесс автоматического преобразования структур данных либо состояний объекта в иной формат. Когда используем этот термин относительно Unity, мы подразумеваем упрощение хранения данных и их реконструкцию. Это один из приемов повышения продуктивности разработки.

Итак, структуру и класс мы можем пометить как сериализуемые. Для этого потребуется указать [Serializable] над именем. Вот как это выглядит в примере из официальной документации Unity:

В чем вообще плюс этого подхода? На самом деле, преимущество в том, что предоставляется прямой доступ к соответствующим свойствам посредством инспектора, что, в свою очередь, весьма удобно в случае применения массивов и списков.

Ниже -- перечень характеристик игрока в инспекторе свойств движка Unity:

Вне зависимости от того, каким именно будет ваш проект, в нем наверняка будут повторяющиеся структуры: к примеру, предметы, задания и даже диалоги — реализовать их можно в виде сериализованных структур либо классов, а это даст возможность легко поменять перечень их значений в инспекторе.

То же самое вы сможете сделать и для перечислений (их применение повысит безопасность типов), а также и для более сложных конструкций — к примеру, тех же спрайтов. Оба случая продемонстрированы на примере ниже.

Перечень характеристик игрока с перечислениями и спрайтами в инспекторе Unity:

Таким образом, если применять перечисление в сериализованной структуре, то вы получите его идентификаторы в инспекторе Unity в удобном выпадающем списке, что не может не радовать, ведь больше не потребуется запоминать строки.

По материалам статьи "Four Techniques for Faster Unity 3D Development".