Morhead

Autor:YMC_MHZÚltima atualização:2025-08-06 08:42:5310.4M2.1MB

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

Introdução ao Mod

Cosméticos personalizáveis. Um módulo decorativo simples e divertido, com unitypackage para os jogadores importarem o modelo por conta própria.

Todos os modelos foram criados pelo gato de Yuri, Calypso, especificamente para este mod: 3
Todos os modelos são feitos porCaripso, o gato de YuriFazendo para este módulo: 3

Introdução à Introdução

Um mod decorativo simples e interessante que oferece um Para que os jogadores importem modelos personalizados.
Atualmente, apenas algumas decorações estão disponíveis, mas mais atualizações estão planejadas.
Menu Nick Mao mod é um pré-requisito.
Se você encontrar um problema de perda de energia, baixe Resistência fixa Modo.

Módulo de decoração simples e divertido, fornecendo unitypackagePara os jogadores importarem modelos personalizados.
Atualmente, há apenas algumas decorações, que continuarão sendo atualizadas no futuro.
É necessário instalar Menu Nick Mao Módulo frontal.
Se você encontrar um problema de perda de energia, baixe Resistência fixa Módulo.


*A boca de frango na captura de tela vem de EvenMoreHead.

Como usar Como usar

  1. Instale este mod E entre no jogo.
  2. Você pode encontrar O botão "MoreHead" no canto inferior esquerdo ou No salão ou Depois de entrar no nível (Pressione ).
  3. Clique no botão para alternar entre cosméticos.

  1. Instale este módulo, entre no jogo.
  2. Na fase de preparação do salãoApós entrar oficialmente no nível, pressione Despacho elétricoPode ser encontrado no canto inferior esquerdo Botão "MoreHead"
  3. Clique no botão para alternar entre cosméticos.








⚠ ○ Declaração de Compatibilidade Descrição de compatibilidade ⚠ ○

Clique para visualizar Clique para expandir

e Atualizado para 2.1.3, Morhead Deve ser atualizado para 1.3.0 Ou poderá funcionar normalmente mais tarde.

⚠ ○ Se você ainda estiver usando Morhead 1,2,8 Ou antes, por favor mantenha Menulib Em 2.1.1 Ou mais cedo para evitar problemas de compatibilidade.

Para a melhor experiência e estabilidade, recomendamos sempre usar a versão mais recente.


Atualizado para 2.1.3Portanto Morhead Precisa atualizar para 1.3.0 Ou uma versão mais alta pode funcionar normalmente.

⚠ ○ Se você ainda estiver usando Morhead 1,2,8 Ou uma versão anterior, certifique-se de Menulib Ainda 2.1.1 Ou versões anteriores, caso contrário, problemas de compatibilidade podem surgir.

Para garantir a melhor experiência e estabilidade, recomenda-se sempre usar a versão mais recente.


Previously: Versão anterior

1.2.8+
1.0.3 1.1.8+ É obrigatório.

Menulib 2.0.0 → Necessidade Morhead 1.2.8+
Menulib 1.0.3 → Necessidade Morhead 1.1.8+ versão.



Opções de Configuração Opções de Configuração

Clique para visualizar Clique para expandir

Inglês

MoreHead oferece várias opções de configuração que podem ser modificadas no perfil BepInEx (BepInEx/config/Mhz.REPOMoreHead.cfg):

Configurações de interface do usuário

Opções
EscButtonPosX A localização do botão X Morehead no menu ESC 0
EscButtonPosY A localização do botão y Morehead no menu ESC 0
Botão de lobby POSX A localização do botão X Morehead no saguão 0
Botões de lobby A localização do botão y Morehead no saguão 0

Ajustar esses valores permite que você reposicione os botões MoreHead quando eles entrarem em conflito com outros elementos da interface do usuário do mod.

Modo de lista negra

Opções Explicação Padrão padrão
Modo de lista negra Configure para "ENABLE_BLACKLIST" para habilitar a função de lista negra "" (desativado)

Quando o modo lista negra é ativado:

  • Pressione e segure a tecla de mudança e clique Adicionar/remover itens da lista negra no botão Decoração
  • Usar Shift+ Limpar todos Limpe toda a lista negra de uma só vez
  • ⚠ ○ Todas as alterações na lista negra entrarão em vigor após o reinício do jogo

Enfeites listados na lista negra não aparecerão no seu menu, o que é útil para esconder itens que você não quer usar.

