‫Olá e bem-vindo.
‫Nesta palestra, vamos configurar nosso primeiro traço de geometria para que, quando formos e olharmos para nossas
‫gárgulas, cheguemos perto o suficiente dentro do alcance.
‫Então, com certeza, ele imprime o nome do ator que foi atingido pelo rastreamento.
‫Vamos mergulhar e ver como ele pode fazer isso.
‫Então, finalmente estamos prontos para enfrentar essa varredura single por canal.
‫Havia um monte de peças que tivemos que ter no lugar para fazê-lo funcionar.
‫Mas finalmente, estamos aqui.
‫Então, vamos dar uma olhada na sintaxe desta função.
‫Então, estamos em um lugar muito melhor para entender o que estava acontecendo aqui quando nesses tipos.
‫Portanto, o valor de retorno é um booleano, que basicamente nos diz se encontramos ou não algo com a
‫varredura.
‫Agora o segundo argumento, como você pode ver aqui, é uma referência.
‫Tem este e comercial.
‫E não importa se há um espaço após o e comercial ou um espaço entre o
‫nome da variável, é a mesma coisa desde que haja um e comercial após o tipo dizendo que esse tipo é
‫uma referência e é um tipo chamado F hit result , você pode ver que é uma estrutura.
‫Portanto, este resultado F hit é o alt hit.
‫Esse é o resultado que sai da varredura.
‫Podemos ver em que coisas foram atingidas, pois é uma estrutura, porque há várias coisas diferentes,
‫informações que podem sair dessa varredura.
‫Então temos uma referência vetorial f constante.
‫Portanto, isso está tomando nosso vetor inicial por referência em vez de copiá-lo.
‫O mesmo com o vetor final, então temos uma rotação.
‫Portanto, esta é a rotação da forma usando um f quat, que é uma estrutura alternativa ao uso do
‫rotador f.
‫Veremos como podemos basicamente colocar uma rotação zero aqui porque estamos usando uma esfera.
‫Isso realmente não importa.
‫A próxima coisa que vem é o Trace Channel e veremos como descobrir como nosso canal Trace
‫é chamado em C++.
‫E então temos nossa forma de colisão, que será o último argumento que precisamos fornecer, e
‫veremos como podemos criar uma esfera de um certo raio fazendo isso.
‫Mas antes de começarmos, precisaremos saber qual é esse raio e como ele foi configurado.
‫Então, vamos para o nosso Grandpa Dot H, vamos remover essas funções
‫que estamos usando como exemplos para referências de conteúdo de referência e nossos parâmetros.
‫E vamos criar uma nova propriedade que será adicionada em qualquer
‫lugar, e será um float chamado raio de captura, e vamos definir isso para 101 metros.
‫Então, vamos para o C++ agora e remova as referências para imprimir danos e tem
‫danos e podemos remover qualquer coisa do componente TIC também.
‫Toda a declaração de onde estamos passando o dano, porque aqui estamos desenhando nossa linha
‫de depuração e agora queremos fazer uma chamada para varrer single por canal.
‫Então vamos digitar varredura.
‫Então, vamos digitar get world parênteses porque sabemos que esta é uma função no novo objeto
‫mundo.
‫Eu vou fazer uma seta porque sabemos que get world retorna um
‫ponteiro e então vamos fazer uma varredura single por canal assim e vamos ter que inserir um parâmetro de saída para ele preencher
‫como o primeiro argumento aqui.
‫Então vamos criar uma variável que ficará vazia, que será preenchida, e deve ter o
‫tipo certo.
‫Então vai ser um resultado f f hit e vamos chamar a própria variável hit result, colocar um ponto
‫e vírgula no final porque não estamos inicializando, não estamos dando nenhum valor,
‫mas estamos vou passá-lo para que seja dado um valor pela função sweep single by channel.
‫Então esse é o nosso resultado de acerto.
‫Então, precisamos passar os fatores inicial e final que sabemos que não serão copiados, mas
‫sim referenciados.
‫Agora precisamos preencher a rotação que podemos fazer com uma identidade simples de dois pontos f agachamento que diz
‫basicamente que esta não é uma rotação.
‫Essa é apenas uma linguagem um pouco estranha para isso.
‫É uma expressão matemática para significar que isso não é rotação.
‫Em seguida, precisamos do canal de colisão de rastreamento.
‫Agora, como vamos encontrar esse canal de colisão de rastreamento?
‫Bem, se formos para a pasta que contém nosso projeto e entrarmos em config e depois vamos para o mecanismo
‫padrão INI, clique com o botão direito e abra com o código do Visual Studio.
‫E aqui eu gostaria de procurar gramática para que você possa ver o canal de resposta de colisão para o
‫grabber.
‫E basicamente foi configurado aqui no mecanismo padrão INI.
‫É mencionado apenas uma vez em todo o arquivo e você pode ver o nome do canal.
‫Este é o nome do canal em C++ não é muito.
‫Óbvio, mas é s. e. c.
‫Canal de rastreamento do jogo dois, então podemos copiar isso e então podemos voltar para pegar uma cópia e colá-la
‫aqui como o canal de rastreamento que queremos.
‫Agora, esta linha está ficando um pouco longa, e o que podemos fazer para compensar isso
‫é que podemos colocar cada um desses parâmetros em linhas separadas, ou pelo menos espalhá-los.
‫Então, talvez o início e o fim sejam os mesmos.
‫A identidade está em uma linha, o canal de rastreamento está em outra linha.
‫Então agora isso nos dá um pouco mais de espaço para ler essas longas listas de argumentos.
‫Agora, se voltarmos à documentação, podemos ver que a próxima coisa que precisamos passar aqui é
‫uma forma de colisão F.
‫Então, precisamos construir uma forma.
‫Talvez façamos isso como uma variável separada no topo.
‫Vou fazer isso antes do resultado F hit para deixar bem claro que o resultado F hit é na verdade um
‫parâmetro de saída.
‫Eu sempre vou deixar isso como a última coisa antes da chamada para a função.
‫Então vamos criar uma forma de colisão F, que vamos chamar de esfera, e vamos
‫definir dois iguais à forma de colisão F.
‫Dois pontos, dois pontos fazem esfera.
‫Então isso vai criar uma nova forma de colisão de esfera.
‫E o argumento para esta função é o raio da esfera que temos como a variável de raio de captura que configuramos
‫como uma propriedade coloque ponto e vírgula no final desta linha e podemos passar a esfera como
‫nossos argumentos finais para o canal de varredura função e coloque um ponto e vírgula no final dessa linha.
‫Agora, mais uma coisa é que essa função que conhecemos retorna um booleano, que é se atingimos alguma coisa.
‫Então, vou colocar o resultado em uma variável booleana chamada has hit e é isso que vamos
‫usar mais tarde nesta função.
‫Então eu gostaria de desafiá-lo a imprimir o nome do ator de sucesso.
‫Então agora temos essa varredura acontecendo.
‫Devemos ser capazes de obter alguns resultados com isso.
‫Portanto, use uma instrução if para imprimir se tivermos alguma coisa.
‫Então, se esse booleano for verdadeiro, é quando vamos imprimir o nome do ator.
‫Você obterá o ator que o traço quadrado é atingido usando a estrutura de resultado de acerto.
‫Ele tem um método que você pode acessar com o operador DOT porque é um struct e não é um ponteiro
‫para o struct.
‫Você pode fazer um ponto, agir e usar os parênteses e isso retornará um ponteiro de ator.
‫Em seguida, usando o ponteiro ativo, você pode obter o nome do ator usando o método get
‫ator name ou label e pensar se deseja usar o operador de ponto ou seta para isso e, em seguida, compilar e testar
‫tendo impresso esse nome de ator e ver o que você pode acertou em cena.
‫Pause o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então, vamos começar criando essa instrução if.
‫Então, se atingiu, então vamos colocar alguns suspensórios e vamos fazer primeiro de tudo, queremos pegar esse ponto
‫de ator.
‫Assim, um ator de sucesso de estrela é igual aos resultados de sucesso.
‫Não pegue.
‫Ator.
‫Parênteses.
‫Como.
‫Então vamos fazer um diálogo e vamos escrever um ator de sucesso.
‫Dois pontos percent s e podemos fazer o ator hit.
‫E porque é um ponteiro aqui, podemos fazer um hit ator e pegar.
‫Nome ou rótulo do ator.
‫Em seguida, alguns parênteses.
‫E como isso é uma string, temos que colocar uma estrela na frente de todo o shebang para que ele possa
‫exibi-lo corretamente em um log de consulta.
‫Ok, agora precisamos apenas ir em frente e compilar isso.
‫Então, quando estivermos na cena, vamos abrir o log de saída e encaixá-lo no layout para que possamos vê-lo
‫enquanto jogamos.
‫E eles apertaram o botão play e instantaneamente você pode ver que estamos atingindo aquela estátua de gárgula.
‫Se eu me virar e olhar para outra coisa, você pode ver por que não está muito claro se não
‫estou acertando nada ou se não está exibindo nada.
‫Então, o que vou fazer é colocar uma declaração alt to if aqui, colocar mais alguns colchetes
‫e vou fazer outro registro de ano.
‫E desta vez o texto vai dizer, nenhum ator bateu, vamos recompilar e ir jogar no editor.
‫E você pode ver agora.
‫Está dizendo que nenhum ator bate o tempo todo até eu começar a olhar para a gárgula.
‫E agora está dizendo que a gárgula é a coisa que está sendo atingida.
‫Se eu me afastar muito disso para que eu alcance, você pode ver que estou dizendo que nenhum ator está
‫sendo atingido novamente.
‫Coisas boas.
‫Então, agora fizemos uma varredura geométrica com um objeto esférico e podemos ver que ele está realmente reagindo apenas aos
‫atores em nossos canais de rastreamento específicos, como as Gárgulas, o único que está configurado no
‫momento.
‫Então esse é o único que está encontrando.
‫Vejo você na próxima palestra.