Объединения
Версия 7.4 дарит очередной инструмент — Union. По названию понятно, что речь пойдёт об объединениях. Давайте теперь детальнее расскажу что это и как использовать.
Рекомендую для начала ознакомится со статьями Добавление команд и Методы расширения!
C# позволяет создавать собственные типы данных (классы, структуры, интерфейсы и т.п.). Но их использование может затруднить генератор, так как в собственные типы не умеют перехватывать процедуру автоматической инициализации. Этот класс позволяет это сделать!
Главная идея этого класса — объединить несколько переменных (в том числе разных типов). Хорошим примером может стать объединение переменных типов Checkpoint и Sphere, так как они очень часто используются вместе. А дальше уже написать несколько методов, которые используются чаще всего.
Создание пользовательского типа
Для того, чтобы объединить наши типы, нам нужно создать класс, который наследует Union
:
Переменные hCheckpoint и hSphere пока не инициализированы, так как мы не сможем заранее узнать где наш класс SphereAndCheckpoint будет создан. Поэтому класс Union требует реализации методов OnGlobalAutoInit
и OnLocalAutoInit
(они абстрактные). Реализуем абстрактный класс:
Из названий этих методов понятно, что они вызываются тогда, когда объект нашего типа будет иметь локальный или глобальный контекст (будет глобальным, если применить модификатор static
). Нам останется только инициализировать поля нашего класса в этих методах:
Наш класс успешно создан! Давайте добавим ещё 2 метода, чтобы было не так скучно:
Теперь лучше. Как же это "чудо использовать"? А вот вам примерчик:
Теперь переменная localSphereAndCheckpoint не требует инициализации (new SphereAndCheckpoint()
), а методы работают одновременно со сферой и маркером! Вот результат:
Лучше всего делать объединения переменных, которые изначально требуют инициализации.
Last updated