‫Bem vindo de volta.
‫Então, já criamos um novo ponteiro de componente de cápsula e o declaramos para frente para não precisarmos incluir
‫o arquivo de cabeçalho na base do h.
‫Agora é hora de realmente construir um subobjeto de componente de cápsula para nosso POM base. Assim que fizermos isso,
‫vamos definir nosso componente raiz para ser a cápsula.
‫Então, como realmente construímos um componente de cápsula para você?
‫O processo é muito irreal.
‫O mecanismo irreal específico do mecanismo criou um subobjeto padrão.
‫Esta é uma função de modelo.
‫Uma função de modelo se adapta ao tipo escolhido para que possamos escolher um determinado tipo e criar o padrão.
‫O subobjeto se adaptará a esse tipo.
‫Passamos o tipo que desejamos construir para criar um subobjeto padrão.
‫Ao contrário de uma função regular, ela tem esses colchetes angulares.
‫É aqui que passamos o tipo a ser construído.
‫Agora criar subobjeto padrão também recebe um argumento entre parênteses.
‫Este será um nome que atribuiremos ao subobjeto.
‫Isso é diferente do nome da variável e é passado como uma string literal.
‫Então aqui está um exemplo.
‫Digamos que desejamos criar um componente de malha estática u.
‫Então chamamos create default sub object e finalizamos os colchetes que passamos no tipo u static mesh component e entre
‫parênteses damos um nome a ele.
‫Agora você já viu que para String Literals, você deve usar a macro de texto.
‫Então, estamos passando nosso literal de string usando a macro de texto aqui.
‫Agora, como mencionei, este é um nome interno usado pelo Unreal Engine.
‫Existem outras funções que usam isso.
‫Por exemplo, há uma função chamada get default sub object by name.
‫Ele recupera um subobjeto pertencente a um determinado objeto e você pode chamá-lo passando um nome específico
‫e ele procurará o subobjeto com esse nome escolhido.
‫Portanto, a chamada de função geral para criar o subobjeto padrão se parece com isso.
‫O tipo vai entre colchetes angulares e o nome vai entre parênteses.
‫Agora criar subobjeto padrão retorna o endereço do componente recém-criado.
‫Então, no nosso caso, se passamos em use static mesh component como o tipo, então obtemos o endereço de um
‫use static mesh component e podemos armazená-lo em um ponteiro, já que ponteiros armazenam endereços de coisas.
‫Então, digamos que criamos um ponteiro de componente de malha estático chamado mesh.
‫Então podemos pegar esse endereço retornado por criar um subobjeto padrão e armazenar esse endereço em nosso ponteiro
‫de malha.
‫Agora que você sabe como funciona a criação de um subobjeto padrão, você usará isso para construir um objeto
‫de componente de cápsula.
‫Você fará isso no construtor PON base, use criar subobjeto padrão para construir uma passagem de componente
‫de cápsula em seu componente de cápsula e os colchetes como o tipo para construir e passar no colisor
‫de cápsula envolto em uma macro de texto entre parênteses.
‫Pause o vídeo e adicione isso ao pont CP base no construtor agora.
‫OK.
‫Então estamos aqui em Bass Pond.
‫CP e gostaríamos de construir um componente de cápsula.
‫Então vamos pegar nossa variável cápsula comp e atribuir o valor retornado por create default sub
‫object.
‫Agora, como vimos, essa função de modelo tem colchetes angulares e parênteses, e vimos que o
‫tipo vai entre colchetes, vamos usar o componente cápsula U.
‫E para os parênteses, vamos usar a macro de texto e vamos chamar essa cápsula de colisor.
‫E lá vamos nós.
‫Agora estamos usando seu componente cápsula para construir um objeto desse tipo.
‫E quando usamos um tipo, incluímos seu arquivo de cabeçalho.
‫Agora vamos ver o que acontece quando tentamos compilar.
‫Agora, novamente, você pode usar a codificação ao vivo ou compilar aqui no código VZ.
‫Estarei compilando aqui no código VTS ao longo desta seção.
‫Então você pode saber que quando eu compilo eu fechei o editor Unreal Engine e estou apenas compilando a partir
‫daqui.
‫Eu gostaria de ver a mensagem de erro aqui e o código VTS agora tentando compilar isso aqui.
‫Recebemos um erro diferente do que vimos no último vídeo.
‫Uso de componente de cápsula tipo u indefinido.
‫Desta vez, estamos tentando usar o tipo de componente de cápsula U aqui no arquivo CPP para construir um objeto.
‫Aqui está o código de erro caso você queira pesquisar no Google esse tipo específico de erro para obter mais informações.
‫Portanto, agora vimos dois tipos diferentes de erros de compilação nesta seção do curso e sabemos
‫a causa desse erro específico.
‫Nós não incluímos seu componente de cápsula.
‫Agora, aqui está o componente de cápsula U na documentação do Unreal Engine e aqui está o include que precisamos
‫para esse tipo.
‫Então eu vou copiar isso e colar aqui no topo do Base Pond CPP.
‫Agora, se eu tentar compilar novamente, a compilação é bem-sucedida, não vemos erros.
‫Vou fechar o terminal agora.
‫Então criamos o componente cápsula.
‫A próxima coisa que gostaria de fazer é garantir que o componente da cápsula seja a raiz.
‫Agora vimos como atribuir um componente como raiz e blueprints clicando e arrastando em C++.
‫Também é bem fácil.
‫Nós simplesmente pegamos essa variável de componente raiz e atribuímos a ela o valor de cápsula comp.
‫Agora especificamos que a cápsula comp deve ser o componente raiz.
‫Vamos compilar isso novamente.
‫E agora, depois de uma compilação bem-sucedida, gostaria de voltar ao editor.
‫OK.
‫Eu abri o editor e vou pegar minha base --, classe C++ e arrastar uma.
‫E agora verifique isso.
‫Vemos um componente de cápsula.
‫Agora no mundo, fora do forro.
‫Ele mostra que a base -- que acabei de arrastar está selecionada agora logo acima da pesquisa no painel de
‫detalhes.
‫Eu posso arrastar isso para baixo e ver todos os componentes nesta base --.
‫E tudo o que vemos é esta cápsula porque é o único componente que ela tem.
‫Então, agora adicionamos nosso componente de cápsula e vemos o resultado disso quando adicionamos uma
‫instância dessa classe ao mundo no Unreal Engine Editor.
‫Então, em resumo, aprendemos como construir um componente de cápsula do C++ e o tornamos o
‫componente raiz atribuindo o valor da variável do componente raiz a cápsula comp.
‫No próximo vídeo, vamos adicionar mais componentes à nossa base na classe C++.
‫Vejo você então.