Море Голова

Автор:YMC_MHZПоследнее обновление:06/08/2025 08:42:5310.4M2.1MB

R.E.P.O. Море Голова-1-lagofast mod master

Введение в мод

настраиваемая косметика. Простой и веселый декоративный модуль, обеспечивающий unitypackage для игроков, чтобы импортировать модели самостоятельно.

все модели были созданы кошкой Юрия Калипсо специально для этого мода: 3
Все модели созданыКошка Юрия КалипсоСделано для этого модуля: 3

Introduction Краткое описание

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

Простой и веселый декоративный модуль, обеспечивающий Единственный пакет, для игроков импортировать пользовательские модели.
В настоящее время есть лишь небольшое количество декоров, которые будут постоянно обновляться в будущем.
Необходимо установить Ник Мао Меню Передний модуль.
Если у вас возникли проблемы с потерей силы, скачайте крепленная прочность Модуль.


* куриный клюв на скриншоте взят из Эвен Морхед.

Как использовать Как использовать

  1. Установите этот мод и войдите в игру.
  2. вы можете найти Кнопка "MoreHead" в левом нижнем углу Либо в вестибюле Или после выхода на уровень (нажмите ).
  3. Нажмите кнопку, чтобы переключить косметику.

  1. Установка данного модуля, входит в игру.
  2. на этапе подготовки залаПосле официального входа в уровень нажмите электрическое регулирование, можно найти в левом нижнем углу Кнопка "MoreHead"
  3. Нажмите кнопку, чтобы переключить косметику








⚠ ️ уведомление о совместимости Описание совместимости ⚠ ️

Нажмите, чтобы увидеть Нажмите, чтобы развернуть

с Обновлено до 2.1.3, Море Голова должен быть обновлен до 1.3.0 или позже, чтобы нормально функционировать.

⚠ ️ Если вы все еще используете Морхед 1.2.8 или раньше, пожалуйста, сохраните Менулиб В: 2.1.1 или раньше, чтобы избежать проблем совместимости.

Для лучшего опыта и стабильности мы рекомендуем всегда использовать последнюю версию.


Обновлено до 2.1.3, соответственно Море Голова Необходимо обновить до 1.3.0 или выше для нормальной работы.

⚠ ️ Если вы все еще используете Морхед 1.2.8 или более ранней версии, убедитесь, что Менулиб остается 2.1.1 или более ранней версии, иначе могут возникнуть проблемы с совместимостью.

Для обеспечения наилучшего опыта и стабильности рекомендуется всегда использовать последнюю версию.


Previous: предыдущая версия

1.2.8+
1.0.3 1.1.8+ Требуется.

Менулиб 2.0.0 → Требуется Море Голова 1.2.8+
Менулиб 1.0.3 → Требуется Море Голова 1.1.8+ Версия.



варианты конфигурации Параметры настройки

Нажмите, чтобы увидеть Нажмите, чтобы развернуть

Английский язык

Morehead предоставляет несколько вариантов конфигурации, которые можно изменить в файле конфигурации bepinex (BepInEx/config/Mhz.REPOMoreHead.cfg):

Настройки пользовательского пользователя

вариант
EscButtonPosX X положение кнопки мореголова в меню esc 0
EscButtonPosY Y положение кнопки головки в меню esc 0
лобби кнопка позх X положение кнопки головки в вестибюле 0
Кнопка лобби Y положение кнопки головки в вестибюле 0

настройка этих значений позволяет переположить кнопки с большими головами, если они противоречат другим элементам mod ui.

режим черного списка

вариант описание по умолчанию
режим черного списка установить значение "ENABLE_BLACKLIST", чтобы включить функцию черного списка "" (отключено)

при включении режима черного списка:

  • Переключение + щелчок на кнопках украшения для добавления/удаления элементов из черного списка
  • Использование переключение + очистка всех очистить весь черный список сразу
  • ⚠ ️ все изменения черного списка вступают в силу после перезагрузки игры

Украшения в черном списке не отображаются в вашем меню украшения, что полезно для сокрытия предметов, которые вы не хотите использовать.

