
Автор:YMC_MHZПоследнее обновление:06/08/2025 08:42:5310.4M2.1MB
все модели были созданы кошкой Юрия Калипсо специально для этого мода: 3
Все модели созданыКошка Юрия КалипсоСделано для этого модуля: 3

простой и веселый мод украшения, который обеспечивает для игроков импортировать пользовательские модели.
в настоящее время доступно только несколько украшений, но планируется дополнительное обновление.
Ник Мао Меню мод необходим в качестве предварительного условия.
Если вы сталкиваетесь с проблемами с потерей силы, скачайте крепленная прочность Режим.
Простой и веселый декоративный модуль, обеспечивающий Единственный пакет, для игроков импортировать пользовательские модели.
В настоящее время есть лишь небольшое количество декоров, которые будут постоянно обновляться в будущем.
Необходимо установить Ник Мао Меню Передний модуль.
Если у вас возникли проблемы с потерей силы, скачайте крепленная прочность Модуль.
* куриный клюв на скриншоте взят из Эвен Морхед.
).электрическое регулирование, можно найти в левом нижнем углу Кнопка "MoreHead"。


с Обновлено до 2.1.3, Море Голова должен быть обновлен до 1.3.0 или позже, чтобы нормально функционировать.
⚠ ️ Если вы все еще используете
Морхед 1.2.8или раньше, пожалуйста, сохранитеМенулибВ:2.1.1или раньше, чтобы избежать проблем совместимости.
Для лучшего опыта и стабильности мы рекомендуем всегда использовать последнюю версию.
Обновлено до 2.1.3, соответственно Море Голова Необходимо обновить до 1.3.0 или выше для нормальной работы.
⚠ ️ Если вы все еще используете
Морхед 1.2.8или более ранней версии, убедитесь, чтоМенулибостается2.1.1или более ранней версии, иначе могут возникнуть проблемы с совместимостью.
Для обеспечения наилучшего опыта и стабильности рекомендуется всегда использовать последнюю версию.
→ 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/~/.config/unity3d/semiwork/Repo/~/библиотека/поддержка приложений/полуработка/репо/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/~/.config/unity3d/semiwork/Repo/~/библиотека/поддержка приложений/полуработка/репо/установить единство (Рекомендуется 2022.3*, в игре используется встроенный рендер-конвейер, обратите внимание на соответствующие материалы модели), импорт MoreHead-Asset-Pack_v1.3.unitypackage.
импортируйте свою модель и перетащить Аватар игрока Сборная фабрика на место происшествия.
убедитесь, что ваша модель совместима с единством и правильно настроена, если она анимирована.
Найдите следующие части В. Аватар игрока, где будут размещены модели:
| имя имя | описание | маркировка |
|---|---|---|
| украшение головы (не двигайтесь) | часть головы, которая поднимается при разговоре | Голова головы |
| Украшение шеи (не двигайтесь) | область подбородка/груди | шея, шея |
| отделка кузова (не двигайтесь) | Тело тела | Тело тела |
| украшение бедра (не двигайтесь) | область бедра/нижней части тела | бедро бедро |
| L-образная украшение руки (не двигаясь) | левая рука | Левая рука |
| Оформление r-руки (не двигаясь) | правая рука | правая сторона |
| L-образная украшение для ног (не двигаясь) | левая нога | левая нога |
| Оформление ног r-образной формы (не двигается) | правая нога | правая нога |
| украшение мира (не двигайтесь) | следует положению символов, но сохраняет горизонтальную ориентацию | |
⚠ ️ эти позиции являются якорными ссылками. не изменяйте координаты, иначе ваша модель будет неправильно выровнена внутри игры.
💡 Этотмировой миртег полезен для украшений, которые должны поддерживать горизонтальную ориентацию независимо от движения персонажа.
💡 теги, связанные с конечностями (левый, правый, левый, правый) можно просмотреть вместе в игре под главным тегом «конечности».
создайте пустой объект под целевой частью (называемый a) и назвите его.
это имя будет отображаться в игре как имя вашего украшения.
Поместите свою модель внутрь и настроите ее в подходящее положение.
Перетащите a к Проект проекта окно для создания сборной фабрики.
⚠ ️ Примечание. Пожалуйста, избегайте добавления компонентов коллайдера в модели декорации, поскольку они могут повлиять на физику персонажей, вызвать проблемы с вращением или нестабильные движения. для столкновений рассмотрите альтернативные методы.
бегать, бежать инструменты → строитель украшений головыПеретащите свой сборный фабрик (или более, поддерживается пакетный экспорт) в панель сценариев и выберите соответствующую часть на шаге 3, затем Нажмите на добавить модель в список.
Обязательно выберите правильную часть тела (голова/шею/тело/бедра и т. д.), соответствующую месту, где вы разместили украшение.
Нажмите на построить все пакеты активовзатем найдите [ваше имя украшения]. ххх файл в пакеты активов Папка.
только
. хххфайл необходим для установки. другие сгенерированные файлы можно игнорировать.
переместить файл в BepInEx\ плагины (игра будет загружать все файлы. hhh в папке с плагинами. Если вы не уверены, куда его положить, вы можете его положить \MoreHead\украшения для лучшей организации).
⚠ ️ для многопользовательской видимости: у вас и ваших друзей должно быть то же самое.
Файл установлен, чтобы увидеть правильные декорации.
⚠ ️ не упаковывайтеMoreHead.dllфайл в ваш мод, только. хххфайл и этот мод необходимы, чтобы насладиться украшением.
запустите игру и наслаждайтесь!
Нажмите esc в игре и найдите «больше головы» слева ниже, чтобы получить доступ к вашему новому украшению.
Развертывание Unity(Рекомендуемая версия 2022.3*, в игре используется встроенный рендеринговый трубопровод, обратите внимание на соответствующий материал модели), импорт MoreHead-Asset-Pack_v1.3.unitypackage。
Импортируйте модель и Перетаскивание сборных элементов в сцену。
Убедитесь, что ваша модель совместима с Unity, если есть анимация, которая требует правильной привязки костей.
Найти Аватар игрока Следующие части, соответствующие положению, где будет размещена модель:
| Наименование | описание | маркировка |
|---|---|---|
| украшение головы (не двигайтесь) | Голова, поднимающаяся при разговоре | Голова головы |
| Украшение шеи (не двигайтесь) | Подбородок/грудь | шея, шея |
| отделка кузова (не двигайтесь) | тело | Тело тела |
| украшение бедра (не двигайтесь) | Ягодица/нижняя часть тела | бедро, бедро |
| L-образная украшение руки (не двигайтесь) | левая рука | Левая рука |
| Оформление r-руки (не двигается) | правая рука | правая сторона |
| L-образная украшение для ног (не двигаясь) | левая нога | левая нога |
| Оформление ног r-образной формы (не двигается) | правая нога | правая нога |
| украшение мира (не двигайтесь) | Движение в соответствии с положением персонажа, но сохранение горизонтальной ориентации | |
⚠ ️ Эти позиции являются координатными анкерными точками. Не изменяйте координаты, иначе ваша модель будет смещена в игре.
💡мировой мирТеги подходят для украшений, которые должны поддерживать горизонтальную ориентацию, независимо от того, как перемещается персонаж.
💡 Теги, связанные с конечностями (leftarm, rightarm, leftleg, rightleg) могут быть единообразно просмотрены в игре через главный тег «LIMBS».
Создайте пустой объект (называемый A) под целевой частью и назовите его。
Это имя будет отображаться в игре как имя вашего украшения.
Поместите модель в A и отрегулируйте ее в нужное положение。
Перетащите A кПроект проектаокна, создание сборных。
⚠ ️ Совет: Не добавляйте компоненты столкновения на декоративную модель. Столкновение может повлиять на физическое поведение персонажа, вызывая ненормальное вращение или нестабильное движение. Для взаимодействия столкновений рассмотрите возможность использования других технологий для реализации.
эксплуатацияинструменты → строитель украшений головы, перетащите сборку А (или больше, поддерживается пакетный экспорт) и выберите соответствующую часть на шаге 3, затемдобавить модель в список。
Убедитесь, что выбрать правильную часть тела (голова/шея/тело/бедра и т.д.), которая соответствует месту, где вы размещаете украшение.
нажмитепостроить все пакеты активов, а затем впакеты активовНайдено в папке[название твоего украшения]. хххДокументы.
Во время установки нужно только
Файлы, другие сгенерированные файлы могут быть игнорированы.
将Перемещение файла вBepInEx\ плагины(Запуск игры загружает все файлы. hhh под plugins. Если вы не знаете, куда их положить, вы можете положить\MoreHead\украшениялегко управлять).
⚠ ️ Многопользовательская видимость: вы и ваши друзья должны установить одинаковые
. хххДокументы, чтобы увидеть друг друга правильное украшение.
⚠ ️ не упаковывайтеMoreHead.dllфайлы в ваш Mod, просто. хххВы можете играть с аксессуарами с файлами и модом.
Запустите игру и наслаждайтесь украшением!
Нажмите ESC в игре и найдите «MoreHead» в левом нижнем углу, чтобы получить доступ к вашему новому украшению.
Начиная с версии 1.2.4, morehead предоставляет публичный apis для расширения. эти интерфейсы позволяют разработчикам программно загружать ресурсы asetbundle, вводить пользовательские сценарии и улучшать функции декорации.
Следующие общие интерфейсы доступны в менеджер отделки головы Класс:
| методический метод | описание |
|---|---|
Loadeexternalasetbundlesfromassembly (сборка и сборка) |
загружает все . ххх ресурсы, встроенные в указанную сборку |
воссоздать () |
обновляет интерфейс для отображения вновь загруженных украшений |
Getdecorationsfrom assembly (Assembly assembly) |
возвращает список всех украшений, загруженных из указанной сборки |
Getdecorationgameobjectsfrom assembly (Assembly assembly) |
возвращает список сборников игровых объектов, загруженных из указанной сборки |
GetDecorationByName(сборка сборки, имя декорации строки) |
находит определенную украшение по названию из указанной сборки |
FindDecorationsByPartialName(сборка сборки, строка partialname) |
поиск украшений, содержащих указанное частичное название |
Существует два основных способа использовать API morehead для расширенной функциональности:
Вы можете встроить свой пакет активов () файлы непосредственно в вашу DLL в виде встроенных ресурсов:
файлы в ваш проект//загрузите все встроенные ресурсы. hhh из вашей сборки assembly assembly assembly=Assembly.GetExecutingAssembly (); Morehead.headdecorationmanager.loadeexternalassetbundlesfromassembly(assembly); MoreHead.HeadDecorationManager.RecreateUI ();
Примечание:: Встраивание ресурсов в вашу DLL не является обязательным. вы также можете использовать стандартные методы morehead для загрузки локальных
. хххфайлов и просто используйте свою dll для ввода сценариев и реализации функций.
вы можете написать сценарии, которые получают доступ к декорациям и изменяют их, независимо от того, были ли они загружены из вашей dll или других источников:
использование бепинекса; использование 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 выполняет только методы компонентов на активных игровых объектах.
Это разница в состояниях активации является ключевым моментом, объясняющим, почему один и тот же сценарий ведет себя по-разному в разных сценариях.
важные примечания о многопользовательской синхронизации
хотя в виде от первого лица вы не можете видеть свою собственную модель украшения (потому что локальная [буровая установка] отключена) игра все равно синхронизирует ваше состояние через сетьЭто означает, что пока ты правильно обрабатывать логику многопользовательской синхронизацииДругие игроки все еще могут видеть изменения и действия вашей модели украшения.
Таким образом, даже если локальные сценарии не выполняются из-за отключения [устройства], вы все равно можете реализовать интерактивные эффекты с помощью глобальные менеджеры или механизмы синхронизации сети, позволяя всех игроков, чтобы увидеть изменения в вашей модели отделки. это создает возможности для интерактивные украшения.
моменты, которые следует учитывать при реализации логики поведения модели:
- стратегия монтажа сценария -рассмотреть возможность использования глобальных менеджеров или систем событий в качестве альтернативы
- различия между персонажем сцены и персонажем меню -некоторые скрипты могут работать только в определенных контекстах
- проблема с многопользовательской синхронизацией -обеспечить последовательное поведение между сетевыми клиентами
- состояние активации компонента -компоненты на отключенных игровых объектах не выполняют методы update/fixedupdate
- управление ресурсами -правильно инициализировать и очистить ресурсы, чтобы избежать утечек памяти
- сетевой авторитет -учитывать, какие операции следует выполнять локально и какие требуют синхронизации сети
Начиная с версии 1.2.4, MoreHead предоставляет публичный интерфейс API для расширения функциональности. Эти интерфейсы позволяют разработчикам программно загружать ресурсы AssetBundle, вводить пользовательские сценарии и улучшать функциональность декораций.
Следующиеменеджер отделки головыПубличные интерфейсы, доступные в классе:
| методология | Описание |
|---|---|
Loadexternalasetbundlesfromassembly (сборка и сборка) |
Загрузить все встроенные в указанную сборку. хххРесурсы |
воссоздать () |
Обновить пользовательский интерфейс для отображения недавно загруженного украшения |
Getdecorationsfrom assembly (Assembly assembly) |
Возвращает список всех украшений, загруженных из указанной сборки |
Getdecorationgameobjectsfrom assembly (Assembly assembly) |
Возвращает список всех предварительных предметов GameObject, загруженных из указанной сборки |
GetDecorationByName(сборка сборки, имя декорации строки) |
Найти определенные украшения в указанной сборке по имени |
FindDecorationsByPartialName(сборка сборки, строка partialname) |
Поиск украшений, содержащих название указанной части |
Существует два основных способа использования API MoreHead для расширения функций:
Вы можете поместить AssetBundle (. ххх) файл встраивается непосредственно в DLL как встроенный ресурс:
Добавить файл в свой проект//Загрузите все встроенные ресурсы. hhh из вашей сборки Assembly assembly = Assembly.GetExecutingAssembly (); Morehead.headdecorationmanager.loadeexternalassetbundlesfromassembly(assembly); MoreHead.HeadDecorationManager.RecreateUI ();
Внимание: Встраивание ресурсов в DLL не является обязательной операцией. Вы также можете использовать стандартные методы MoreHead для загрузки локальных
. хххФайл, используйте только вашу DLL для введения скриптов и реализации функций.
Вы можете написать скрипты для доступа и изменения украшений, независимо от того, загружаются ли они из вашего DLL или другого источника:
использование бепинекса; использование 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], вы все равно можете пройти черезГлобальный менеджер или механизм синхронизацииДля достижения интерактивного эффекта, чтобыВсе игроки могут увидетьИзменения, которые произошли в вашей модели декорации. Это создаетИнтерактивное украшениеПредлагается возможность.
При реализации логики поведения модели необходимо обратить внимание на следующие моменты:
- Политика монтажа скрипта -рассмотреть альтернативные методы, такие как использование глобальных менеджеров или систем событий
- Разница между персонажами сцены и персонажами меню -Некоторые скрипты могут работать только в определенном контексте
- Проблемы многопользовательской синхронизации -Обеспечение последовательного поведения между сетевыми клиентами
- Состояние активации компонента -компоненты на отключенных игровых объектах не выполняют методы Update/FixedUpdate
- Управление ресурсами -Правильная инициализация и очистка ресурсов, чтобы избежать утечки памяти
- Сетевые права -Подумайте, какие действия следует выполнять локально, а какие требуют сетевой синхронизации
больше шляп
скриншоты украшений для оказания помощи в выборе (не гарантировано)
Больше шапок
Предоставить скриншоты для декораций для удобного выбора (Не гарантируется)
Мозаика Мозаика:
Юрискат Калипсо Кошка Юрия Калипсо:Билибили
для вопросов и предложений отправьте вопросы:
Если у вас есть вопросы и предложения, пожалуйста, отправьте вопросы:Проблемы с github
Хотите поддержать нас кофе и желтыми энергетическими кристаллами?
Хотите угостить нас кофе и купить желтые энергетические кристаллы?
пожертвовать на ko-fi
шепотом, мы делаем инди-игру!
Прошепотом, мы делаем инди-игры!
Загрузите моды сейчас
Установите LagoFast, запустите R.E.P.O. и играйте с модами, которые вам нравятся.