💡 Recomenda-se que um jogador gerencie a lista negra por meio do código mod ou BepInEx/config/MoreHeadBlacklist.json Arquivos para garantir a sincronização da aparência em jogos multijogador.
💡 Antes de compartilhar, certifique-se de desativar o modo lista negra (limpar valores de configuração) para evitar alterações inesperadas por outros jogadores.

Extração de madeira

Opções Padrão padrão
ENBLEVERSELGING Ative registros detalhados para carregamento do modelo Falso

Habilite esta opção para visualizar registros mais detalhados sobre o processo de carregamento do modelo, o que ajuda na solução de problemas.

Localização do arquivo

Arquivos Caminho Explicação
MoreHeadConfig.json O perfil principal que armazena o status da decoração
MoreHeadOutfits.json [Unity.PersistentDatatath]/Repomodata/MoreHead/ Pode armazenar até 5 conjuntos de configurações de equipamento
mhz.repomorehead.cf Perfil BepInEx com posicionamento de interface do usuário e outras configurações
MoreHeadBlacklist.json BepInEx/config/ Arquivos de lista negra usados para ocultar decorações desnecessárias
Decoração (arquivo .hhh) BepInEx/plug-in/ ou
BepInEx/plug-in/Morhead/Decoração/
Modelo de decoração personalizado

Notas: [Unity.persistentDataPath] Geralmente é analisado como:

  • Windows: C:/Usadores/[Yournam]/APPDA/Local/semiwork/Repo/
  • Linux: ~/config/unity3d/semiwork/Repo/
  • Mac: ~/Biblioteca/Suporte ao aplicativo/semiwork/Repo/

Descrição do arquivo

  • MoreHeadConfig.json: Armazene o status habilitado/desativado de cada decoração (modo dispositivo único - para compatibilidade retrospectiva)
  • MoreHeadOutfits.jsonArmazene até 5 configurações decorativas diferentes, você pode alternar usando a interface do usuário ou a tecla de função F1-F5
  • mhz.repomorehead.cf: Inclui configurações de localização do botão da interface do usuário, alternância do modo de lista negra e
  • MoreHeadBlacklist.json: Contém uma lista de nomes de decorações que devem ser ocultos do menu da interface do usuário (o modo lista negra precisa ser habilitado)
  • Decoração. Arquivos hhh: Um pacote de ativos contendo um modelo 3D decorativo que pode ser colocado em qualquer lugar

Chinês

O MoreHead oferece várias opções de configuração que podem ser modificadas no arquivo de configuração BepInEx (BepInEx/config/Mhz.REPOMoreHead.cfg):

Configurações de interface do usuário

Opções Descrição Padrão padrão
EscButtonPosX Coordenadas X do botão MoreHead no menu ESC 0
EscButtonPosY Coordenadas Y do botão MoreHead no menu ESC 0
Botão de lobby POSX Coordenadas X do botão MoreHead no saguão 0
Botões de lobby As coordenadas Y do botão MoreHead no saguão 0

Ajustar esses valores pode reposicionar o botão MoreHead para evitar conflitos com os elementos da interface do usuário de outros módulos.

Modo de lista negra

Opções Descrição Padrão padrão
Modo de lista negra Configure para "ENABLE_BLACKLIST" para habilitar a função de lista negra ""(desativado)

Após ativar o modo lista negra:

  • Mudança +Clique Botão de cosméticos para adicionar/remover itens na lista negra
  • Usar Shift+ Limpar todos Todos os itens da lista negra podem ser limpos de uma só vez
  • ⚠ ○ Todas as operações relacionadas à lista negra só entrarão em vigor após o reinício do jogo

Cosméticos listados na lista negra não aparecerão no seu menu de decoração, o que é útil para esconder itens que você não quer usar.

💡 Recomenda que um jogador mantenha a lista negra compartilhando o código do módulo ou enviando-o diretamente BepInEx/config/MoreHeadBlacklist.json Arquivos para garantir a sincronização da aparência durante jogos multijogador.
💡 Certifique-se de desativar o modo lista negra (limpe a string de configuração) antes de compartilhar para evitar que outros jogadores o toquem acidentalmente e causem dessincronização de dados.

Registro

Opções Descrição Padrão padrão
ENBLEVERSELGING Logar detalhado para carregar o modelo Falso

Habilite esta opção para visualizar registros mais detalhados do processo de carregamento do modelo, o que ajuda na solução de problemas.

