Morehead

Autor:YMC_MHZLetzte Aktualisierung:06/08/2025 08:42:5310.4M2.1MB

R.E.P.O. Morehead-1-lagofast mod master

Mod-Einführung

Kundenspezifische Kosmetik. Einfaches und unterhaltsames Dekorationsmodul, das Spielern ein Einheitspaket bietet, damit Spieler Modelle selbst importieren können.

Alle Modelle wurden von Yuri's Katze Calypso speziell für diesen mod erstellt: 3
Alle Modelle werden vonYuris Katze CalypsoFür dieses Mod gemacht: 3

Einführung in Introduction

Ein einfacher und lustiger Dekorationsmod, der eine Für Spieler, benutzerdefinierte Modelle zu importieren.
Derzeit stehen nur wenige Dekorationen zur Verfügung, aber weitere Updates sind geplant.
Nick Mau Menü mod ist eine Voraussetzung.
Wenn Sie Probleme mit Kraftverlust haben, laden Sie bitte herunter Befestigungsfestigkeit Muster.

Einfaches und lustiges Dekorationsmodul, bietet unitypackage, damit Spieler benutzerdefinierte Modelle importieren können.
Derzeit gibt es nur wenige Dekorationen, die in Zukunft weiter aktualisiert werden.
Installation erforderlich Nick Mau Menü Frontmodul.
Wenn Sie Probleme mit Kraftverlust haben, laden Sie bitte herunter Befestigungsfestigkeit Modul.


* Das Hühnermaul im Screenshot stammt von EvenMoreHead.

Wie zu benutzen Wie zu benutzen

  1. Installieren Sie diesen mod Und ins Spiel gehen.
  2. Sie können finden Die Schaltfläche "MoreHead" in der unteren linken Ecke Entweder In der Halle or Nach dem Betreten des Levels (drücken ).
  3. Klicken Sie auf die Schaltfläche, um die Kosmetik zu

  1. Installieren Sie dieses Modul, in das Spiel eintreten.
  2. In der Vorbereitungsphase der HalleDrücken Sie nach dem offiziellen Betreten des Levels Elektrische Regelung, finden Sie in der unteren linken Ecke Schaltfläche „MoreHead“
  3. Klicken Sie auf die Schaltfläche, um die Kosmetik zu








⚠ ️ Kompatibilitätserklärung Kompatibilitätshinweise ⚠ ️

Klicken Sie hier, um zu sehen Klicken Sie zum Erweitern

Mit Aktualisiert zu 2.1.3, Morehead Muss aktualisiert werden als 1.3.0 Oder erst später richtig funktioniert.

⚠ ️ Wenn Sie noch verwenden Morehead 1.2.8 Oder früher, bitte behalten Menullib Im 2.1.1 Oder früher, um Kompatibilitätsprobleme zu vermeiden.

Für die beste Erfahrung und Stabilität empfehlen wir, immer die neueste Version zu verwenden.


Aktualisiert auf 2.1.3, daher Morehead Upgrade auf erforderlich 1.3.0 Oder höher, um korrekt zu funktionieren.

⚠ ️ Wenn Sie noch verwenden Morehead 1.2.8 Oder eine frühere Version, stellen Sie sicher, dass Menullib Immer noch für 2.1.1 Oder eine frühere Version, da sonst Kompatibilitätsprobleme auftreten können.

Um die beste Erfahrung und Stabilität zu gewährleisten, wird empfohlen, immer die neueste Version zu verwenden.


Vorherige Version: Vorherige Version

1.2.8+
1.0.3 1.1.8+ Pflichtfeld.

Menullib 2.0.0 → Bedarf Morehead 1.2.8+
Menullib 1.0.3 → Bedarf Morehead 1.1.8+ Version.



Konfigurationsmöglichkeiten Konfigurationsmöglichkeiten

Klicken Sie hier, um zu sehen Klicken Sie zum Erweitern

Englisch

MoreHead bietet mehrere Konfigurationsoptionen, die in der BepInEx-Konfigurationsdatei geändert werden können (BepInEx/config/Mhz.REPOMoreHead.cfg):

UI-Einstellungen

Optionen
EscButtonPosX Position der X Morehead-Schaltfläche im ESC-Menü 0
EscButtonPosY Y Position der Schaltfläche Morehead im ESC-Menü 0
Lobby Button POSX Position des X Morehead-Buttons in der Halle 0
LobbyButtonPosY Y Position des Morehead-Buttons in der Halle 0

Durch das Anpassen dieser Werte können Sie die MoreHead-Schaltfläche neu positionieren, wenn sie mit anderen Mod-UI-Elementen in Konflikt geraten.

Blacklist-Modus

Optionen Beschreibung Standardwert
Blacklist-Modus Setzen Sie auf "ENABLE_BLACKLIST", um die Blacklist-Funktion zu aktivieren "" (deaktiviert)

Wenn der Blacklist-Modus aktiviert ist:

  • Halten Sie die Umschalttaste gedrückt und klicken Sie Hinzufügen/Entfernen von Elementen aus der schwarzen Liste auf Dekorationsschaltflächen
  • Benutzt Umschalt+Alles löschen Löschen Sie die gesamte schwarze Liste auf einmal
  • ⚠ ️ Alle Änderungen der schwarzen Liste treten nach Neustart des Spiels in Kraft

Auf der schwarzen Liste stehende Dekorationen erscheinen nicht in deinem Dekorationsmenü, was nützlich ist, um Gegenstände zu verbergen, die du nicht verwenden willst.

