Macros são o mesmo que gráficos de nós recolhidos. Elas têm um ponto de entrada e um ponto de saída designados por nós de túnel. Cada túnel pode ter qualquer número de pins de execução ou de dados que são visíveis no nó de macro quando usados em outros Blueprints e gráficos.
Como criar macros
Neste tutorial, você criará uma macro para verificar se um personagem tem energia suficiente para pular. Se tiver energia suficiente, a macro esgotará a energia do jogador, imprimirá o seu valor atual na tela e chamará a função de salto. Se não houver energia suficiente, a macro imprimirá na tela uma mensagem dizendo que "Ele está sem energia" e o impedirá de pular.
Neste exemplo, usaremos o Projeto de Blueprint em terceira pessoa com Conteúdo Inicial habilitado.
Após criar e inicializar seu projeto, vá para a pasta
Content/ThirdPerson/Blueprintse abra o Blueprint BP_ThirdPersonCharacter.Vá para a janela Meu Blueprint e clique no botão Adicionar macro.
Uma nova macro é criada. Selecione-a e pressione F2 para renomeá-la como EnergyCheck.
Com a macro selecionada, vá até Detalhes > Entradas, clique em +Adicionar para criar uma entrada chamada BeginCheck e mude o tipo para Exec** (pin de execução).
Vá para Detalhes > Saídas e clique em "+Adicionar para criar duas saídas. Nomeie um como HasEnergy e o outro como NoEnergy, em seguida defina os tipos de pin de execução.
Isso criará nós de entrada/saída no próprio nó da macro que podem ser usados para passar dados saindo e entrando da macro.
Para a entrada, use um pin de execução chamado BeginCheck para iniciar a macro. Em seguida, crie um código que verifica se o jogador tem energia suficiente para pular e, em caso afirmativo, executa o pin HasEnergy. Se o jogador não tiver energia suficiente, execute o pin NoEnergy.
Na janela Meus Blueprints, clique no botão Adicionar variável para criar uma variável float chamada Energy.
Na barra de ferramentas, clique em Compilar, selecione Energia e vá até o painel Detalhes para definir o valor como 100.
No gráfico Energia, clique em B + clique com o botão esquerdo para criar um nó Branch (Ramificação).
Blueprintcontext_graphSegurando CTRL, arraste a variável float Energia da aba Meu Blueprint para o gráfico de macros, clique e arraste o pin de saída para procurar um nó de operador Greater (Maior que) e conecte o pin de saída a Branch (Ramificação).
Segurando ALT, arraste a variável Energia para adicionar um nó Set (Definir).
Pressione CTRL e arraste Energia outra vez e conecte com o nó Subtract (Subtrair) (-), definido como 10 e conecte com o nó Set. Com esse código, definimos que se Energia é igual a 0 e subtraímos 10 do valor atual de Energia.
Clique com o botão direito no gráfico, adicione um nó Print String (Impressão de String) e conecte o nó Set Energy (Definir Energia) ao pin In String (Na String).
É adicionado um nó Conversion (Conversão) que converte o valor de Energia em uma string exibida na tela, exibindo seu valor.
No pin False de Branch, adicione outro nó Print String e insira o texto "Sem energia!" na caixa. Em seguida, conecte o primeiro e o segundo nó Print String aos pins HasEnergy e NoEnergy, respectivamente.
Blueprintcontext_graphAgora a macro está configurada para verificar (e, se aplicável, subtrair) a variável Energia e imprimir se o jogador tem energia suficiente ou não, o que é usado para determinar se o jogador pode pular ou não. Agora, você precisa implementar a macro depois de pressionar a tecla Saltar, mas antes que a ação Saltar seja executada.
Em EventGraph, arraste o pin Pressionado do nó InputAction Jump (Ação de Entrada Saltar) para EnergyCheck (Verificação de Energia).
Você verá que a macro criada está listada em Utilitários e tem o ícone Macro ao lado do nome.
Quando a macro é adicionada, o código de Saltar deve ser semelhante ao mostrado a seguir.
Clique nos botões Compilar e Salvar e feche o Blueprint.
Clique em Reproduzir na barra de ferramentas principal do editor.
Ao pressionar a barra de espaço para saltar, o valor de Energia é exibido no canto superior esquerdo da tela. Quando Energia estiver em 0, você não conseguirá mais saltar.
Resultado
Este é um exemplo básico do uso de uma macro para executar e consolidar um código em um único nó, melhorando a legibilidade do gráfico de evento e do código do personagem principal. Além disso, você pode fazer a chamada dessa macro em outras instâncias. Por exemplo, se tiver outra ação que reduz a energia do jogador e quiser verificar se ele tem energia suficiente para realizar a ação (como atacar), você pode executar esta macro para verificar se o jogador tem energia suficiente para realizar o ataque após pressionar a tecla Atacar e, em seguida, executar um ataque com base no pin de execução HasEnergy (Tem energia).