‫Olá e bem-vindo.
‫Nesta palestra, veremos como podemos criar novos nós em blueprints de C++ para que,
‫essencialmente, possamos chamar a funcionalidade C++ de dentro de blueprints.
‫Vamos mergulhar e ver como isso é feito agora tão bem que posso usar blueprints para chamar nós de blueprint,
‫mas na verdade eu quero ativar nosso grabber a partir deste pedaço de blueprint aqui, não imprimir algumas strings.
‫Então, como eu vou fazer isso?
‫Bem, felizmente, podemos facilmente expor uma função de uma classe C++ para o blueprint.
‫E a maneira como fazemos isso é a seguinte.
‫Então vamos criar uma nova função pública.
‫Então, vou para minha seção pública logo abaixo do componente tick.
‫E aqui vou criar uma nova função com um tipo de retorno void chamado release.
‫Então, vamos pegar mais tarde, mas vamos chamar uma função de liberação por enquanto.
‫Como faço para disponibilizar isso no Blueprint?
‫Bem, eu preciso torná-lo uma nova função.
‫Então você tem novas propriedades para variáveis.
‫Sua função é o equivalente a tornar uma função basicamente visível na terra do projeto.
‫Mas não paramos com isso.
‫Assim como com a nova propriedade.
‫Temos que fazer uma edição em qualquer lugar aqui com a função U, temos que torná-lo um blueprint que pode ser chamado
‫e isso, como o nome sugere, significa que essa função agora se torna um nó ao qual o blueprint tem acesso.
‫Então vamos pegar um CP e criar uma implementação para isso.
‫Será do tipo de retorno void.
‫Vai ser um você pega dois pontos, dois pontos release, sem parâmetros e vamos colocar um corpo de função, que
‫eu vou colocar um novo log in e vou dar a mensagem, ser liberado grabber assim .
‫E então podemos compilar e voltar no nosso BP player, vou deletar o nó da string de impressão
‫e vou arrastar o release aqui e vou procurar por release como uma função aqui.
‫Agora vamos dar uma olhada ao redor.
‫Nada está aparecendo no momento porque eu preciso fazer isso no grabber.
‫Então, vamos pegar o componente grabber, arrastá-lo para o gráfico de eventos para criar uma variável
‫grabber e arrastá-lo e procurar por liberação.
‫Agora, observe que nada está acontecendo neste caso também.
‫E isso porque usamos codificação ao vivo.
‫E às vezes as coisas que são compiladas na codificação ao vivo não aparecem no editor.
‫O que temos que fazer é fechar o editor, fechar a janela de codificação de luz e,
‫em seguida, no código do Visual Studio, pressionar o shift de controle B e compilar usando o Crypt Reader Editor quando o desenvolvimento
‫64 for compilado, esperar que isso seja bem-sucedido e, em seguida, reinicie o editor do arquivo do projeto.
‫Agora, se reabrimos nosso BP player e agora arrastamos o grabber, procuramos por liberação.
‫Você pode ver que agora há uma nota chamada release.
‫E, de fato, tudo o que vai fazer é esfriar nosso C++.
‫Assim, você pode ver como pode realmente usar o Blueprint e o C++ em estreita colaboração dessa maneira, expondo as
‫coisas do C++ ao mundo do Blueprint.
‫Agora vou conectar minha caneta de execução de lançamento ao nó de lançamento.
‫Nós vamos entrar em nossa masmorra e vamos apertar o play.
‫E agora, se eu pegar e soltar, você não verá nada porque está no log de saída.
‫Então, vamos abrir o log de saída e encaixá-lo no layout, depois clicar em play novamente.
‫E agora, quando pegamos e soltamos, você pode ver que há uma breve mensagem lá.
‫Ele rola muito rapidamente porque cada tick que estamos fazendo isso atinge a estátua de status de gárgula.
‫Mas então se você parar e olhar para trás através do log, você pode ver que disse vovô liberado.
‫Então nosso código C++ está sendo executado.
‫Ok, agora eu gostaria que você mudasse nosso código de varredura para uma função de captura.
‫Então você vai criar uma função de captura e chamá-la do Blueprint.
‫Você pode fazer da mesma maneira que acabei de fazer a função de liberação.
‫Mas quando você cria o corpo da função grab em vez de apenas imprimir
‫qualquer coisa, vamos mover esse código abrangente e a instrução if e todas as variáveis de preparação do TIC para que ele não faça isso.
‫Toda vez que pegamos dois, apenas quando chamamos essa função de captura, quando pressionamos o botão do mouse
‫ou pressionamos um gatilho em nosso controlador, então recompile e verifique os logs para ter certeza de que isso só está
‫acontecendo quando você pressiona o botão , pause o vídeo e experimente.
‫OK.
‫Bem vindo de volta.
‫Então vamos para o nosso C++ e vamos para o nosso arquivo de cabeçalho.
‫Vou fechar a janela de compilação aqui e acima do release, vou criar um novo
‫blueprints de função que pode ser chamado, que será void chamado grab.
‫E vamos implementar isso no C++.
‫Então, novamente, vai ser um vazio.
‫Você pega dois pontos, dois pontos pega parênteses e depois chaves.
‫E vou mover todo esse código do componente TIC porque estamos configurando nossos vetores de início e todo esse tipo
‫de coisa boa.
‫Vamos descer até o fim e recortar e colar no lugar onde deveria estar.
‫Bem.
‫Agora vamos ver se a codificação ao vivo trará a nova função no player BP.
‫Vamos até o player BP, exclua nossa string de impressão e vamos arrastar isso.
‫Pegue um nó que temos e veja se podemos encontrar uma função de captura.
‫Ok, então desta vez a função grab estava disponível para nós.
‫Isso é ótimo.
‫Agora vamos conectar o pino de execução pressionado, ir até nossa masmorra, apertar play e ter certeza de rolar para baixo até o
‫final do log de saída.
‫Vou clicar com o botão direito do mouse na minha viewport e dar uma olhada ao redor e então eu vou pressionar meu botão esquerdo.
‫Diz que nenhum ator bate e, em seguida, instantaneamente o lançador.
‫Então agora o ator bate e então eu solto a chave.
‫Sem garra de liberação.
‫Agora esqueci minha gárgula.
‫Dê uma olhada nisso.
‫Eu pressiono e diz, Ator atingiu a estátua de Gogol e então eu posso soltar o agarrador.
‫Então agora temos o tipo certo de arquitetura no lugar.
‫Para pegar esta gárgula.
‫Em seguida, precisamos lidar com a parte física dessa configuração.
‫Nos vemos na próxima palestra.