💡 Empfehlen Sie einen Spieler, um die schwarze Liste zu verwalten und über einen mod-Code oder BepInEx/config/MoreHeadBlacklist.json Datei, um sicherzustellen, dass das Erscheinungsbild in Multiplayer-Spielen synchronisiert ist.
💡 Stellen Sie sicher, dass Sie den Blacklist-Modus deaktivieren (Konfigurationswerte löschen), bevor Sie teilen, um zu verhindern, dass andere Spieler versehentlich Änderungen vornehmen.

Holzeinschlag

Optionen Standardwert
EnableVerboseLogging Detailprotokollierung für das Modellladen aktivieren Falsch

Aktivieren Sie diese Option, um detailliertere Protokolle des Modellladevorgangs anzuzeigen, was bei der Fehlerbehebung hilfreich ist.

Datei-Speicherort

Dokumente Pfad Beschreibung
Mehr HeadConfig.json Hauptprofil zum Speichern des Status der Dekoration
Mehr HeadOutfits.json [Einheit.persistentDataPath]/REPOModData/MoreHead/ Speichern von bis zu 5 Ausrüstungskonfigurationen
Mhz.REPOMoreHead.cfg BepInEx-Profil mit UI-Positionierung und anderen Einstellungen
Mehr HeadBlacklist.json BepInEx/config/ Blacklist Dateien zum Verbergen unerwünschter Dekorationen
Dekoration (. hhh-Datei) BepInEx/Plugins/ or
BepInEx/Plugins/Morehead/Dekoration/
Kundenspezifische Dekorationsmodelle

Anmerkung: [Einheit.persistentDataPath] Normalerweise aufgelöst als:

  • Fenster: C: /Benutzer/[Ihrer Namen]/AppData/LocalLow/semiwork/Repo/
  • Linux: ~/.config/unity3d/semiwork/Repo/
  • Mac: ~/Bibliotheken/Anwendungsunterstützung/semiwork/Repo/

Dokumentenbeschreibung

  • Mehr HeadConfig.json: Speichert den aktivierten/deaktivierten Status jeder Dekoration (einzelner Ausrüstungsmodus-für Abwärtskompatibilität)
  • Mehr HeadOutfits.json: Speichert bis zu 5 verschiedene Dekorkonfigurationen, die Sie über die Benutzeroberfläche oder die Funktionstasten F1-F5 wechseln können
  • Mhz.REPOMoreHead.cfg: Enthält Einstellungen für die Position der UI-Schaltflächen, den Wechsel des Blacklist-Moduses und die Protokolloptionen
  • Mehr HeadBlacklist.json: Enthält eine Liste von Dekorationsnamen, die aus dem UI-Menü ausgeblendet werden sollen (muss der Blacklist-Modus aktiviert sein)
  • Dekoration der. hhh Datei: Asset-Paket mit dekorativen 3D-Modellen, die an jeder Stelle platziert werden können

Chinesisch

MoreHead bietet mehrere Konfigurationsmöglichkeiten, die in der BepInEx-Konfigurationsdatei geändert werden können (BepInEx/config/Mhz.REPOMoreHead.cfg):

UI-Einstellungen

Optionen Beschreibung Standardwert
EscButtonPosX X-Koordinate der Schaltfläche MoreHead im ESC-Menü 0
EscButtonPosY Y-Koordinate der Schaltfläche MoreHead im ESC-Menü 0
Lobby Button POSX X-Koordinate des MoreHead-Buttons in der Lobby 0
LobbyButtonPosY Y-Koordinate des MoreHead-Buttons in der Lobby 0

Durch das Anpassen dieser Werte kann die MoreHead-Schaltfläche neu positioniert werden, um Konflikte mit UI-Elementen anderer Module zu vermeiden.

Blacklist-Modus

Optionen Beschreibung Standardwert
Blacklist-Modus Setzen Sie auf „ENABLE_BLACKLIST“, um die Blacklist-Funktion zu aktivieren "" (deaktiviert)

Nachdem Sie den Blacklist-Modus aktiviert haben:

  • Verschiebung + Klicken Sie Kosmetik-Schaltfläche zum Hinzufügen/Entfernen von Elementen aus der schwarzen
  • Benutzt Umschalt+Alles löschen Alle Blacklist-Einträge können auf einmal gelöscht werden
  • ⚠ ️ Alle Vorgänge im Zusammenhang mit der schwarzen Liste werden erst wirksam, nachdem das Spiel neu gestartet wurde

Kosmetikprodukte, die auf der schwarzen Liste stehen, erscheinen nicht in Ihrem Dekormenü, was nützlich ist, um Gegenstände zu verbergen, die Sie nicht verwenden möchten.

💡 Es wird empfohlen, eine schwarze Liste von einem Spieler zu pflegen, indem Sie den Mod-Code teilen oder direkt senden BepInEx/config/MoreHeadBlacklist.json Datei, um sicherzustellen, dass das Erscheinungsbild während des Multiplayer-Spiels synchronisiert wird.
💡 Bitte deaktivieren Sie vor dem Teilen den Blacklist-Modus (löschen Sie die Konfigurationselementzeichenfolge), um zu verhindern, dass andere Spieler versehentlich berühren und die Daten nicht synchronisieren.

Protokollierung

Optionen Beschreibung Standardwert
EnableVerboseLogging Aktivieren Sie detaillierte Protokolle für das Modellladen Falsch