💡 Рекомендуется, чтобы один игрок управлял черным списком и делился им через мод-код или BepInEx/config/MoreHeadBlacklist.json Файл для обеспечения синхронизации внешнего вида в мультиплеере.
💡 Перед обменом обязательно отключите режим черного списка (очистите значение конфигурации), чтобы предотвратить непреднамеренные изменения со стороны других игроков.

каротаж каротажа

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

включите эту опцию, чтобы увидеть более подробные журналы о процессе загрузки модели, что полезно для устранения неполадок.

местоположение файлов

файл файла путь пути описание
подробнее headconfig.json основной файл конфигурации, хранящий состояние декорации
Foreheadoutfits.json [Unity.persistentDataPath]/REPOModData/MoreHead/ хранить до 5 комплектов комплектаций одежды
Mhz.REPOMoreHead.cfg Файл конфигурации bepinex с позиционированием UI и другими настройками
Foreheadblacklist.json BepInEx/конфигурация/ файл черного списка для сокрытия нежелательных украшений
украшения (файлы. hhh) BepInEx/плагины/ Или
BepInEx/плагины/морхед/декорации/
модели отделки на заказ

примечание, примечание: [Unity.persistentDataPath] обычно решается:

  • Окна: C: /Users/[YourName]/AppData/LocalLow/semiwork/Repo/
  • Linux: ~/.config/unity3d/semiwork/Repo/
  • МАК: ~/библиотека/поддержка приложений/полуработка/репо/

описание файла

  • подробнее headconfig.json: Храните состояние включенного/отключенного каждого украшения (режим одиночного наряда-для обратной совместимости)
  • Foreheadoutfits.json: хранит до 5 различных конфигураций отделки, которые вы можете переключать с помощью UI или функциональных клавиш f1-f5.
  • Mhz.REPOMoreHead.cfg: содержит настройки положения кнопок UI, переключения режима черного списка и параметров журнала.
  • Foreheadblacklist.json: содержит список имен декораций, которые должны быть скрыты из меню UI (требует включения режима черного списка)
  • декорация. файлы hhh: пакет активов, содержащий 3D-модель для украшения, может быть размещен в любом месте

Китайский язык

MoreHead предлагает несколько вариантов конфигурации, которые можно изменить в файле конфигурации BepInEx (BepInEx/config/Mhz.REPOMoreHead.cfg):

Настройки пользовательского пользователя

варианты описание Значение по умолчанию
EscButtonPosX Координаты X кнопки MoreHead в меню ESC 0
EscButtonPosY Координаты Y кнопки MoreHead в меню ESC 0
лобби кнопка позх Координаты X кнопки MoreHead в зале 0
Кнопка лобби Координаты Y кнопки MoreHead в зале 0

Настройка этих значений может переместить кнопку MoreHead, чтобы избежать конфликтов с элементами пользовательского интерфейса других модулей.

Режим черного списка

варианты описание Значение по умолчанию
режим черного списка Установите значение «ENABLE_BLACKLIST», чтобы включить черный список "" (отключено)

После включения режима черного списка:

  • сдвиг сдвига + Нажмите Косметическая кнопка для добавления/удаления элементов из черного списка
  • Использование переключение + очистка всех Возможность очистки всех записей черного списка за один раз
  • ⚠ ️ Все операции, связанные с черным списком, вступят в силу только после перезапуска игры

Косметика, попавшая в черный список, не появится в вашем декоративном меню, что полезно для того, чтобы скрыть предметы, которые вы не хотите использовать.

💡 Рекомендуется, чтобы один игрок ведет черный список, поделившись кодом мода или отправляя его напрямую BepInEx/config/MoreHeadBlacklist.json Файл для обеспечения синхронизации внешнего вида во время многопользовательских игр.
💡 Обязательно выключите режим черного списка (опустошите строку элемента конфигурации) перед обменом, чтобы избежать несинхронизации данных из-за случайного прикосновения других игроков.

ведение журнала

варианты описание Значение по умолчанию
активировать левербоселогирование Включить подробный журнал загрузки модели фальшивый

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

Расположение файла

