UE4 Inventário para Multiplayer # 3 | Estrutura de interação




Neste artigo, veremos a estrutura de inventário que apliquei ao meu projeto multiplayer. Esta seção é muito pequena e não contém código.


O inventário em si é um componente usado não apenas para o Personagem , mas também para qualquer objeto no jogo que, de acordo com o cenário, pode ser um armazenamento de itens. Por exemplo: baú, caixa, caixa, armário, etc.




Este componente contém um TArray , cujos elementos armazenam o mínimo de informações necessárias:


  1. O identificador do objeto, na forma de uma GameplayTag . Como eu disse anteriormente, GameplayTag é mais conveniente do que, digamos, FName , pois reduz significativamente o risco de erros.
  2. O número de objetos no slot especificado pela variável int .
  3. Categoria do objeto para entender como ele pode ser aplicado. Para esse fim, em vez de Enum, você pode usar GameplayTagsContainer , o que nos permitirá atribuir o objeto a vários tipos de uma só vez, se necessário.
  4. Propriedades exclusivas do objeto, que são armazenadas como uma estrutura de um monte de GameplayTag e float . Aqui você pode armazenar parâmetros e modificadores.

Não há links para os próprios objetos nessa estrutura de inventário, pois após salvar e carregar o jogo, eles se referem a áreas que já armazenam outros dados. Assim, você precisa de alguma ferramenta que possa restaurar (reaparecer) todos os objetos após o carregamento do jogo. Aqui o DataAsset trata do resgate , que está sempre disponível no lado do servidor (porque no nosso caso, nós o conectamos via GameMode ) e está pronto para ajudar a colocar o objeto no palco.


O componente de inventário também contém a lógica para remover e adicionar o número necessário de objetos, a lógica para preencher os slots. Todas as funções iniciadas no contêiner devem funcionar apenas no lado do servidor.


A estrutura da interação do inventário e banco de dados é a seguinte

Propriedades exclusivas do objeto, como componentes adicionais e lógica, são facilmente configuradas usando C ++ e / ou Blueprint .


Na próxima seção, mostrarei como você pode conectar o componente criado ao Character ou a qualquer outro objeto.


Qualquer crítica construtiva é bem-vinda. De preferência, apoiado por sugestões.


PS Nos dois primeiros artigos, foram adicionadas imagens explicativas.

Source: https://habr.com/ru/post/pt419347/


All Articles