Aktivieren Sie diese Option, um detailliertere Protokolle des Modellladevorgangs anzuzeigen, was zur Fehlerbehebung beiträgt.

Datei-Speicherort

Dokumente Pfad Beschreibung
Mehr HeadConfig.json Hauptprofil, in dem der Dekorationsstatus gespeichert wird
Mehr HeadOutfits.json [Einheit.persistentDataPath]/REPOModData/MoreHead/ Speichern Sie bis zu 5 Ausrüstungskonfigurationen
Mhz.REPOMoreHead.cfg BepInEx-Konfigurationsdatei mit UI-Positionierung und anderen Einstellungen
Mehr HeadBlacklist.json BepInEx/config/ Blacklist Datei zum Verbergen unerwünschter Dekorationen
Dekorationsdatei (. hhh-Datei) BepInEx/Plugins/
BepInEx/Plugins/Morehead/Dekoration/
Benutzerdefinierte Dekorationsmodelle

Aufmerksamkeit: [Einheit.persistentDataPath] In der Regel entspricht:

  • Fenster: C:/Users/[Ihr Benutzername]/AppData/LocalLow/semiwork/Repo/
  • Linux: ~/.config/unity3d/semiwork/Repo/
  • Mac: ~/Bibliotheken/Anwendungsunterstützung/semiwork/Repo/

Dokumentenbeschreibung

  • Mehr HeadConfig.json: Speichert den aktivierten/deaktivierten Status jeder Dekoration (Einzelausrüstungsmodus-für Abwärtskompatibilität)
  • Mehr HeadOutfits.json: Speicherung von bis zu 5 verschiedenen Dekorkonfigurationen, die über die Benutzeroberfläche oder die Funktionstasten F1-F5 umgeschaltet werden können
  • Mhz.REPOMoreHead.cfg: Enthält Einstellungen für UI-Tastenpositionen, Blacklist-Modus-Schalter und Protokolloptionen
  • Mehr HeadBlacklist.json: Enthält eine Liste mit Dekorationsnamen, die im UI-Menü ausgeblendet werden sollen (muss der Blacklist-Modus aktiviert sein)
  • Dekoration der. hhh Datei: Asset Bundle mit dekorativen 3D-Modellen, die an jeder Stelle platziert werden können



So fügen Sie ein Modell hinzu So fügen Sie ein Modell hinzu

Klicken Sie hier, um zu sehen Klicken Sie zum Erweitern

Englisch-Tutorial

  1. Einrichten von Unity (2022.3*Empfohlen, das Spiel verwendet die integrierte Rendering-Pipeline, bitte beachten Sie das entsprechende Modellmaterial), importieren Mehr Head-Asset-Pack_v1.3.unitypackage.

    📥 unitypackage herunterladen

  2. Importieren Sie Ihre Modelle Und Drag Spieler-Avatar Vorgefertigt in die Szene.

    Stellen Sie sicher, dass Ihr Modell mit Unity kompatibel ist und, falls eine Animation vorhanden ist, korrekt zusammengesetzt ist.

  3. Folgende Teile gefunden Im Spieler-Avatar, wo das Modell platziert wird:

    Name Beschreibung Etikett
    Kopfdekoration (nicht bewegen) Erhobener Kopf beim Sprechen Kopf
    Halsdekoration (nicht bewegen) Kinn/Brustbereich Nacken
    Karosserieverkleidung (nicht bewegen) Körper Körper
    Hüftverzierung (nicht bewegen) Hüft/Unterkörperbereich Hüfte
    L-Arm Dekoration (nicht bewegen) Linker Arm Linker Arm
    R-Arm Dekoration (nicht bewegen) Rechter Arm Rechter Arm
    L-Beindekoration (nicht bewegen) Linkes Bein Linkes Bein
    R-Beine Dekoration (nicht bewegen) Rechtes Bein Rechtes Bein
    Weltdekoration (nicht bewegen) Folgen Sie der Zeichenposition, halten Sie aber die horizontale Ausrichtung

    ⚠ ️ Diese Positionen sind Ankerpunktreferenzen. Ändern Sie die Koordinaten nicht, sonst wird Ihr Modell im Spiel falsch ausgerichtet sein.
    💡 Die Weltweit Markierungen sind nützlich für Dekorationen, die unabhängig von der Bewegung des Charakters horizontal bleiben sollten.
    💡 Die mit den Gliedmaßen verbundenen Tags (linker Arm, rechter Arm, linkes Bein, rechtes Bein) können im Spiel unter dem Hauptab "Gliedmaßen" zusammen angezeigt werden.

  4. Erstellen Sie ein leeres Objekt unter dem Zielteil (kurz A) und benennen Sie es.

    Dieser Name wird im Spiel als der Name Ihrer Dekoration angezeigt.

  5. Modell in A einsetzen und an die richtige Position anpassen.

  6. Ziehen Sie A auf Projekt Fenster zum Erstellen von Presets.

    ⚠ ️ Hinweis: Bitte vermeiden Sie das Hinzufügen von Collider-Komponenten zu dekorativen Modellen, da sie die Charakterphysik beeinträchtigen, Rotationsprobleme oder instabile Bewegungen verursachen können. Für die Kollisionswechselwirkung werden alternative Techniken in Betracht gezogen

  7. Laufen Werkzeuge → Kopfdekorationsgenerator, ziehen Sie Ihr A prefab (oder mehr, Batch-Export wird unterstützt) in das Skriptpanel, wählen Sie den entsprechenden Abschnitt aus Schritt 3 aus und Klicken Sie Modell zur Liste hinzufügen.

    Stellen Sie sicher, dass Sie den richtigen Körperteil (Kopf/Nacken/Körper/Hüften usw.) auswählen, der dem Ort entspricht, an dem Sie Ihre Dekoration platzieren.

  8. Klicken Sie Alle AssetBundles erstellen, und dann finden 【Ihr Dekorationsname】.hhh Dateien in Vermögensbündelung Ordner.

    Nur . hhh Für die Installation sind Dateien erforderlich. Andere generierte Dateien können ignoriert werden.

  9. Bewegung Datei zu BepInEx\Plugins (Das Spiel lädt alle. hhh-Dateien im plugins-Ordner. Wenn Sie sich nicht sicher sind, wo Sie sie ablegen sollen, können Sie sie in \MoreHead\Dekorationen Besser zu organisieren).

    ⚠ ️ Für Multiplayer-Sichtbarkeit: Sie und Ihre Freunde müssen die gleiche Installieren Sie die Datei, um die richtige Dekoration zu sehen.
    ⚠ ️ Nicht verpacken MoreHead.dll Datei in Ihren Mod, nur . hhh Die Dateien und dieses Modul sind notwendig, um die Dekoration zu genießen.

  10. Starten Sie das Spiel und genießen Sie es!

    Drücken Sie die ESC-Taste während des Spiels und finden Sie "MoreHead" in der unteren linken Ecke, um auf Ihre neue Dekoration zuzugreifen.