Документ Путь описание
подробнее headconfig.json Главный профиль, хранящий состояние декорации
Foreheadoutfits.json [Unity.persistentDataPath]/REPOModData/MoreHead/ Хранение до 5 комплектов оборудования
Mhz.REPOMoreHead.cfg Профиль конфигурации BepInEx с позиционированием пользовательского интерфейса и другими настройками
Foreheadblacklist.json BepInEx/конфигурация/ Черный список файлов для скрытия нежелательных украшений
Декоративный файл (. hhh файл) BepInEx/плагины/
BepInEx/плагины/морхед/декорации/
Индивидуальная модель декорации

Внимание: [Unity.persistentDataPath] Обычно соответствует:

  • Окна: C:/Users/[Ваше имя пользователя]/AppData/LocalLow/semiwork/Repo/
  • Linux: ~/.config/unity3d/semiwork/Repo/
  • МАК: ~/библиотека/поддержка приложений/полуработка/репо/

Описание документа

  • подробнее headconfig.json: сохраняет включено/отключенное состояние каждого украшения (режим однокомплектованного оборудования-для обратной совместимости)
  • Foreheadoutfits.json: Хранение до 5 различных конфигураций отделки, которые можно переключать через пользовательский интерфейс или функциональные клавиши F1-F5
  • Mhz.REPOMoreHead.cfg: содержит настройки для положения кнопок пользовательского пользователя, переключателей режима черного списка и параметров журнала
  • Foreheadblacklist.json: содержит список имен декораций, которые должны быть скрыты в меню пользовательского интерфейса (необходимо включить режим черного списка)
  • Украшение. hhh файла: Asset Bundle, содержащий декоративную 3D-модель, которая может быть размещена в любом месте



как добавить модели Как добавить модель

Нажмите, чтобы увидеть Нажмите, чтобы развернуть

уроки по английскому языку

  1. установить единство (Рекомендуется 2022.3*, в игре используется встроенный рендер-конвейер, обратите внимание на соответствующие материалы модели), импорт MoreHead-Asset-Pack_v1.3.unitypackage.

    📥 скачать unitypackage

  2. импортируйте свою модель и перетащить Аватар игрока Сборная фабрика на место происшествия.

    убедитесь, что ваша модель совместима с единством и правильно настроена, если она анимирована.

  3. Найдите следующие части В. Аватар игрока, где будут размещены модели:

    имя имя описание маркировка
    украшение головы (не двигайтесь) часть головы, которая поднимается при разговоре Голова головы
    Украшение шеи (не двигайтесь) область подбородка/груди шея, шея
    отделка кузова (не двигайтесь) Тело тела Тело тела
    украшение бедра (не двигайтесь) область бедра/нижней части тела бедро бедро
    L-образная украшение руки (не двигаясь) левая рука Левая рука
    Оформление r-руки (не двигаясь) правая рука правая сторона
    L-образная украшение для ног (не двигаясь) левая нога левая нога
    Оформление ног r-образной формы (не двигается) правая нога правая нога
    украшение мира (не двигайтесь) следует положению символов, но сохраняет горизонтальную ориентацию

    ⚠ ️ эти позиции являются якорными ссылками. не изменяйте координаты, иначе ваша модель будет неправильно выровнена внутри игры.
    💡 Этот мировой мир тег полезен для украшений, которые должны поддерживать горизонтальную ориентацию независимо от движения персонажа.
    💡 теги, связанные с конечностями (левый, правый, левый, правый) можно просмотреть вместе в игре под главным тегом «конечности».

  4. создайте пустой объект под целевой частью (называемый a) и назвите его.

    это имя будет отображаться в игре как имя вашего украшения.

  5. Поместите свою модель внутрь и настроите ее в подходящее положение.

  6. Перетащите a к Проект проекта окно для создания сборной фабрики.

    ⚠ ️ Примечание. Пожалуйста, избегайте добавления компонентов коллайдера в модели декорации, поскольку они могут повлиять на физику персонажей, вызвать проблемы с вращением или нестабильные движения. для столкновений рассмотрите альтернативные методы.

  7. бегать, бежать инструменты → строитель украшений головыПеретащите свой сборный фабрик (или более, поддерживается пакетный экспорт) в панель сценариев и выберите соответствующую часть на шаге 3, затем Нажмите на добавить модель в список.

    Обязательно выберите правильную часть тела (голова/шею/тело/бедра и т. д.), соответствующую месту, где вы разместили украшение.

  8. Нажмите на построить все пакеты активовзатем найдите [ваше имя украшения]. ххх файл в пакеты активов Папка.

    только . ххх файл необходим для установки. другие сгенерированные файлы можно игнорировать.

  9. переместить файл в BepInEx\ плагины (игра будет загружать все файлы. hhh в папке с плагинами. Если вы не уверены, куда его положить, вы можете его положить \MoreHead\украшения для лучшей организации).

    ⚠ ️ для многопользовательской видимости: у вас и ваших друзей должно быть то же самое. Файл установлен, чтобы увидеть правильные декорации.
    ⚠ ️ не упаковывайте MoreHead.dll файл в ваш мод, только . ххх файл и этот мод необходимы, чтобы насладиться украшением.

  10. запустите игру и наслаждайтесь!

    Нажмите esc в игре и найдите «больше головы» слева ниже, чтобы получить доступ к вашему новому украшению.

