Технология патчей в BepInEx позволяет вносить изменения в игровые методы, классы и даже целые сборки без затрагивания оригинальных файлов игры. 4
Процесс работы механизма патчей в BepInEx включает следующие шаги: 1
- Проверка всех файлов .dll в папке BepInEx/patchers на наличие плагинов-патчей. 1 Те, которые содержат такие плагины, загружаются как сборки. 1
- Создание экземпляра каждого обнаруженного плагина-патча (вызов конструктора). 1
- Вызов функции Initialize() для всех плагинов-патчей. 1
- Выполнение каждого метода патчей внутри каждого плагина-патча по отношению к целевому типу или сборке. 1 Любые необработанные исключения записываются в журнал. 1
- Вызов функции Finalizer() для всех плагинов-патчей. 1
- Выгрузка механизмом патчей всех загруженных объектов AssemblyDefinition и TypeDefinition. 1
Для кода, который нужно выполнить один раз, используется метод Initialize(), а для кода, который должен выполнить последний раз, — Finalizer(). 1
BepInEx — универсальный загрузчик плагинов для Unity, который позволяет выполнять редактирование сборок .DLL без необходимости вносить изменения на диск. 2