Chinesisches Tutorial

  1. Unity bereitstellen(Empfohlene Version 2022.3*, das Spiel verwendet eine integrierte Render-Pipeline, bitte beachten Sie das entsprechende Modellmaterial), importieren Mehr Head-Asset-Pack_v1.3.unitypackage

    📥 unitypackage herunterladen

  2. Das Modell importieren und das Vorgefertigte Körper in die Szene ziehen

    Stellen Sie sicher, dass Ihr Modell mit Unity kompatibel ist, wenn es Animationen gibt, die die Knochen richtig binden müssen.

  3. Gefunden Spieler-Avatar Die folgenden Teile entsprechen der Position, an der das Modell platziert wird

    Bezeichnung Beschreibung Etikett
    Kopfdekoration (nicht bewegen) Der Kopf, der beim Sprechen nach oben gehoben wird Kopf
    Halsdekoration (nicht bewegen) Kinn/Brust Nacken
    Karosserieverkleidung (nicht bewegen) Körper Körper
    Hüftverzierung (nicht bewegen) Hüften/Unterkörper Hüfte
    L-Arm Dekoration (nicht bewegen) Linker Arm Linker Arm
    R-Arm Dekoration (nicht bewegen) Rechter Arm Rechter Arm
    L-Beindekoration (nicht bewegen) Linkes Bein Linkes Bein
    R-Beine Dekoration (nicht bewegen) Rechtes Bein Rechtes Bein
    Weltdekoration (nicht bewegen) Folgen Sie der Position des Charakters, bewegen Sie sich aber horizontal

    ⚠ ️ Diese Positionen sind Koordinaten-Ankerpunkt-Referenzen. Ändern Sie die Koordinaten nicht, sonst wird Ihr Modell im Spiel falsch ausgerichtet sein.
    💡 Weltweit Etiketten sind für Dekorationen geeignet, die eine horizontale Orientierung beibehalten müssen, unabhängig von der Bewegung des Charakters.
    💡 Gliedmaßen bezogene Tags (leftarm, rightarm, leftleg, rightleg) können innerhalb des Spiels einheitlich über den Haupttag „LIMBS“ angezeigt werden.

  4. Erstellen Sie ein leeres Objekt (genannt A) unter dem Zielteil und geben Sie es

    Dieser Name wird im Spiel als Ihr Dekorationsname angezeigt.

  5. Legen Sie das Modell in A und stellen Sie es an die richtige Position ein

  6. Ziehen Sie A aufProjektFenster, Erstellen von Vorformkörpern

    ⚠ ️ Tipp: Keine Kollisionskörperkomponenten an dekorativen Modellen hinzufügen. Kollisionskörper können das physikalische Verhalten des Charakters beeinflussen und zu ungewöhnlicher Rotation oder instabiler Bewegung führen. Für die Kollisionsinteraktion sollten Sie andere technische Implementierungen in Betracht ziehen.

  7. LaufenWerkzeuge → Kopfdekorationsgenerator, ziehen Sie einen Vorformkörper (oder mehr, Batch-Export wird unterstützt) hinein, wählen Sie den entsprechenden Teil in Schritt 3 aus und wählen Sie dannModell zur Liste hinzufügen

    Stellen Sie sicher, dass Sie die richtigen Körperteile (Kopf/Nacken/Körper/Hüften usw.) auswählen, die zu der Stelle passen, an der Sie die Dekoration platzieren.

  8. Klicken SieAlle AssetBundles erstellen, und dann inVermögensbündelungIm Ordner gefunden[Ihr Dekorationsname].hhhDokumente.

    Bei der Installation wird nur benötigtDateien, andere generierte Dateien können ignoriert werden.

  9. Datei zu verschiebenBepInEx\Plugins(Beim Starten des Spiels werden alle. hhh-Dateien unter den plugins geladen. Wenn Sie nicht wissen, wo Sie sie einlegen sollen, können Sie sie einlegen\MoreHead\DekorationenLeicht zu verwalten).

    ⚠ ️ Multiplayer-Sichtbarkeit: Sie und Ihre Freunde müssen das gleiche installieren. hhhDokumente, um sich gegenseitig die richtige Dekoration zu sehen.
    ⚠ ️ Nicht packenMoreHead.dllDatei in Ihren Mod, einfach. hhhMit Dateien und diesem mod können Sie mit Accessoires spielen.

  10. Starten Sie das Spiel und genießen Sie die Dekoration!

    Drücken Sie im Spiel ESC und finden Sie "MoreHead" in der unteren linken Ecke, um auf Ihre neue Dekoration zu zugreifen.