Учебник по китайскому языку

  1. Развертывание Unity(Рекомендуемая версия 2022.3*, в игре используется встроенный рендеринговый трубопровод, обратите внимание на соответствующий материал модели), импорт MoreHead-Asset-Pack_v1.3.unitypackage

    📥 Скачать unitypackage

  2. Импортируйте модель и Перетаскивание сборных элементов в сцену

    Убедитесь, что ваша модель совместима с Unity, если есть анимация, которая требует правильной привязки костей.

  3. Найти Аватар игрока Следующие части, соответствующие положению, где будет размещена модель

    Наименование описание маркировка
    украшение головы (не двигайтесь) Голова, поднимающаяся при разговоре Голова головы
    Украшение шеи (не двигайтесь) Подбородок/грудь шея, шея
    отделка кузова (не двигайтесь) тело Тело тела
    украшение бедра (не двигайтесь) Ягодица/нижняя часть тела бедро, бедро
    L-образная украшение руки (не двигайтесь) левая рука Левая рука
    Оформление r-руки (не двигается) правая рука правая сторона
    L-образная украшение для ног (не двигаясь) левая нога левая нога
    Оформление ног r-образной формы (не двигается) правая нога правая нога
    украшение мира (не двигайтесь) Движение в соответствии с положением персонажа, но сохранение горизонтальной ориентации

    ⚠ ️ Эти позиции являются координатными анкерными точками. Не изменяйте координаты, иначе ваша модель будет смещена в игре.
    💡 мировой мир Теги подходят для украшений, которые должны поддерживать горизонтальную ориентацию, независимо от того, как перемещается персонаж.
    💡 Теги, связанные с конечностями (leftarm, rightarm, leftleg, rightleg) могут быть единообразно просмотрены в игре через главный тег «LIMBS».

  4. Создайте пустой объект (называемый A) под целевой частью и назовите его

    Это имя будет отображаться в игре как имя вашего украшения.

  5. Поместите модель в A и отрегулируйте ее в нужное положение

  6. Перетащите A кПроект проектаокна, создание сборных

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

  7. эксплуатацияинструменты → строитель украшений головы, перетащите сборку А (или больше, поддерживается пакетный экспорт) и выберите соответствующую часть на шаге 3, затемдобавить модель в список

    Убедитесь, что выбрать правильную часть тела (голова/шея/тело/бедра и т.д.), которая соответствует месту, где вы размещаете украшение.

  8. нажмитепостроить все пакеты активов, а затем впакеты активовНайдено в папке[название твоего украшения]. хххДокументы.

    Во время установки нужно толькоФайлы, другие сгенерированные файлы могут быть игнорированы.

  9. Перемещение файла вBepInEx\ плагины(Запуск игры загружает все файлы. hhh под plugins. Если вы не знаете, куда их положить, вы можете положить\MoreHead\украшениялегко управлять).

    ⚠ ️ Многопользовательская видимость: вы и ваши друзья должны установить одинаковые. хххДокументы, чтобы увидеть друг друга правильное украшение.
    ⚠ ️ не упаковывайтеMoreHead.dllфайлы в ваш Mod, просто. хххВы можете играть с аксессуарами с файлами и модом.

  10. Запустите игру и наслаждайтесь украшением!

    Нажмите ESC в игре и найдите «MoreHead» в левом нижнем углу, чтобы получить доступ к вашему новому украшению.