Localização do arquivo

Arquivos Caminho Descrição
MoreHeadConfig.json Projeto de configuração principal, status de decoração armazenado
MoreHeadOutfits.json [Unity.PersistentDatatath]/Repomodata/MoreHead/ Armazenar até 5 conjuntos de configurações de equipamento
mhz.repomorehead.cf Perfil BepInEx, que inclui posicionamento da interface do usuário e outras configurações
MoreHeadBlacklist.json BepInEx/config/ Arquivos de lista negra usados para ocultar decorações desnecessárias
Arquivos decorativos (arquivos .hh) BepInEx/plug-in/
BepInEx/plug-in/Morhead/Decoração/
Modelo de decoração personalizado

Atenção: [Unity.persistentDataPath] Geralmente corresponde a:

  • Windows: C:/Users/[Seu nome de usuário]/Appata/LocalLow/semiwork/Repo/
  • Linux: ~/config/unity3d/semiwork/Repo/
  • Mac: ~/Biblioteca/Suporte ao aplicativo/semiwork/Repo/

Descrição do documento

  • MoreHeadConfig.json: Armazene o status ativado/desativado de cada decoração (modo equipamento único - para compatibilidade retrospectiva)
  • MoreHeadOutfits.json:Armazene até 5 configurações decorativas diferentes, que podem ser alternadas pela interface do usuário ou tecla de função F1-F5
  • mhz.repomorehead.cf:Inclui configurações para localização do botão da interface do usuário, interruptores do modo lista negra e opções de login
  • Morehead Blacklist.json:Contém uma lista de nomes decorativos que devem ser ocultos no menu da interface do usuário (o modo lista negra precisa ser habilitado)
  • Decoração. Arquivos hhh: Aset Bundle contém modelos 3D decorativos que podem ser colocados em qualquer lugar



Como adicionar modelos Como adicionar modelos

Clique para visualizar Clique para expandir

Tutorial de inglês

  1. Configurar Unity (2022.3*Recomenda-se que o jogo use tubos de renderização integrados, preste atenção ao material do modelo correspondente), Importação MoreHead-Asset-Pack_v1.3.unitypackage.

    📥 Baixe unitypackage

  2. Importar seu modelo e Arrastar Avatar do jogador Pré-fabricado na cena.

    Certifique-se de que seu modelo seja compatível com a Unity e montado corretamente, se houver animação.

  3. Encontre as seguintes peças Em Avatar do jogadorO modelo será colocado em:

    Nome Explicação Etiquetas
    Decoração na cabeça (não mova) Cabeça levantada ao falar Cabeça
    Decoração de pescoço (não mova) Área do queixo/peito pescoço
    Decoração da carroceria (não mova) Corpo Corpo
    Decoração do quadril (não mova) Área do quadril/parte inferior do corpo glúteos
    Decoração de braço em L (não mova) Braço esquerdo Braço esquerdo
    Decoração do braço R (não mova) braço direito braço direito
    Decoração de perna L (não mova) perna esquerda perna esquerda
    Decoração de perna R (não mova) perna direita perna direita
    Decoração Mundial (Não se mova) Siga a posição do caractere, mas mantenha-a horizontalmente

    ⚠ ○ Essas posições são referências para pontos de ancoragem. Não modifique as coordenadas, caso contrário seu modelo ficará deslocado no jogo.
    💡 TE Mundo As marcações são úteis para decorações que devem permanecer horizontais, independentemente do movimento do personagem.
    💡 Etiquetas relacionadas aos membros (braço esquerdo, braço direito, perna esquerda, perna direita) podem ser visualizadas juntas sob a etiqueta principal "membro" do jogo.

  4. Crie um objeto vazio sob a parte alvo (A) e nomeie-o.

    Este nome será exibido no jogo como seu nome decorativo.

  5. Coloque o modelo em A e ajuste-o para a posição apropriada.

  6. Arraste A para Projeto Usado para criar janelas predefinidas.

    ⚠ ○ Observação: evite adicionar conjuntos de colisores ao modelo decorativo, pois eles podem afetar a física do personagem, causando problemas de rotação ou movimento instável. Para interações de colisão, considere tecnologias alternativas.

  7. Executar Ferramentas → Gerador de decoração de cabeçaArraste seu A prefab (ou mais, com suporte para exportação em lote) para o painel de script, selecione a parte correspondente na etapa 3 e, em seguida, Clique Adicionar o modelo à lista.

    Certifique-se de escolher a parte certa do seu corpo (cabeça/pescoço/corpo/quadris, etc.) que combine com o local onde você coloca suas decorações.

  8. Clique Construa todos os assetbundlese então encontre [Nome da sua decoração].hh Arquivos em Agrupamento de ativos pasta.

    Somente .hhh Arquivos são necessários para instalação. Outros arquivos gerados podem ser ignorados.

  9. Móvel Arquivo para BepInEx\plug-in (O jogo carregará todos os arquivos .hh na pasta plugins. Se você não tiver certeza sobre onde colocá-los, pode colocá-los \MoreHead\Decorações Para melhor organização).

    ⚠ ○ Para visibilidade de jogos multijogador: você e seus amigos devem ter o mesmo Instalar arquivos para ver a decoração correta.
    ⚠ ○ Por favor, não embale Morehed.dll Arquivos no seu Mod, somente .hhh Arquivos e este módulo são essenciais para aproveitar a decoração.

  10. Comece a jogar e aproveite!

    Pressione a tecla ESC no jogo e encontre "MoreHead" no canto inferior esquerdo para acessar sua nova decoração.

