
Autor:YMC_MHZLetzte Aktualisierung:06/08/2025 08:42:5310.4M2.1MB
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

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.
).Elektrische Regelung, finden Sie in der unteren linken Ecke Schaltfläche „MoreHead“。


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.8Oder früher, bitte behaltenMenullibIm2.1.1Oder 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.8Oder eine frühere Version, stellen Sie sicher, dassMenullibImmer noch für2.1.1Oder 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.
→ 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.
MoreHead bietet mehrere Konfigurationsoptionen, die in der BepInEx-Konfigurationsdatei geändert werden können (BepInEx/config/Mhz.REPOMoreHead.cfg):
| 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.
| 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ächenUmschalt+Alles löschen Löschen Sie die gesamte schwarze Liste auf einmalAuf 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.jsonDatei, 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.
| 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.
| 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/ orBepInEx/Plugins/Morehead/Dekoration/ |
Kundenspezifische Dekorationsmodelle |
Anmerkung: [Einheit.persistentDataPath] Normalerweise aufgelöst als:
C: /Benutzer/[Ihrer Namen]/AppData/LocalLow/semiwork/Repo/~/.config/unity3d/semiwork/Repo/~/Bibliotheken/Anwendungsunterstützung/semiwork/Repo/MoreHead bietet mehrere Konfigurationsmöglichkeiten, die in der BepInEx-Konfigurationsdatei geändert werden können (BepInEx/config/Mhz.REPOMoreHead.cfg):
| 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.
| 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 schwarzenUmschalt+Alles löschen Alle Blacklist-Einträge können auf einmal gelöscht werdenKosmetikprodukte, 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.jsonDatei, 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.
| 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.
| 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:
C:/Users/[Ihr Benutzername]/AppData/LocalLow/semiwork/Repo/~/.config/unity3d/semiwork/Repo/~/Bibliotheken/Anwendungsunterstützung/semiwork/Repo/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.
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.
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.
💡 DieWeltweitMarkierungen 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.
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.
Modell in A einsetzen und an die richtige Position anpassen.
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
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.
Klicken Sie Alle AssetBundles erstellen, und dann finden 【Ihr Dekorationsname】.hhh Dateien in Vermögensbündelung Ordner.
Nur
. hhhFür die Installation sind Dateien erforderlich. Andere generierte Dateien können ignoriert werden.
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 verpackenMoreHead.dllDatei in Ihren Mod, nur. hhhDie Dateien und dieses Modul sind notwendig, um die Dekoration zu genießen.
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.
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。
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.
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.
💡WeltweitEtiketten 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.
Erstellen Sie ein leeres Objekt (genannt A) unter dem Zielteil und geben Sie es。
Dieser Name wird im Spiel als Ihr Dekorationsname angezeigt.
Legen Sie das Modell in A und stellen Sie es an die richtige Position ein。
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.
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.
Klicken SieAlle AssetBundles erstellen, und dann inVermögensbündelungIm Ordner gefunden[Ihr Dekorationsname].hhhDokumente.
Bei der Installation wird nur benötigt
Dateien, andere generierte Dateien können ignoriert werden.
将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.
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.
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.
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 |
Es gibt zwei Hauptmöglichkeiten, die API von MoreHead zu nutzen, um die Funktionalität zu erweitern:
Sie können ein AssetBundle einbetten () Datei als eingebettete Ressource direkt in Ihre DLL:
Dokumente im Projekt//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
. hhhDateien und verwenden Sie einfach Ihre DLLs für Skripteinjektion und Funktionsumsetzung.
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:
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 gebenAktualisiert,ReparaturaktualisierungUnd 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:
- Skript-Mounting-Richtlinie -Betrachten Sie den Einsatz eines globalen Managers oder eines Event-Systems als Alternative
- Unterschiede zwischen Szenenrollen und Menürollen -Einige Skripte funktionieren möglicherweise nur in bestimmten Kontexten
- Probleme bei der Synchronisation mehrerer Personen -Gewährleistung eines konsistenten Verhaltens zwischen den Netzwerkclients
- Aktivierungszustand der Komponente -Komponenten auf deaktivierten Spielobjekten führen die Update/FixedUpdate-Methode nicht aus
- Verwaltung von Ressourcen -Richtige Initialisierung und Reinigung von Ressourcen, um Speicherlecks zu vermeiden
- Netzwerkbehörde -Überlegen Sie, welche Aktionen lokal ausgeführt werden sollen und welche eine Netzwerksynchronisation erfordern
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.
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 |
Es gibt zwei Hauptmöglichkeiten, die API von MoreHead für die Funktionserweiterung zu nutzen:
Sie können das AssetBundle (. hhh) Die Datei wird direkt in die DLL als eingebettete Ressource eingebettet:
Dateien zu Ihrem Projekt hinzufügen//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.
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:
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 übertragen
Das Spielobjekt wird aufInaktiver Zustand(SetActive (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 Objekte的Aktualisiert、ReparaturaktualisierungIso-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:
- Skript-Mounting-Richtlinie -Erwägen Sie alternative Methoden wie den Einsatz eines globalen Managers oder eines Event-Systems
- Unterschiede zwischen Szenenrollen und Menürollen -Einige Skripte funktionieren möglicherweise nur in bestimmten Kontexten
- Probleme bei der Synchronisation mehrerer Personen -Gewährleistung eines konsistenten Verhaltens zwischen den Netzwerkclients
- Aktivierungszustand der Komponente -Komponenten auf deaktivierten Spielobjekten führen die Update/FixedUpdate-Methode nicht aus
- Verwaltung von Ressourcen -Richtige Initialisierung und Reinigung von Ressourcen, um Speicherlecks zu vermeiden
- Netzwerkberechtigungen -Überlegen Sie, welche Aktionen lokal ausgeführt werden sollen und welche eine Netzwerksynchronisation erfordern
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)
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!

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