Developer API & Extension API и расширения для разработчиков

Нажмите, чтобы увидеть Нажмите, чтобы развернуть

английская документация


Начиная с версии 1.2.4, morehead предоставляет публичный apis для расширения. эти интерфейсы позволяют разработчикам программно загружать ресурсы asetbundle, вводить пользовательские сценарии и улучшать функции декорации.

общественная апис

Следующие общие интерфейсы доступны в менеджер отделки головы Класс:

методический метод описание
Loadeexternalasetbundlesfromassembly (сборка и сборка) загружает все . ххх ресурсы, встроенные в указанную сборку
воссоздать () обновляет интерфейс для отображения вновь загруженных украшений
Getdecorationsfrom assembly (Assembly assembly) возвращает список всех украшений, загруженных из указанной сборки
Getdecorationgameobjectsfrom assembly (Assembly assembly) возвращает список сборников игровых объектов, загруженных из указанной сборки
GetDecorationByName(сборка сборки, имя декорации строки) находит определенную украшение по названию из указанной сборки
FindDecorationsByPartialName(сборка сборки, строка partialname) поиск украшений, содержащих указанное частичное название

методы интеграции

Существует два основных способа использовать API morehead для расширенной функциональности:

1. Встраивание пакетов активов в качестве ресурсов

Вы можете встроить свой пакет активов () файлы непосредственно в вашу DLL в виде встроенных ресурсов:

  1. создайте пакеты активов в соответствии со стандартными процедурами, изложенными в разделе «Как добавить модели».
  2. в визуальной студии (или вашем предпочтительном IDE):
    • Добавить файлы в ваш проект
    • установите свое «действие сборки» на «встроенный ресурс»
  3. в коде инициализации вашего плагина:
    //загрузите все встроенные ресурсы. hhh из вашей сборки assembly assembly assembly=Assembly.GetExecutingAssembly (); Morehead.headdecorationmanager.loadeexternalassetbundlesfromassembly(assembly); MoreHead.HeadDecorationManager.RecreateUI ();
    

Примечание:: Встраивание ресурсов в вашу DLL не является обязательным. вы также можете использовать стандартные методы morehead для загрузки локальных . ххх файлов и просто используйте свою dll для ввода сценариев и реализации функций.


2. Инъекция программного сценария

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

  1. используйте предоставленный API для доступа к отделочным сборным изделиям
  2. добавьте пользовательские компоненты/сценарии для улучшения функциональности
  3. внедрить свою собственную логику для декоративного поведения

пример реализации