Tutorial de chinês

  1. Unidade de implantação(Versão recomendada para 2022.3*, o jogo usa pipeline de renderização integrada, preste atenção ao material do modelo correspondente), Importação MoreHead-Asset-Pack_v1.3.unitypackage

    📥 Baixe o unitypackage

  2. Importar o modelo e Arrastar peças pré-fabricadas para dentro da cena

    Certifique-se de que seu modelo seja compatível com a Unity e, se houver animação, você precisa vincular o esqueleto corretamente.

  3. Encontrar Avatar do jogador As partes a seguir correspondem ao local onde o modelo será posicionado

    Nome Descrição Etiquetas
    Decoração na cabeça (não mova) A cabeça é levantada ao falar Cabeça
    Decoração de pescoço (não mova) Queixo/peito pescoço
    Decoração da carroceria (não mova) Corpo Corpo
    Decoração do quadril (não mova) Núteos/parte inferior do corpo glúteos
    Decoração de braço em L (não mova) Braço esquerdo Braço esquerdo
    Decoração do braço R (não mova) Braço direito braço direito
    Decoração de perna L (não mova) perna esquerda perna esquerda
    Decoração de perna R (não mova) perna direita perna direita
    Decoração Mundial (Não se mova) Siga a posição do personagem, mas mantenha-se horizontalmente

    ⚠ ○ Essas posições são referências para pontos de ancoragem coordenadas. Não modifique as coordenadas, caso contrário seu modelo ficará deslocado durante o jogo.
    💡 Mundo As etiquetas são adequadas para decorações que precisam ser mantidas horizontalmente, independentemente de como o personagem se
    💡 Etiquetas relacionadas a membros (leftarm, RigTARM, leftleg, RigTARG) podem ser visualizadas uniformemente no jogo através da etiqueta principal "LIMBS".

  4. Crie um objeto vazio (chamado A) abaixo do local alvo e o nomeie

    Este nome será exibido no jogo como o nome da sua decoração.

  5. Coloque o modelo em A e ajuste-o para a posição apropriada

  6. Arraste A paraProjetoJanela, crie pré-fabricação

    ⚠ ○ Dica: Não adicione componentes de colisão ao modelo decorativo. O objeto de colisão pode afetar o comportamento físico do personagem, resultando em rotações anormais ou movimentos instáveis Se você precisar de interação de colisão, considere usar outras tecnologias para implementá-la.

  7. ExecutarFerramentas → Gerador de decoração de cabeçaArraste para dentro do pré-fabricante A (ou mais, suporta exportação em lote) e selecione a parte correspondente na etapa 3. Em seguida,Adicionar o modelo à lista

    Certifique-se de escolher a parte certa do corpo (cabeça/pescoço/corpo/quadris, etc.) que corresponda à posição onde você coloca a decoração.

  8. CliqueConstrua todos os assetbundlese então emAgrupamento de ativosEncontrado na pasta[Nome da sua decoração].hhArquivos.

    Somente para instalarArquivos, outros arquivos gerados podem ser ignorados.

  9. Mova o arquivo paraBepInEx\plug-in(Iniciar o jogo carregará todos os arquivos .hh no plugins. Se você não sabe onde colocá-los, pode colocá-los\MoreHead\DecoraçõesFácil de gerenciar).

    ⚠ ○ Visibilidade de jogos multijogador: você e seus amigos devem instalar o mesmo.hhhOs arquivos podem ver a decoração correta um do outro.
    ⚠ ○ Não embaleMorehed.dllArquivos no seu Mod, basta.hhhOs arquivos e o mod podem ser usados para brincar com os acessórios.

  10. Comece o jogo e aproveite a decoração!

    Pressione ESC no jogo e encontre "MoreHead" no canto inferior esquerdo para acessar sua nova decoração.



