Создаем класс с возможностью сериализации в Unity | OTUS
Прямо сейчас идет открытый вебинар «User Story по шаблону и даже лучше» . Присоединяйтесь!

Создаем класс с возможностью сериализации в Unity

Когда подготовка к сериализации данных закончена, можно создавать соответствующий класс. Давайте создадим новый скрипт, назовем его Game и объявим в нем переменные:

1-1801-c2a76f.png

Как известно, в RPG-играх (в той же Final Fantasy) игроку предлагается выбор класса персонажа. К примеру, это может быть маг, разбойник или рыцарь. В нашем случае важно обратить внимание на строчку [System.Serializable] -- она говорит движку, что данный скрипт можно сериализовать. Неплохо, не правда ли?

Если обратиться к официальной документации, то мы увидим, что Unity может сериализовать несколько типов данных:

  1. Все базовые типы данных (int, string, float и пр.).
  2. Ряд встроенных типов (Vector2/Vector3/Vector4, Color, Rect, Quaternion, Matrix4x4, LayerMask).
  3. Классы, которые унаследованы от UnityEngine.Object (Component, GameObject, MonoBehavior, AnimationClip, Texture2D).
  4. Перечисляемый тип (Enums).
  5. Массивы.
  6. Списки тех типов данных, которые перечислены выше.

unity_kursu_1-1801-c9aacc.jpg

В нашем классе первой объявленной переменной является current. Эта переменная не что иное, как статическая ссылка на экземпляр игры. В тот момент, когда мы станем сохранять либо загружать какие-нибудь данные, нам надо будет обращаться к «текущей» игре. Применение в этом случае статических переменных упростит нашу задачу, то есть вызывать лишние методы не потребуется. Весьма удобно.

Теперь обратите свое внимание на класс под названием Character. Его у нас еще нет — создадим новый скрипт с соответствующим названием:

2-1801-afb5c3.png

Заметили ли вы что-нибудь странное? Да, нам действительно пришлось создать новый класс, а внутри этого класса есть ровно 1 строковая переменная. Конечно же, мы могли задействовать в нашем скрипте Game переменные типа string, а не экземпляры класса Character. Но мы сейчас не ставим задачу написать идеальный код, наша цель -- просто решить задачу по сохранению и загрузке игры с применением сериализации.

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

По материалам статьи "How to Save and Load Your Players' Progress in Unity".

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто