‫Olá e bem-vindo.
‫Nesta aula, veremos uma função especial chamada construtor que nos permite
‫fornecer valores padrão para propriedades em nossa classe.
‫E veremos quando é chamado no editor.
‫Vamos mergulhar e descobrir.
‫Agora, com este componente de gatilho, gostaria de adicionar uma função de componente de
‫carrapato aqui para que possamos verificar quais componentes, quais outros atores estão atualmente sobrepondo esse componente de gatilho
‫e podemos ativar se for o tipo certo de ator.
‫O problema é, bem, vamos ver qual é o problema.
‫Vamos tentar implementar uma função tick se formos para o grab para ver como deve ser a declaração
‫de uma função de componente, ela precisa estar na seção pública.
‫É um vazio virtual, componentes de carrapato, tempo delta.
‫Há muitos parâmetros, então vamos apenas copiá-los.
‫Vá até o cabeçalho do componente tick, adicione-o abaixo de nossa reprodução inicial e então vamos copiar
‫essa definição, levá-la para a etapa do componente de gatilho.
‫E uma coisa que notará é que há algumas palavras-chave aqui que podemos remover.
‫Podemos remover a palavra-chave virtual.
‫Essa é geralmente uma regra que podemos seguir.
‫Também podemos remover a palavra-chave override.
‫Essas são coisas que não precisam estar no arquivo C++.
‫Precisamos adicionar o nome da classe.
‫Então você tenta um componente dois pontos, dois pontos, e então substituímos nosso ponto e vírgula por algumas chaves e precisamos fazer
‫a chamada para o componente super tick.
‫Então, porque essa é uma chamada muito longa, vou copiá-la e pegar uma cópia e colá-la nesta.
‫Agora, o que isso está fazendo é essencialmente chamar a função do componente tick do pai.
‫Portanto, o pai, neste caso, é nosso componente de caixa.
‫Portanto, é importante chamá-lo caso haja alguma funcionalidade que precise ser usada e habilitada para que
‫esse componente funcione.
‫Se não fizermos isso, estaremos essencialmente ignorando qualquer uma dessas funcionalidades e as coisas podem quebrar.
‫Tão importante.
‫Lembre-se sempre que é uma chamada para super quando estamos implementando o componente begin, play e tick.
‫Agora vamos copiar nossa mensagem de log de Begin Play e colocá-la no componente tick em vez de dizer componente
‫tick.
‫Fazendo logon para dizer que o componente tick está funcionando aqui e vamos em frente e compilar e ver se esse
‫tick está realmente funcionando.
‫Quando o compilador terminar, vamos em frente e aperte play, abra nosso log de saída e.
‫Hmm, bem, nada parece estar acontecendo agora.
‫A razão para isso é que, em termos de otimização, eles automaticamente não são reais, a maioria dos componentes
‫tem seu carrapato desligado.
‫Portanto, os atores geralmente o ativam por padrão, mas os componentes geralmente o desativam.
‫Então, de fato, se olharmos para alguns dos outros componentes que temos, como nosso movimento que sabemos que o
‫tique-taque funciona para você, você pode ver que no topo do arquivo há isso.
‫Você move uma função e ela tem esse componente primário que o ponto B pode sempre marcar como verdadeiro se você
‫não definir essa propriedade na classe.
‫Então esta é uma propriedade da classe como uma propriedade do componente primário clássico tick e é uma
‫struct que tem um B pode ter uma propriedade tick dentro dele.
‫Então, o que estamos fazendo aqui é definir esse valor padrão na classe move quando a construímos.
‫Isso é o que esta função é.
‫Ele é chamado de construtor e é uma função que é chamada sempre que criamos um novo componente movedor
‫para definir automaticamente os valores padrão.
‫Podemos definir alguns valores padrão no cabeçalho do arquivo, como fizemos com o deve mover o tempo de movimento.
‫Mas a alternativa para fazer sempre no arquivo de cabeçalho é que podemos definir essas propriedades
‫no construtor.
‫Agora eu gostaria que você observasse a sintaxe aqui.
‫Se formos para o mover à frente do arquivo, você verá que um construtor tem o mesmo nome
‫da classe.
‫Portanto, o movedor é o nome da classe para nossos componentes movedores e seu construtor também é chamado de aviso do
‫movedor.
‫Também não tem tipo de retorno.
‫Não faz sentido retornar nada porque estamos construindo um novo objeto.
‫Estamos apenas fazendo essa aula acontecer.
‫Então, tudo o que precisamos é acessar as propriedades dessa classe e também notar que ela está definida como public.
‫Portanto, está na seção pública de nossa definição de classe.
‫Então, eu gostaria de desafiá-lo a habilitar o tique-taque para si mesmo.
‫Então você vai criar um construtor no cabeçalho e ter em mente que a sintaxe
‫que vimos tanto nos filmes de movimento ou H e no grabber H, você vai habilitar o ticking, como vimos novamente
‫nesses outros componentes em seus arquivos CP.
‫Então só você pode copiar como isso está sendo feito.
‫Você também pode fazer o log do construtor para tentar ver quando ele é chamado?
‫É como começar a jogar?
‫Ou ele é chamado antes de entrar em jogo ou o quê?
‫Vá e poste um vídeo e vá.
‫OK.
‫Bem vindo de volta.
‫Então, vamos entrar em nosso componente trigonométrico em H para criar uma nova seção pública.
‫E aqui estamos lembrando dos dois pontos no final e então precisamos chamá-lo exatamente da mesma forma que a
‫classe.
‫Então isso não é componente de gatilho.
‫Não é você acionar, é você acionar os componentes por completo.
‫E então não temos nenhum argumento neste construtor, então colocamos apenas parênteses vazios e depois um ponto e
‫vírgula no final da linha.
‫Agora podemos ir para o arquivo CPP e podemos fazer a implementação aqui.
‫Novamente, não precisamos de um tipo de retorno.
‫Então é só você acionar componentes, os dois pontos.
‫Colon você aciona componentes um pouco repetitivos, mas é assim que funciona.
‫Em seguida, colocamos algumas chaves e aqui podemos fazer qualquer um dos nossos códigos de configuração para fornecer os valores padrão para
‫a instância da classe.
‫Então, se formos pegar um CPP e der uma olhada no que ele está fazendo, você pode ver
‫que tem seu componente principal, o ponto B, que pode ser igual a verdade.
‫Então vamos digitar isso.
‫O componente primário tick dot B pode sempre marcar B é apenas um prefixo que costumamos usar quando as coisas têm
‫um tipo booleano definido igual a true com um t minúsculo.
‫Portanto, como as alterações em um construtor nem sempre são propagadas corretamente na codificação ao vivo, vou fechar
‫o editor.
‫Vou reconstruir a partir do código do Visual Studio e, em seguida, reiniciarei a partir do novo arquivo de
‫projeto.
‫Quando isso estiver pronto, vou em frente e apertei o play, dê uma olhada no nosso log de saída.
‫E com certeza, podemos ver que o componente do gatilho está funcionando.
‫Então, vou remover essa mensagem de log porque é irritante e fechei o log de saída
‫no código do Visual Studio, remova essa mensagem de log no componente tick.
‫Podemos ver que está funcionando agora.
‫E o que queríamos fazer é fazer um log em nosso construtor.
‫Então, vamos fazer um novo log dizendo construção, ver se a codificação ao vivo pode pegá-lo desta vez e então vamos
‫para o nosso log de saída e dar uma olhada imediatamente.
‫Nada aparecendo aqui.
‫Bem, se eu for em frente e apertar play, dê uma olhada no meu log de saída.
‫Eu posso ver a mensagem de log de que o componente do gatilho está ativo e muito antes disso.
‫Na verdade, você pode ver que está construindo muito à frente quando está apenas criando o mundo.
‫Começa a construir muito cedo antes de começar a jogar, porque precisamos preparar o mundo inteiro antes
‫de começar a jogar.
‫Então acontece quando apertamos o play, mas na verdade também acontece no editor.
‫Então, se eu selecionar algum ator aqui e adicionar um componente a ele e adicionar nosso gatilho, dê uma olhada no meu
‫log de saída.
‫Então você pode ver que a mensagem de construção foi realmente impressa.
‫Portanto, precisamos ter cuidado com o que fazemos em nossos construtores, porque eles são chamados, o código C++ é
‫chamado apenas quando estamos editando, nem mesmo jogando nosso jogo.
‫Esses objetos estão sendo criados e, portanto, configurados e, portanto, precisam chamar seu construtor.
‫Vou prosseguir e excluir o gatilho novamente e esclarecer um pouco removendo, construindo a mensagem de
‫log e nossa mensagem de log de início de reprodução também.
‫Coisas boas.
‫Então, nesta palestra, vimos como podemos configurar nossos próprios componentes para que sejam quase idênticos aos criados
‫nos modelos para componentes de cena e componentes ACT.
‫Vimos como usar um construtor para fornecer valores padrão para propriedades em nossa classe.
‫Vejo você na próxima palestra.