Developer API & Extension Entwickler-API und -Erweiterungen

Klicken Sie hier, um zu sehen Klicken Sie zum Erweitern

Englische Dokumentation


Seit Version 1.2.4 bietet MoreHead eine öffentliche API für Erweiterungen. Diese Schnittstellen ermöglichen es Entwicklern, AssetBundle-Ressourcen programmgesteuert zu laden, benutzerdefinierte Skripte einzufügen und dekorative Funktionen zu verbessern.

Öffentliche API

Folgende öffentliche Schnittstellen sind verfügbar unter Kopfbedeckungsmanager Kategorie:

Methoden Beschreibung
LoadExternalAssetBundlesFromAssembly(Assembly) Alle laden . hhh Geben Sie die in der Assembly eingebetteten Ressourcen an
Neu erstellen () Aktualisieren Sie die Benutzeroberfläche, um neu geladene Dekorationen anzuzeigen
GetDecorationsFromAssembly(Assembly assembly) Gibt eine Liste aller Dekorationen zurück, die aus der angegebenen Assembly geladen wurden
GetDecorationGameObjectsFromAssembly(Assembly assembly) Gibt die Liste der GameObject-Voreinstellungen zurück, die aus der angegebenen Assembly geladen wurden
GetDecorationByName (Assembly Assembly, Zeichenfolge decorationName) Suchen Sie eine bestimmte Dekoration nach Namen aus der angegebenen Assembly
FindDecorationsByPartialName (Assembly Assembly, String partialName) Suche nach Dekorationen, die den Namen des angegebenen Abschnitts enthalten

INTEGRATIONSMETHODE

Es gibt zwei Hauptmöglichkeiten, die API von MoreHead zu nutzen, um die Funktionalität zu erweitern:

1. Betten Sie AssetBundles als Ressource ein

Sie können ein AssetBundle einbetten () Datei als eingebettete Ressource direkt in Ihre DLL:

  1. Erstellen Sie AssetBundles gemäß den Standardverfahren, die im Abschnitt „So fügen Sie ein Modell“ beschrieben sind
  2. In Visual Studio (oder der bevorzugten IDE):
    • Hinzufügen Dokumente im Projekt
    • Setzen Sie ihre "Build-Aktion" auf "Ressource einbetten"
  3. Im Initialisierungscode des Plugins:
    //Laden Sie alle eingebetteten. hhh-Ressourcen aus Ihrer Assembly Assembly assembly.getExecutingAssembly (); MoreHead.HeadDecorationManager.LoadExternalAssetBundlesFromAssembly(Versammlung); MoreHead.HeadDecorationManager.RecreateUI ();
    

Anmerkung: Das Einbetten von Ressourcen in die DLL ist nicht obligatorisch. Sie können auch die Standardmethode von MoreHead verwenden, um lokale . hhh Dateien und verwenden Sie einfach Ihre DLLs für Skripteinjektion und Funktionsumsetzung.


2. Programmatische Skriptinjektion

Sie können Skripte schreiben, um auf Dekorationen zuzugreifen und diese zu ändern, egal ob sie von einer DLL oder einer anderen Quelle geladen werden:

  1. Zugriff auf dekorative Vorformteile mit der bereitgestellten API
  2. Fügen Sie benutzerdefinierte Komponenten/Skripte hinzu, um die Funktionalität zu
  3. Implementieren Sie eine eigene Logik des dekorativen Verhaltens

Ausführungsbeispiele