API e Extension de Desenvolvedor Deveeloper & Extension

Clique para visualizar Clique para expandir

Documentos em inglês


A partir da versão 1.2.4, o MoreHead fornece uma API pública para extensões. Essas interfaces permitem que os desenvolvedores carreguem programadamente recursos AssetBundle, injetem scripts personalizados e aprimorem recursos decorativos.

API Público

As seguintes interfaces comuns estão disponíveis em Gerente de Cabeça Categoria:

Método Explicação
LoadexternassetsBundley FromassBly (Assemby) Todos carregados .hhh Especificar os recursos incorporados na coleção
Recrie () Atualize a interface do usuário para exibir decorações recém-
GetdeCoronSFromassemby (Assemby) Retornar uma lista de todas as decorações carregadas da coleção especificada
Getdecoracidade GameBJECTSFROMSBLY (AssMBLY) Retornar a lista de predefinições de GameObject carregada da coleção especificada
Getdecoration Byname (assembleia de assembleia, assembleia de sequência) Procure decorações específicas por nome em um conjunto de programas especificado
FinddeCorrionSBYTIAME (Assembleia, Assembleia de string) Pesquise por decorações que contêm nomes específicos

Método de integração

Existem duas maneiras principais de expandir a funcionalidade usando a API do MoreHead:

1. Incorpore ASSETBUDLES como recurso

Você pode incorporar AssetBundle () O arquivo é inserido diretamente no seu DLL como um recurso incorporado:

  1. Crie AssetBundles de acordo com o processo padrão delineado na seção "Como adicionar um modelo"
  2. No Studio Visual (ou preferencial IDE):
    • Adicionar Arquivos no projeto
    • Defina suas "operações de construção" para "recursos incorporados"
  3. No código de inicialização do plug-in:
    //Carregar todos os recursos .hhh incorporados assemble.getexutingessembley() da sua montagem; Morehead.HeaddeCoronManager.LoadexternassetbundlesFromassemby (assemby); Morehead.HeaddeCortionManager.Recreateeui ();
    

NotasIncorporar recursos em DLL não é obrigatório. Você também pode usar o método padrão do MoreHead para carregar o local .hhh Arquivos e simplesmente use seu DLL para injeção de script e implementação de funções.


2. Injeção de script programado

Você pode escrever scripts para acessar e modificar decorações, sejam elas carregadas de DLL ou de outras fontes:

  1. Use a API fornecida para acessar pré-fabricação decorativa
  2. Adicionar componentes/scripts personalizados para aprimorar a funcionalidade
  3. Realize sua própria lógica de comportamento decorativo

Exemplo de implementação