использование бепинекса; использование bepinex.logging; использование system.reflection; использование единичного двигателя; использование system.collections.generic; пространство имен mycustomdecorations {[BepInPlugin("com.yourname.customdecorations "," customs decorations mod","1.0.0 ")] [bepindependenty("Mhz.REPOMoreHead",bepindependenty.depencyflags.harddependency)] публичный класс customdecorationsplugin: BaseUnityPlugin {public static CustomDecorationsPlugin Instance {get; private set;} private manuallogsource_Logger; private const string TARGET_MODEL_NAME="Cigar";// имя целевой модели private void awake () {Instance = this; _Logger = Logger; _logger.LogInfo("загружен мод пользовательских украшений "); //загрузка украшения и настройка обработчиков loaddecorations (); } private void LoadDecorations () {try {//Get current assembly assembly assembly = assembly.GetExecutingAssembly ();//загрузить все ресурсы. hhh из текущего dll morehead.headdecorationmanager.loadexternalassetbundlesfromassembly (assembly);//Recreate ui для отображения новых загруженных моделей morehead.headdecorationmanager.recreateui ();//найти конкретные модели, соответствующие списку целевых имен<MoreHead.DecorationInfo>targetDecorations = MoreHead.HeadDecorationManager.FindDecorationsByPartialName(assembly, TARGET_MODEL_NAME); if(targetDecorations.Count > 0) {_logger.LogInfo($"Found {targetDecorations.Count} модели, соответствующие '{TARGET_MODEL_NAME}' ");//добавить компонент к каждой найденной целевой модели foreach(var decoration in targetDecorations) {if(decoration.Prefab! = null<SpaceKeyHandler>() ==null) {_logger.LogInfo($"добавление spacekeyhandler в {decoration.DisplayName} "); decoration.Prefab.AddComponent<SpaceKeyHandler>(); }}}} catch (System.Exception ex) {_logger.LogError($"ошибки обработки декораций: {ex.Message} "); }}//класс для обработки поведения декорации публичный класс spacekeyhandler: MonoBehaviour {private void Awake () {//log, когда компонент инициализирован на экземпляре._logger.loginfo($"spacekeyhandler инициализирован на {gameObject.name}");} private void Update () {// проверьте пробел нажмите непосредственно в компоненте if (Input.GetKeyDown(KeyCode.Space)) {// просто записывайте сообщение при запуске экземпляра._logger.loginfo($"пробел нажмите при декорации: {gameObject.name} ");}}}}}}

⚠ ️ важные заметки

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

почему это происходит?

потому что в виде от первого лица игра устанавливает локальный персонаж [буровая установка] объект игры к неактивный (SetActive (ложный)).

  • является родительским объектом, содержащим модель символов, и Под этой иерархией также установлены украшения с большими головами.
  • Когда инвалид, согласно механикам объединения, все компоненты дочерних объектов не будут иметь их Обновление обновления, исправленное обновление и другие методы жизненного цикла называемый.
  • Индивидуальные модели украшения также размещены под [буровая установка] иерархии, поэтому, когда вы напрямую прикрепляете сценарии к модели, как только вы входите в представление от первого лица, эти сценарии не может выполняться нормально потому что родительский объект отключен.
  • однако в игре интерфейс менюМодель персонажа всегда остается активное положениетак что скрипты, прикрепленные к декорации, могут работать нормально, так как unity выполняет только методы компонентов на активных игровых объектах.

Это разница в состояниях активации является ключевым моментом, объясняющим, почему один и тот же сценарий ведет себя по-разному в разных сценариях.

важные примечания о многопользовательской синхронизации

хотя в виде от первого лица вы не можете видеть свою собственную модель украшения (потому что локальная [буровая установка] отключена) игра все равно синхронизирует ваше состояние через сетьЭто означает, что пока ты правильно обрабатывать логику многопользовательской синхронизацииДругие игроки все еще могут видеть изменения и действия вашей модели украшения.

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

моменты, которые следует учитывать при реализации логики поведения модели:

  1. стратегия монтажа сценария -рассмотреть возможность использования глобальных менеджеров или систем событий в качестве альтернативы
  2. различия между персонажем сцены и персонажем меню -некоторые скрипты могут работать только в определенных контекстах
  3. проблема с многопользовательской синхронизацией -обеспечить последовательное поведение между сетевыми клиентами
  4. состояние активации компонента -компоненты на отключенных игровых объектах не выполняют методы update/fixedupdate
  5. управление ресурсами -правильно инициализировать и очистить ресурсы, чтобы избежать утечек памяти
  6. сетевой авторитет -учитывать, какие операции следует выполнять локально и какие требуют синхронизации сети

Документы на китайском языке


Начиная с версии 1.2.4, MoreHead предоставляет публичный интерфейс API для расширения функциональности. Эти интерфейсы позволяют разработчикам программно загружать ресурсы AssetBundle, вводить пользовательские сценарии и улучшать функциональность декораций.

Публичный интерфейс API

Следующиеменеджер отделки головыПубличные интерфейсы, доступные в классе:

методология Описание
Loadexternalasetbundlesfromassembly (сборка и сборка) Загрузить все встроенные в указанную сборку. хххРесурсы
воссоздать () Обновить пользовательский интерфейс для отображения недавно загруженного украшения
Getdecorationsfrom assembly (Assembly assembly) Возвращает список всех украшений, загруженных из указанной сборки
Getdecorationgameobjectsfrom assembly (Assembly assembly) Возвращает список всех предварительных предметов GameObject, загруженных из указанной сборки
GetDecorationByName(сборка сборки, имя декорации строки) Найти определенные украшения в указанной сборке по имени
FindDecorationsByPartialName(сборка сборки, строка partialname) Поиск украшений, содержащих название указанной части

Интегрированный подход

Существует два основных способа использования API MoreHead для расширения функций:

1. Встраивайте AssetBundle как ресурс

Вы можете поместить AssetBundle (. ххх) файл встраивается непосредственно в DLL как встроенный ресурс:

  1. Создайте AssetBundle в соответствии со стандартным процессом в разделе «Как добавить модель»
  2. В Visual Studio (или IDE вашего выбора):
    • Добавить файл в свой проект
    • Установите их «операцию сборки» на «встроенный ресурс»
  3. В вашем коде инициализации плагина:
    //Загрузите все встроенные ресурсы. hhh из вашей сборки Assembly assembly = Assembly.GetExecutingAssembly (); Morehead.headdecorationmanager.loadeexternalassetbundlesfromassembly(assembly); MoreHead.HeadDecorationManager.RecreateUI ();
    

Внимание: Встраивание ресурсов в DLL не является обязательной операцией. Вы также можете использовать стандартные методы MoreHead для загрузки локальных. хххФайл, используйте только вашу DLL для введения скриптов и реализации функций.


2. Программная инъекция скрипта

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

  1. Доступ к декоративным сборкам с помощью предоставленного API
  2. Добавление пользовательских компонентов/скриптов для улучшения функциональности
  3. Реализуйте свою собственную логику поведения декораций

ПРИМЕРЫ

использование бепинекса; использование bepinex.logging; использование system.reflection; использование единичного двигателя; использование system.collections.generic; пространство имен mycustomdecorations {[BepInPlugin("com.yourname.customdecorations "," 自定义装<s> пространство имен "," 1.0.0 ") ] [bepindependenty("Mhz.REPOMoreHead",bepindependenty.dependentyflags.harddependency)] публичный класс customdecorationsplugin: BaseUnityPlugin {public static CustomDecorationsPlugin Instance {get; private set;} private manuallogsource_logger; private const string TARGET_MODEL_NAME = "Cigar雪<s>]; //Имя целевой модели private void Awake () {Instance = this; _Logger = Logger; _logger.LogInfo("Custom Decoration MOD is loaded ");//Загрузить декор и установить скрипт обработки LoadDecorations ();} private void LoadDecorations () {try {//Получить текущую сборку assembly assembly = assembly.GetExecutingAssembly ();//Загрузить все ресурсы. hhh в текущей DLL MoreHead.HeadDecorationManager.LoadExternalAssetBundlesFromAssembly(assembly); //восстановить пользовательский интерфейс для отображения вновь загруженной модели MoreHead.HeadDecorationManager.RecreateUI (); //Найти определенный список моделей, соответствующий имени цели<MoreHead.DecorationInfo>targetDecorations = MoreHead.HeadDecorationManager.FindDecorationsByPartialName(assembly, TARGET_MODEL_NAME); if (targetDecorations.Count > 0) {_logger.LogInfo($"{targetDecorations.Count} '{TARGET_MODEL_NAME}' ");//foreach (var decoration in targetDecorations) {if (decoration.Prefab! = null & decoration.Prefab.GetComponent<SpaceKeyHandler>() ==null) {_logger.LogInfo($"{decoration.DisplayName}添加 SpaceKeyHandler "); decoration.Prefab.AddComponent<SpaceKeyHandler>(); }}}} catch(System.Exception ex){_logger.LogError($"Ошибка при обработке декорации: {ex.Message}");}}//Класс для обработки поведения декорации public class SpaceKeyHandler: MonoBehaviour {// Запись журнала при инициализации компонента Instance._logger.LogInfo ($"SpaceKeyHandler инициализирован на {gameObject.name});} private void Update () {// Нажатие пробела прямо в компоненте if(Input.GetKeyDown (KeyCode.Space)) {// Простое запись сообщения при запуске Instance._logger.LogInfo ($"Нажатие пробела на декорации: {gameObject.name}");}}}}

⚠ ️ ВАЖНЫЕ НОМЕТЫ

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

Почему так происходит?

Потому что игра вПерспектива от первого лицаМестные персонажи будутИгровой объект установлен внеактивное состояниеSetActive (ложный))。

  • [буровая установка]Является родительским объектом, содержащим модель роли,Декоративная модель MoreHead также монтирована под этой иерархией
  • при отключении, согласно механизму работы Unity, под которымКомпоненты всех дочерних объектовОбновление обновленияисправленное обновлениеПодход к равному жизненному циклуне будет вызвано
  • Пользовательские декоративные модели также размещаются в[буровая установка]ниже иерархии, поэтому, когда вы монтируете сценарии непосредственно на модель, как только вы войдете в перспективу от первого лица, эти сценарии будут отключены, потому что родительский объект отключенНе исполняется нормально
  • И в игреИнтерфейс менюВ, модель роли всегда остаетсяАктивное состояние, скрипт, монтированный на украшение, работает нормально, потому что Unity будет выполнять только методы компонента на игровом объекте активированного состояния.

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

Важные примечания о многопользовательской синхронизации

Хотя в первом лицеВы не видите свою декоративную модель(потому что локальный [RIG] отключен), но игра все равно будет вСинхронизация вашего статуса в сети。 Это значит, что до тех пор, пока выПравильная обработка логики многопользовательской синхронизации, остальные игроки по-прежнему смогут увидеть изменения и действия вашей декорированной модели.

Таким образом, даже если локальный скрипт не выполняется из-за отключения [RIG], вы все равно можете пройти черезГлобальный менеджер или механизм синхронизацииДля достижения интерактивного эффекта, чтобыВсе игроки могут увидетьИзменения, которые произошли в вашей модели декорации. Это создаетИнтерактивное украшениеПредлагается возможность.

При реализации логики поведения модели необходимо обратить внимание на следующие моменты:

  1. Политика монтажа скрипта -рассмотреть альтернативные методы, такие как использование глобальных менеджеров или систем событий
  2. Разница между персонажами сцены и персонажами меню -Некоторые скрипты могут работать только в определенном контексте
  3. Проблемы многопользовательской синхронизации -Обеспечение последовательного поведения между сетевыми клиентами
  4. Состояние активации компонента -компоненты на отключенных игровых объектах не выполняют методы Update/FixedUpdate
  5. Управление ресурсами -Правильная инициализация и очистка ресурсов, чтобы избежать утечки памяти
  6. Сетевые права -Подумайте, какие действия следует выполнять локально, а какие требуют сетевой синхронизации



планы будущих обновлений Программа будущего обновления

  • больше шляп

  • скриншоты украшений для оказания помощи в выборе (не гарантировано)

  • Больше шапок

  • Предоставить скриншоты для декораций для удобного выбора (Не гарантируется)



авторская информация Информация об авторе

Мозаика Мозаика:
Юрискат Калипсо Кошка Юрия Калипсо:Билибили

для вопросов и предложений отправьте вопросы:
Если у вас есть вопросы и предложения, пожалуйста, отправьте вопросы:Проблемы с github

Хотите поддержать нас кофе и желтыми энергетическими кристаллами?
Хотите угостить нас кофе и купить желтые энергетические кристаллы?
пожертвовать на ko-fi

шепотом, мы делаем инди-игру!
Прошепотом, мы делаем инди-игры!

Этот инструмент предоставлен сторонним разработчиком [bufftool]Внимание (Нормальное)

Загрузите моды сейчас

Установите LagoFast, запустите R.E.P.O. и играйте с модами, которые вам нравятся.