Verwendung von BepInEx Verwenden von BepInEx.Logging Verwenden Sie das System. Reflexion; Mit UnityEngine arbeiten Verwenden Sie System.Collections.Generic Namespace MyCustomDecorations{[BepInPlugin("com.yourname.customdecorations","Custom Decorations Mod","1.0.0")][BepInDependency("Mhz.REPOMoreHead",BepInDependency.DependencyFlags.HardDependency)] Öffentliche Klasse CustomDecorationsPlugin:BaseUnityPlugin{public static CustomDecorationsPlugininstance{get;private set;} Private ManualLogSource_Logger;private const string TARGET_MODEL_NAME="Cigar";private const string("Private Model); _logger.LogInfo("Benutzerdefinierte Dekoration Mod loaded "); //Dekorationen laden und den Handler LoadDecorations () festlegen; } private void LoadDecorations () {try {//ruft die aktuelle Assembly Assembly Assembly.getExecutingAssembly ();//ladt alle. hhh Ressourcen aus der aktuellen DLL MoreHead.HeadDecorationManager.LoadExternalAssetBundlesFromAssembly(Assembly);//erstellt die Benutzeroberfläche neu, um das neu geladene Modell anzuzeigen MoreHead.HeadDecorationManager.RecreateUI ();//sucht ein bestimmtes Modell, das mit der Liste der Zielnamen übereinstimmt<MoreHead.DecorationInfo>targetDecorations=MoreHead.HeadDecorationManager.FindDecorationsByPartialName(assembly, TARGET_MODEL_NAME); if(targetDecorations.Count>0) {_logger.LogInfo($"found {targetDecorations.Count}models match '{TARGET_MODEL_NAME}' ");//Komponenten zu jedem gefundenen Zielmodell hinzufügen foreach (var decoration in targetDecorations){ if(decoration.Prefab!=null&&decoration.Prefab.GetComponent<SpaceKeyHandler>() ==null){_logger.LogInfo($"SpaceKeyHandler zu {decoration.DisplayName}hinzufügen");decoration.Prefab.AddComponent<SpaceKeyHandler>(); }}}} catch(System.Exception ex) {_logger.LogError($"Fehler verarbeitende Dekorationen:{ex.Message}");}}//Klasse zur Verarbeitung des Dekorationsverhaltens Public Class SpaceKeyHandler: MonoBehaviour {// Instance._logger.LogInfo($"SpaceKeyHandler initialized on {gameObject.name}");} private void Update (); if (Input.GetKeyDown(KeyCode.Space)); if ($"SpaceKeyHandler: {"Leertaste beim Dekoration: {"Leertaste beim Dekoration: {gameObject.name}");if Nachricht beim Auslösen Instance._Logger.Name}");if

⚠ ️ Wichtige Hinweise

Skripte müssen nicht unbedingt an das entsprechende Modell angehängt werden – implementieren Sie sie nach Bedarf für die richtige Funktionalität. Beispielsweise reagiert der obige Beispielcode nur auf Leertastendrücken, wenn Zeichen im Menü angezeigt werden.

Warum ist das der Fall?

Denn aus Ich-Perspektive legt das Spiel lokale Charaktere fest [Bohrgerät] Spielobjekt Inaktiv (SetActive (falsch)).

  • Ist das übergeordnete Objekt, das das Rollenmodell enthält, und Unter dieser Hierarchie werden auch Morehead-Dekorationen installiert.
  • Wann Gemäß dem Mechanismus von Unity Alle Komponenten eines Unterobjekts Es wird sie nicht geben Aktualisiert, Reparaturaktualisierung Und andere Lebenszyklusansätze Rufen.
  • Kundenspezifische Dekorationsmodelle werden ebenfalls in [Bohrgerät] Hierarchie, sodass, wenn Sie Skripte direkt an das Modell anhängen, sobald Sie in der Ich-Ansicht sind, diese Skripte Kann nicht richtig ausgeführt werden Weil das übergeordnete Objekt deaktiviert ist.
  • Allerdings im Spiel Menüoberfläche, das Rollenmodell bleibt immer Aktive, also funktioniert das an die Dekoration angehängte Skript ordnungsgemäß, da Unity nur Komponentenmethoden auf aktiven GameObjects ausführt.

Dieser Aktivierungsstatus Differenz Es ist ein entscheidender Punkt, der erklärt, warum sich dasselbe Skript in verschiedenen Szenarien unterschiedlich verhält.

Wichtige Hinweise zur Multiplayer-Synchronisation

Obwohl aus Ich-Perspektive Ich kann mein eigenes Dekorationsmodell nicht sehen (weil die lokale [Ausrüstung] deaktiviert ist), bleibt das Spiel Synchronisieren Sie Ihren Status über das Netzwerk. Das heißt, solange du Korrekte Handhabung der Multiplayer-Synchronisierungslogik, andere Spieler können immer noch die Änderungen und Bewegungen Ihres Dekorationsmodells sehen.

Selbst wenn ein lokales Skript nicht ausgeführt werden kann, weil [RIG] deaktiviert ist, können Sie trotzdem über GLOBALER MANAGER ODER, erlaubt Alle Spieler zu sehen Änderungen an Ihrem Dekormodell. Das ist für Interaktive Dekoration.

Wichtige Berücksichtigungspunkte bei der Implementierung der Modellverhaltenslogik:

  1. Skript-Mounting-Richtlinie -Betrachten Sie den Einsatz eines globalen Managers oder eines Event-Systems als Alternative
  2. Unterschiede zwischen Szenenrollen und Menürollen -Einige Skripte funktionieren möglicherweise nur in bestimmten Kontexten
  3. Probleme bei der Synchronisation mehrerer Personen -Gewährleistung eines konsistenten Verhaltens zwischen den Netzwerkclients
  4. Aktivierungszustand der Komponente -Komponenten auf deaktivierten Spielobjekten führen die Update/FixedUpdate-Methode nicht aus
  5. Verwaltung von Ressourcen -Richtige Initialisierung und Reinigung von Ressourcen, um Speicherlecks zu vermeiden
  6. Netzwerkbehörde -Überlegen Sie, welche Aktionen lokal ausgeführt werden sollen und welche eine Netzwerksynchronisation erfordern

Chinesische Dokumentation


Seit Version 1.2.4 bietet MoreHead eine öffentliche API-Schnittstelle zur Erweiterung der Funktionalität. Diese Schnittstellen ermöglichen es Entwicklern, AssetBundle-Ressourcen programmgesteuert zu laden, benutzerdefinierte Skripte einzufügen und die Ornamentfunktionalität zu verbessern.

Öffentliche API-Schnittstelle

Die folgenden sindKopfbedeckungsmanagerVerfügbare öffentliche Schnittstellen in der Klasse:

Methoden Beschreibung
LoadExternalAssetBundlesFromAssembly(Assembly) Laden Sie alle in der angegebenen Assembly eingebetteten. hhhRessourcen
Neu erstellen () Aktualisieren Sie die Benutzeroberfläche, um neu geladene Ornamente anzuzeigen
GetDecorationsFromAssembly(Assembly assembly) Gibt eine Liste aller Ornamente zurück, die aus der angegebenen Assembly geladen wurden
GetDecorationGameObjectsFromAssembly(Assembly assembly) Gibt eine Liste aller GameObject-Vorformate zurück, die aus der angegebenen Assembly geladen wurden
GetDecorationByName (Assembly Assembly, Zeichenfolge decorationName) Suchen Sie nach einem bestimmten Ornament in einer angegebenen Assembly anhand ihres Namens
FindDecorationsByPartialName (Assembly Assembly, String partialName) Suche nach Dekorationen, die den Namen des angegebenen Teils enthalten

INTEGRATIONSMETHODE

Es gibt zwei Hauptmöglichkeiten, die API von MoreHead für die Funktionserweiterung zu nutzen:

1. AssetBundle als Ressource einbetten

Sie können das AssetBundle (. hhh) Die Datei wird direkt in die DLL als eingebettete Ressource eingebettet:

  1. Erstellen Sie ein AssetBundle gemäß dem Standardprozess im Abschnitt „So fügen Sie ein Modell hinzu“
  2. In Visual Studio (oder einer IDE Ihrer Wahl):
    • Dateien zu Ihrem Projekt hinzufügen
    • Legen Sie ihre „Build-Aktion“ auf „Eingebettete Ressourcen“ fest
  3. In Ihrem Plugin-Initialisierungscode:
    //Laden Sie alle eingebetteten. hhh-Ressourcen aus Ihrer Assembly assembly assembly = Assembly.GetExecutingAssembly (); MoreHead.HeadDecorationManager.LoadExternalAssetBundlesFromAssembly(Versammlung); MoreHead.HeadDecorationManager.RecreateUI ();
    

Aufmerksamkeit: Das Einbetten von Ressourcen in eine DLL ist keine obligatorische Operation. Sie können auch die Standardmethode von MoreHead verwenden, um lokal zu laden. hhhDatei, verwenden Sie nur Ihre DLL-Injection Skript und implementieren Sie Funktionen.


2. Programmatische Skriptinjektion

Sie können Skripte schreiben, um auf die Dekorationen zuzugreifen und diese zu ändern, egal ob sie von Ihrer DLL oder einer anderen Quelle geladen werden:

  1. Zugriff auf Ornamentvorformkörper mit der bereitgestellten API
  2. Fügen Sie benutzerdefinierte Komponenten/Skripte hinzu, um die Funktionalität zu verbessern
  3. Implementieren Sie Ihre eigene Verhaltenslogik für Dekorationen

Implementierungsbeispiele

Verwendung von BepInEx Verwenden von BepInEx.Logging Verwenden Sie das System. Reflexion; Mit UnityEngine arbeiten Verwenden Sie System.Collections.Generic namespace MyCustomDecorations{ [BepInPlugin("com.yourname.customdecorations","Benutzerdefinierte Dekoration MOD","1.0.0 ") ] [BepInDependency("Mhz.REPOMoreHead ", BepInDependency.DependencyFlags.HardDependency)] Öffentliche Klasse CustomDecorationsPlugin: BaseUnityPlugin {public static CustomDecorationsPlugin Instance {get; private set;} Private ManualLogSource_Logger; private const string TARGET_MODEL_NAME="Cigar Cigar"; //Zielmodellname private void Awake () {Instance = this; _Logger = Logger; _logger.LogInfo("Benutzerdefinierte Dekoration MOD geladen ");//Dekoration laden und Verarbeitungsskript einrichten LoadDecorations ();} private void LoadDecorations () {try {//ruft die aktuelle assembly assembly = assembly.GetExecutingAssembly ();//Laden Sie alle. hhh Ressourcen in der aktuellen DLL MoreHead.HeadDecorationManager.LoadExternalAssetBundlesFromAssembly(assembly); //Neueinrichtung der Benutzeroberfläche, um das neu geladene Modell anzuzeigen MoreHead.HeadDecorationManager.RecreateUI (); //Suche nach einer bestimmten Modellliste, die dem Zielnamen entspricht<MoreHead.DecorationInfo>targetDecorations=MoreHead.HeadDecorationManager.FindDecorationsByPartialName(assembly, TARGET_MODEL_NAME); if(targetDecorations.Count>0) {_logger.LogInfo($"{targetDecorations.Count} ein Modell gefunden, das zu '{TARGET_MODEL_NAME}' passt ");//Komponente foreach hinzufügen (var decoration in targetDecorations){if(decoration.Prefab!=null&&decoration.Prefab.GetComponent für jedes gefundene Zielmodell<SpaceKeyHandler>() ==null){_logger.LogInfo($"SpaceKeyHandler für {decoration.DisplayName} hinzufügen");decoration.Prefab.AddComponent<SpaceKeyHandler>(); }}}} catch(System.Exception ex){_logger.LogError($"Fehler beim Verarbeiten von Ornamenten: {ex.Message}");}}//Klasse zur Verarbeitung des Verhaltens von Ornamenten public class SpaceKeyHandler: MonoBehaviour {// Protokollierung bei der Initialisierung Instance._logger.LogInfo ($"SpaceKeyHandler initialisiert auf {gameObject.name});} private void Update () {// Leertaste direkt in der Komponente erkennt if(Input.GetKeyDown(KeyCode.Space)) {// Einfach Meldung beim Auslösen Instance._logger.LogInfo ($"Leertaste auf Ornamenten gedrückt: {gameObject.name}");}}

⚠ ️ Wichtiger Hinweis

Das Skript muss nicht unbedingt an das entsprechende Modell gebunden sein und kann bei Bedarf verarbeitet werden, um die Funktionalität zu verbessern. Zum Beispiel der obige Beispielcode kann nur inWenn ein Charakter im Menü angezeigt wirdDas Protokoll wird als Antwort auf Leerzeichen ausgegeben.

Warum soll das passieren?

Weil das Spiel inIch-PerspektiveDas nächste Mal wird die lokale Rolle übertragenDas Spielobjekt wird aufInaktiver ZustandSetActive (falsch))。

  • [Bohrgerät]Ist das übergeordnete Objekt, das das Rollenmodell enthält,Auch die dekorativen Modelle von MoreHead werden unter dieser Hierarchie montiert
  • Wenn es deaktiviert ist, entsprechend dem Funktionsmechanismus von UnityKomponenten aller untergeordneten ObjekteAktualisiertReparaturaktualisierungIso-Lebenszyklus-AnsatzWird nicht aufgerufen
  • Benutzerdefinierte Dekorationsmodelle werden ebenfalls platziert[Bohrgerät]Hierarchie unterhalb der Ebene, sodass, wenn Sie Skripte direkt auf dem Modell montieren, sobald Sie in die Ich-Perspektive eintreten, diese Skripte aufgrund des deaktivierten übergeordneten ObjektsKann nicht richtig ausgeführt werden
  • Und im SpielMenüoberflächeDas Rollenmodell bleibt immerAktivierungszustandZu diesem Zeitpunkt funktioniert das auf der Dekoration montierte Skript ordnungsgemäß, da Unity nur die Komponentenmethoden auf dem Spielobjekt im aktivierten Zustand ausführt.

SolcheUnterschiede im AktivierungszustandIst der entscheidende Punkt, der erklärt, warum sich dasselbe Skript in verschiedenen Szenarien inkonsistent verhält.

Wichtige Hinweise zur Multiplayer-Synchronisation

Obwohl aus Ich-PerspektiveSie können Ihr eigenes Dekorationsmodell nicht sehen(weil lokale [RIG] deaktiviert ist), aber das Spiel wird immer noch inSynchronisieren Sie Ihren Status im Netzwerk。 Das heißt, solange duKorrekte Handhabung der Multiplayer-Synchronisierungslogik, andere Spieler können immer noch die Änderungen und Bewegungen Ihres Dekorationsmodells sehen.

Selbst wenn ein natives Skript nicht ausgeführt wird, weil [RIG] deaktiviert ist, können Sie trotzdem überGLOBALER MANAGER ODERUm interaktive Effekte zu erzielen und zu lassenAlle Spieler sehen könnenÄnderungen, die in Ihrem Dekormodell stattfinden. Dies schafftInteraktive DekorationMöglichkeiten bietet.

Bei der Implementierung der Modellverhaltenslogik müssen Sie folgende Punkte beachten:

  1. Skript-Mounting-Richtlinie -Erwägen Sie alternative Methoden wie den Einsatz eines globalen Managers oder eines Event-Systems
  2. Unterschiede zwischen Szenenrollen und Menürollen -Einige Skripte funktionieren möglicherweise nur in bestimmten Kontexten
  3. Probleme bei der Synchronisation mehrerer Personen -Gewährleistung eines konsistenten Verhaltens zwischen den Netzwerkclients
  4. Aktivierungszustand der Komponente -Komponenten auf deaktivierten Spielobjekten führen die Update/FixedUpdate-Methode nicht aus
  5. Verwaltung von Ressourcen -Richtige Initialisierung und Reinigung von Ressourcen, um Speicherlecks zu vermeiden
  6. Netzwerkberechtigungen -Überlegen Sie, welche Aktionen lokal ausgeführt werden sollen und welche eine Netzwerksynchronisation erfordern



Zukünftige Aktualisierungspläne Zukünftige Aktualisierungspläne

  • Mehr Hüte

  • Screenshot der Dekoration mit Hilfe der Auswahl (Keine Garantie)

  • Mehr Hüte

  • Stellen Sie Screenshots für Dekorationen zur einfachen Auswahl bereit (Keine Garantie)



Info zum Autor Info zum Autor

Mosaik Mosaik:
Juriskat Calypso Yuris Katze Calypso:Bilibili

Bei Fragen und Anregungen senden Sie bitte eine Frage:
Bei Fragen und Anregungen senden Sie bitte Ausgaben:GitHub-Probleme

Möchten Sie uns mit Kaffee und gelben Energiekristallen unterstützen?
Möchten Sie uns Kaffee und gelbe Energiekristalle kaufen?
Spenden auf Hi-Fi

Whisper, wir machen ein Indie Spiel!
Flüsternd, wir machen Indie Spiele!

Dieses Tool wird von der Drittpartei [bufftool] bereitgestellt.Hinweis-Symbol

Mods jetzt herunterladen

Installieren Sie LagoFast, starten Sie R.E.P.O. und spielen Sie mit den Mods, die Sie lieben.