Use BepInEx Use BepInEx.Logging Use o sistema. Reflexão; Use UnityEngine Use System.Collections.Generic Nomencespaço Mycustome {[BEPUGIN ("COM.RePRIMENCIN", "CUGIN", "1.0.0")][BEPUGIN ("mhz.RePRIMENCIN", BEPUGIN ("CUGIN", BEPUGIN = CUGIN = CUGIN = CUGIN = CUGIN) _logger.LogInfo("LogInfo com decoração personalizada"); //Carregar decorações e configurar o manuseador LoaddeCorrions(); }private Voice LoaddeCorrions(){try{//Obtenha a montagem atual assemble.getemboly()//Carreja todos os recursos .hh do DLL atual Morhead.HeaddeCorrions Manager.LoaddeCorrions Manager.LoaddeCorrions Manager.LoaddeCorrions Manager.LoaddeCorrions/Recrie o modelo específico de busca com um novo modelo de alvo/Recrie um novo modelo de busca com uma lista específica./Recrie um novo modelo de busca<MoreHead.DecorationInfo>TargetdeCorrions=Morehead.HeaddeCorrions Manager.FinddeCorrions ByPartialNome (Target_Mode_Nome); if(target.com>0){_loggen.loggenfo($"foundation{target.com}Modification corresponde '{target.com Modification}'") //Adicionar componentes a cada formulação do modelo de alvo encontrado (varget.com em target.com){(target.com) {(target.com) {(target.com}}} Modification corresponde _{target.com Modification}'")/Adicionar componentes a cada formulação do modelo alvo encontrado (varget.com Modification} Modification}" =<SpaceKeyHandler>()==null){_Logener.Logener.Logenerfo($"Adicione spacecekeyanler a {decoration.DisplayName}"); decoration.Prefab.AddComponent<SpaceKeyHandler>(); {System.exposição ex){_Loger.Logerror($"Prosecutor:{Ex.Messensações}");}/Classe pública Classe usada para lidar com comportamentos decorativos Space.com: Monobeavio,{Prime_Prosecutor.Logerror($ {Ex.Messensações de Prosecutor:{Ex.Messensações de Prosecutor:{Ex.Messensações de Prosecutor:{Ex.Messensações de Prosecutor:_Pressione a tecla de inicialização do componente de Prosecutor._NK") (") (") (") (") (") (

⚠ ○ Notas importantes

Os scripts não precisam necessariamente estar vinculados aos modelos correspondentes — eles são implementados conforme necessário para obter a funcionalidade correta. Por exemplo, o código de exemplo acima só responde ao pressionamento da barra de espaço quando os caracteres são exibidos no menu.

Por que isso acontece?

Porque de uma perspectiva em primeira pessoa, o jogo define personagens locais [sonda de perfuração] Objetos do jogo inativo (SetActive (falso)).

  • É um objeto pai que contém um modelo de personagem e A decoração Morhead também é instalada sob esta estrutura em camadas.
  • Quando De acordo com o mecanismo da Unity, Todos os componentes de um objeto filho Não haverá eles Atualização, Reparar e atualizar e outros métodos do ciclo de vida Chamado.
  • Modelos decorativos personalizados também são colocados em [sonda de perfuração] Estrutura hierárquica, então, quando você anexa scripts diretamente ao modelo, esses scripts entram na visão em primeira pessoa Não pode ser executado normalmente Porque o objeto pai é desativado.
  • No entanto, no jogo Interface do menuO modelo de personagem é sempre mantido AtivoPortanto, scripts anexados à decoração funcionam corretamente, porque a Unity só executa métodos de componentes em gameobjetos ativos.

Isto Diferença no estado de ativação É o ponto-chave para explicar por que o mesmo roteiro se comporta de forma diferente em cenários diferentes.

Precauções importantes sobre a sincronização multijogador

Embora de uma perspectiva em primeira pessoa Não consigo ver meu próprio modelo de decoração (Porque o equipamento local é desativado), o jogo ainda Sincronize seu status pela rede.Isso significa que enquanto você Lidar corretamente com a lógica de sincronizaçãoOutros jogadores ainda podem ver as mudanças e movimentos do seu modelo de decoração.

Portanto, mesmo que o script local não possa ser executado devido à desabilitação de [RIG], você ainda pode passar Gerenciador global ou mecanismo de sincronização de rede, permite Todos os jogadores para visualizar Alterações no seu modelo decorativo. Isto é para Decoração interativa.

Pontos-chave a serem considerados ao implementar a lógica comportamental do modelo

  1. Estratégia de montagem de script -Considere usar gerenciadores globais ou sistemas de eventos como alternativa
  2. A diferença entre personagens de cena e personagens de menu -Alguns scripts podem funcionar apenas em um contexto específico
  3. Problemas de sincronização entre várias pessoas -Garantir o comportamento consistente entre os clientes da rede
  4. Status de ativação do componente -Componentes em objetos de jogo desativados não executam métodos UPDE/FixEDUPDE
  5. Gestão de Recursos -Inicializar e limpar recursos corretamente para evitar vazamentos de memória
  6. Autoridade da Internet -Considere quais operações devem ser executadas localmente e quais exigem sincronização de rede

Documentos chineses


A partir da versão 1.2.4, o MoreHead oferece uma interface de API pública para funções estendidas. Essas interfaces permitem que os desenvolvedores carreguem programadamente recursos AssetBundle, injetem scripts personalizados e aprimorem a funcionalidade da decoração.

Interface API pública

A seguir estãoGerente de CabeçaInterfaces comuns disponíveis na classe:

Método Explicação
LoadexternassetsBundley FromassBly (Assemby) Carregar todos os incorporados na coleção especificada.hhhRecursos
Recrie () Atualize a interface do usuário para exibir decorações recém-carregadas
GetdeCoronSFromassemby (Assemby) Retornar uma lista de todas as decorações carregadas da montagem especificada
Getdecoracidade GameBJECTSFROMSBLY (AssMBLY) Retornar uma lista de todos os pré-fabricantes de Gameobjett carregados da montagem especificada
Getdecoration Byname (assembleia de assembleia, assembleia de sequência) Encontrar decorações específicas na coleção especificada por nome
FinddeCorrionSBYTIAME (Assembleia, Assembleia de string) Pesquise por decorações que contêm nomes específicos

Método de integração

Existem duas maneiras principais de usar a API do MoreHead para expandir recursos:

1. Incorpore AssetBundle como recurso

Você pode adicionar AssetBundle (.hhh) Os arquivos são incorporados diretamente em DLL como recursos embarcados:

  1. Crie o AssetBundle de acordo com o processo padrão na seção "Como adicionar um modelo"
  2. No Visual Studio (ou o IDE que você escolher):
    • Arquivos adicionados ao seu projeto
    • Defina suas "operações de geração" para "recursos incorporados"
  3. No seu código de inicialização do plug-in:
    // Carregar todos os recursos .hhh incorporados assembley assembley da sua montagem = assembley. getexcutinGassembley(); Morehead.HeaddeCoronManager.LoadexternassetbundlesFromassemby (assemby); Morehead.HeaddeCortionManager.Recreateeui ();
    

AtençãoIncorporar recursos em DLL não é necessário. Você também pode usar o método padrão MoreHead para carregar localmente.hhhArquivos, usando apenas seu DLL para injetar scripts e implementar funções.


2. Injeção de script programado

Você pode escrever scripts para acessar e modificar decorações, sejam elas carregadas do seu DLL ou de outras fontes:

  1. Use a API fornecida para acessar a pré-fabricada decorativa
  2. Adicionar componentes/scripts personalizados para aprimorar a funcionalidade
  3. Implemente sua própria lógica de comportamento decorativo

Exemplo de implementação

Use BepInEx Use BepInEx.Logging Use o sistema. Reflexão; Use UnityEngine Usando System.Collections.Generic namespace MyCustomDecorations {[BepInPlugin ("com.yourname.customdecorations", "modos decorativos personalizados", "1.0.0") ][Complementação ("mhz.repomorhead", complementação ("mhz.repomorhead")]Complementação pública: complementação (mhz.repomorhead")]Complementação pública (complementação (complementação) = complementação (complementação (complementação) = complementação (complementação) (complementação (complementação) (complementação) (complementação) (complementação (complementação) //Nome do modelo de destino private void Awaake(){Instance=Thé;_Logister=Logister;_Logister;_Logister("Modo de decoração personalizado foi carregado");//Carregar decorações e configurar script de processamento Logister Corrients()}Logister Voice Logister=Logister = Logister Corrients atuais no conjunto de carregamento Logister Corrients { // Reconstrua a interface do usuário para exibir o modelo recém-carregado Morehead.HeidecoratonManager.recreateui(); // List de modelos específicos para encontrar nomes de alvo correspondentes<MoreHead.DecorationInfo>TargetdeCorrions=Morehead.HeaddeCorrions Manager.FinddeCorrions ByPartialNome (Target_Mode_Nome); if(target.com>0){_loggen.loggenfo($"Encontre {target.com} Um modelo que corresponde '{target.com}' {target.com Modelo_Nome}'") //Adicione o componente foreach (varget.com) {if(target.com){if(target.com) {if(target.com Modelo_Nome}'"Adicione o componente para cada modelo alvo encontrado) =Numme&F!<SpaceKeyHandler>()==nul){_logger.logger.logger.($" para {decoration.DisplayName} adicionar spacecekeyhanler"); decoration.Prefab.AddComponent<SpaceKeyHandler>(); }} catch(System. Excession ex){_Loger.Logerr($"Erro ao processar decorações:{ex.Message}");}} ///Classe usada para processar comportamentos decorativos{Logerr: Monoheavior{DOMAAMAA$ {DOMAAMAAMAATA$ (_SPRAInitializa" no componente "G.K} Pressionar a tecla de inicialização (DOMAAMAA$/SPRAInitializa (G.K}) _______________Initimizar a tecla a tecla" (__________Initializa mens_Initializa mens_Initializa mens_Initializa mens___________________________________) (DODOMAInitializa mens_) Initializa mens________________________________________________________Initializa mens_Initializa mens_ ______________________________________________________________________DOMAADOMATInitializa de

⚠ ○ Dicas importantes

Os scripts não precisam necessariamente estar vinculados ao modelo correspondente; eles podem ser processados sob demanda para melhorar a funcionalidade. Por exemplo, o código de exemplo acima só pode ser usadoQuando um personagem é exibido no menuRegistro de saída de espaço de resposta.

Por que isso está acontecendo?

Porque o jogo estáPerspectiva em primeira pessoaO próximo personagem local seráO objeto do jogo é definido comoEstado não ativadoSetActive (falso))。

  • [sonda de perfuração]É um objeto pai que contém um modelo de personagem,O modelo decorativo do MoreHead também é montado neste nível
  • Quando desativado, de acordo com o mecanismo de funcionamento da Unity,Componentes de todos os objetos filhosAtualizaçãoReparar e atualizarMétodos do ciclo de vidaNenhum será chamado
  • O modelo de decoração personalizado também é colocado em[sonda de perfuração]Então, quando você monta scripts diretamente no modelo, quando você entra na perspectiva de primeira pessoa, esses scripts serão desativados porque o objeto pai é desativado.Não pode ser executado normalmente
  • E no jogoInterface do menuNo, o modelo de personagem é sempre mantidoEstado de ativaçãoNeste momento, os scripts montados na decoração funcionam normalmente porque a Unity só executa métodos de componentes em objetos de jogo ativados.

EsteDiferenças nos estados de ativaçãoÉ o ponto-chave, que explica por que o mesmo roteiro se comporta de forma inconsistente em cenários diferentes.

Nota importante sobre sincronização multijogador

Embora de uma perspectiva em primeira pessoaVocê não consegue ver seu próprio modelo decorativo(Porque o local [RIG] é proibido), mas o jogo ainda estará emSincronize seu status na rede。 Isso significa que enquanto vocêLidar corretamente com a lógica de sincronização multijogadorOutros jogadores ainda podem ver as mudanças e movimentos do seu modelo decorativo.

Portanto, mesmo que o script local não seja executado porque [RIG] é desativado, você ainda pode passarGerenciador global ou mecanismo de sincronização de redePara alcançar efeitos interativos, deixeTodos os jogadores podem verMudanças no seu modelo decorativo. Isto é para a criaçãoDecoração interativaOferece possibilidades.

Os seguintes pontos devem ser observados ao implementar a lógica comportamental do modelo:

  1. Estratégia de montagem de script - Considere usar métodos alternativos, como gerenciadores globais ou sistemas de eventos
  2. A diferença entre personagens de cena e personagens de menu - Alguns scripts podem funcionar apenas em um contexto específico
  3. Problemas de sincronização entre várias pessoas - Garantir o comportamento consistente entre os clientes da rede
  4. Status de ativação do componente - Componentes em objetos de jogo desativados não executam métodos UPDE/FixEDUPDE
  5. Gestão de Recursos - Inicialize e limpe os recursos corretamente para evitar vazamentos de memória
  6. Permissões de rede - Considere quais operações devem ser realizadas localmente e quais exigem sincronização de rede



Plano de atualização futura Plano de atualização futura

  • Mais chapéus

  • Capturas de tela de decoração para seleção auxiliar (Não garantido)

  • Mais chapéus

  • Forneça capturas de tela para decorações para fácil seleção (Não garantido)



Informações do autor Informações do autor

mosaico Mosaico:
Juriscat Calipso Caripso, o gato de Yuri:Bilibili

Caso tenha alguma dúvida ou sugestão, envie a seguinte pergunta:
Caso tenha alguma dúvida ou sugestão, envie-a para o iSUES:Problemas de GitHub

Quer nos apoiar com café e cristais de energia amarelos?
Quer nos oferecer café e comprar cristais de energia amarelos?
Doe para a alta fidelidade

Sussurrando, estamos fazendo um jogo independente!
Deixe-me sussurrar, estamos fazendo um jogo independente!

Esta ferramenta é fornecida por terceiros [bufftool]Ícone de atenção

Baixe Mods Agora

Instale o LagoFast, inicie R.E.P.O. e brinque com os mods que você ama.