Overview
Система плагинов Wudgine позволяет расширять функциональность движка без изменения его основного кода.
Что такое плагины в Wudgine?
Плагины в Wudgine — это модули, которые можно подключать к вашему проекту для добавления новых возможностей или изменения существующего поведения движка. Они позволяют:
- Добавлять новые компоненты и системы
- Расширять функциональность редактора
- Интегрировать сторонние библиотеки и инструменты
- Создавать собственные инструменты для оптимизации рабочего процесса
Преимущества использования плагинов
- Модульность: подключайте только те функции, которые нужны вашему проекту
- Гибкость: настраивайте поведение движка под свои потребности
- Совместимость: обновляйте движок без потери собственных расширений
- Переиспользование: делитесь своими решениями с сообществом
Типы плагинов
В Wudgine существует несколько типов плагинов:
Компонентные плагины
Системные плагины
Плагины редактора
Интеграционные плагины
Архитектура системы плагинов
Система плагинов Wudgine построена на принципах:
- Слабой связанности: плагины взаимодействуют с движком через четко определенные интерфейсы
- Контроля жизненного цикла: каждый плагин имеет определенные этапы инициализации, работы и завершения
- Управления зависимостями: плагины могут зависеть от других плагинов и автоматически загружать их
- Безопасности: система изоляции предотвращает нежелательное влияние плагинов на основной код
graph TD
A[Ядро Wudgine] --> B[Менеджер плагинов]
B --> C[Плагин 1]
B --> D[Плагин 2]
B --> E[Плагин 3]
C --> F[Компоненты]
C --> G[Системы]
D --> H[Инструменты редактора]
E --> I[Интеграции]
Начало работы с плагинами
Для начала работы с плагинами вам потребуется:
- Установить плагин — через менеджер плагинов или вручную
- Активировать плагин — в настройках проекта
- Настроить плагин — если требуется, через его интерфейс настроек
#include "Wudgine/Core/PluginManager.h"
// В вашем коде инициализации
auto& pluginManager = Wudgine::Core::PluginManager::GetInstance();
pluginManager.LoadPlugin("MyAwesomePlugin");
// Проверка успешной загрузки
if (pluginManager.IsPluginLoaded("MyAwesomePlugin")) {
// Плагин успешно загружен
auto* plugin = pluginManager.GetPlugin("MyAwesomePlugin");
plugin->Initialize();
}
{
"project": {
"name": "MyGame",
"plugins": [
{
"name": "MyAwesomePlugin",
"version": "1.0.0",
"enabled": true,
"config": {
"customOption1": true,
"customOption2": "value"
}
}
]
}
}
Что дальше?
В следующих разделах вы узнаете:
- Как создавать собственные плагины
- API плагинов и доступные хуки
- Примеры готовых плагинов
- Как публиковать плагины
Система плагинов Wudgine позволяет вам не только использовать готовые решения, но и создавать собственные инструменты, которые могут быть полезны всему сообществу!