﻿1
00:00:04,410 --> 00:00:05,280
‫Olá e bem-vindo.

2
00:00:05,280 --> 00:00:11,430
‫Nesta palestra, vamos configurar nosso primeiro traço de geometria para que, quando formos e olharmos para nossas

3
00:00:11,430 --> 00:00:14,340
‫gárgulas, cheguemos perto o suficiente dentro do alcance.

4
00:00:14,730 --> 00:00:20,760
‫Então, com certeza, ele imprime o nome do ator que foi atingido pelo rastreamento.

5
00:00:21,030 --> 00:00:23,160
‫Vamos mergulhar e ver como ele pode fazer isso.

6
00:00:23,580 --> 00:00:27,480
‫Então, finalmente estamos prontos para enfrentar essa varredura single por canal.

7
00:00:27,480 --> 00:00:31,050
‫Havia um monte de peças que tivemos que ter no lugar para fazê-lo funcionar.

8
00:00:31,380 --> 00:00:32,310
‫Mas finalmente, estamos aqui.

9
00:00:32,790 --> 00:00:36,180
‫Então, vamos dar uma olhada na sintaxe desta função.

10
00:00:36,180 --> 00:00:43,200
‫Então, estamos em um lugar muito melhor para entender o que estava acontecendo aqui quando nesses tipos.

11
00:00:43,200 --> 00:00:50,730
‫Portanto, o valor de retorno é um booleano, que basicamente nos diz se encontramos ou não algo com a

12
00:00:50,730 --> 00:00:51,210
‫varredura.

13
00:00:52,080 --> 00:00:56,400
‫Agora o segundo argumento, como você pode ver aqui, é uma referência.

14
00:00:56,400 --> 00:00:57,810
‫Tem este e comercial.

15
00:00:58,290 --> 00:01:02,490
‫E não importa se há um espaço após o e comercial ou um espaço entre o

16
00:01:02,490 --> 00:01:07,560
‫nome da variável, é a mesma coisa desde que haja um e comercial após o tipo dizendo que esse tipo é

17
00:01:08,070 --> 00:01:12,450
‫uma referência e é um tipo chamado F hit result , você pode ver que é uma estrutura.

18
00:01:12,960 --> 00:01:15,840
‫Portanto, este resultado F hit é o alt hit.

19
00:01:15,840 --> 00:01:18,600
‫Esse é o resultado que sai da varredura.

20
00:01:18,600 --> 00:01:23,910
‫Podemos ver em que coisas foram atingidas, pois é uma estrutura, porque há várias coisas diferentes,

21
00:01:24,180 --> 00:01:26,580
‫informações que podem sair dessa varredura.

22
00:01:26,850 --> 00:01:30,990
‫Então temos uma referência vetorial f constante.

23
00:01:31,080 --> 00:01:36,300
‫Portanto, isso está tomando nosso vetor inicial por referência em vez de copiá-lo.

24
00:01:36,600 --> 00:01:40,470
‫O mesmo com o vetor final, então temos uma rotação.

25
00:01:40,470 --> 00:01:46,890
‫Portanto, esta é a rotação da forma usando um f quat, que é uma estrutura alternativa ao uso do

26
00:01:46,890 --> 00:01:47,580
‫rotador f.

27
00:01:47,580 --> 00:01:51,660
‫Veremos como podemos basicamente colocar uma rotação zero aqui porque estamos usando uma esfera.

28
00:01:51,660 --> 00:01:52,590
‫Isso realmente não importa.

29
00:01:53,220 --> 00:01:59,880
‫A próxima coisa que vem é o Trace Channel e veremos como descobrir como nosso canal Trace

30
00:01:59,880 --> 00:02:01,950
‫é chamado em C++.

31
00:02:02,490 --> 00:02:08,760
‫E então temos nossa forma de colisão, que será o último argumento que precisamos fornecer, e

32
00:02:08,760 --> 00:02:13,500
‫veremos como podemos criar uma esfera de um certo raio fazendo isso.

33
00:02:13,980 --> 00:02:18,480
‫Mas antes de começarmos, precisaremos saber qual é esse raio e como ele foi configurado.

34
00:02:18,480 --> 00:02:22,830
‫Então, vamos para o nosso Grandpa Dot H, vamos remover essas funções

35
00:02:22,830 --> 00:02:27,840
‫que estamos usando como exemplos para referências de conteúdo de referência e nossos parâmetros.

36
00:02:27,840 --> 00:02:34,020
‫E vamos criar uma nova propriedade que será adicionada em qualquer

37
00:02:34,020 --> 00:02:42,450
‫lugar, e será um float chamado raio de captura, e vamos definir isso para 101 metros.

38
00:02:42,870 --> 00:02:49,110
‫Então, vamos para o C++ agora e remova as referências para imprimir danos e tem

39
00:02:49,110 --> 00:02:53,460
‫danos e podemos remover qualquer coisa do componente TIC também.

40
00:02:53,460 --> 00:02:58,620
‫Toda a declaração de onde estamos passando o dano, porque aqui estamos desenhando nossa linha

41
00:02:58,890 --> 00:03:03,630
‫de depuração e agora queremos fazer uma chamada para varrer single por canal.

42
00:03:04,140 --> 00:03:05,970
‫Então vamos digitar varredura.

43
00:03:06,150 --> 00:03:13,290
‫Então, vamos digitar get world parênteses porque sabemos que esta é uma função no novo objeto

44
00:03:13,290 --> 00:03:13,800
‫mundo.

45
00:03:14,340 --> 00:03:19,440
‫Eu vou fazer uma seta porque sabemos que get world retorna um

46
00:03:19,440 --> 00:03:28,980
‫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

47
00:03:28,980 --> 00:03:31,470
‫como o primeiro argumento aqui.

48
00:03:31,920 --> 00:03:37,170
‫Então vamos criar uma variável que ficará vazia, que será preenchida, e deve ter o

49
00:03:37,170 --> 00:03:38,070
‫tipo certo.

50
00:03:38,070 --> 00:03:44,220
‫Então vai ser um resultado f f hit e vamos chamar a própria variável hit result, colocar um ponto

51
00:03:44,790 --> 00:03:49,440
‫e vírgula no final porque não estamos inicializando, não estamos dando nenhum valor,

52
00:03:49,440 --> 00:03:54,780
‫mas estamos vou passá-lo para que seja dado um valor pela função sweep single by channel.

53
00:03:55,830 --> 00:03:57,030
‫Então esse é o nosso resultado de acerto.

54
00:03:57,330 --> 00:04:04,020
‫Então, precisamos passar os fatores inicial e final que sabemos que não serão copiados, mas

55
00:04:04,020 --> 00:04:04,920
‫sim referenciados.

56
00:04:05,520 --> 00:04:13,590
‫Agora precisamos preencher a rotação que podemos fazer com uma identidade simples de dois pontos f agachamento que diz

57
00:04:13,710 --> 00:04:17,280
‫basicamente que esta não é uma rotação.

58
00:04:17,280 --> 00:04:19,230
‫Essa é apenas uma linguagem um pouco estranha para isso.

59
00:04:19,230 --> 00:04:22,980
‫É uma expressão matemática para significar que isso não é rotação.

60
00:04:23,670 --> 00:04:26,970
‫Em seguida, precisamos do canal de colisão de rastreamento.

61
00:04:27,000 --> 00:04:30,780
‫Agora, como vamos encontrar esse canal de colisão de rastreamento?

62
00:04:31,290 --> 00:04:38,190
‫Bem, se formos para a pasta que contém nosso projeto e entrarmos em config e depois vamos para o mecanismo

63
00:04:38,190 --> 00:04:43,980
‫padrão INI, clique com o botão direito e abra com o código do Visual Studio.

64
00:04:44,190 --> 00:04:52,080
‫E aqui eu gostaria de procurar gramática para que você possa ver o canal de resposta de colisão para o

65
00:04:52,080 --> 00:04:52,740
‫grabber.

66
00:04:52,740 --> 00:04:55,770
‫E basicamente foi configurado aqui no mecanismo padrão INI.

67
00:04:56,040 --> 00:05:00,930
‫É mencionado apenas uma vez em todo o arquivo e você pode ver o nome do canal.

68
00:05:00,930 --> 00:05:03,480
‫Este é o nome do canal em C++ não é muito.

69
00:05:03,780 --> 00:05:05,880
‫Óbvio, mas é s. e. c.

70
00:05:06,120 --> 00:05:14,340
‫Canal de rastreamento do jogo dois, então podemos copiar isso e então podemos voltar para pegar uma cópia e colá-la

71
00:05:14,340 --> 00:05:17,730
‫aqui como o canal de rastreamento que queremos.

72
00:05:18,060 --> 00:05:22,530
‫Agora, esta linha está ficando um pouco longa, e o que podemos fazer para compensar isso

73
00:05:22,530 --> 00:05:26,970
‫é que podemos colocar cada um desses parâmetros em linhas separadas, ou pelo menos espalhá-los.

74
00:05:26,970 --> 00:05:28,980
‫Então, talvez o início e o fim sejam os mesmos.

75
00:05:29,310 --> 00:05:34,770
‫A identidade está em uma linha, o canal de rastreamento está em outra linha.

76
00:05:34,770 --> 00:05:39,420
‫Então agora isso nos dá um pouco mais de espaço para ler essas longas listas de argumentos.

77
00:05:39,720 --> 00:05:45,060
‫Agora, se voltarmos à documentação, podemos ver que a próxima coisa que precisamos passar aqui é

78
00:05:45,060 --> 00:05:46,890
‫uma forma de colisão F.

79
00:05:47,430 --> 00:05:49,820
‫Então, precisamos construir uma forma.

80
00:05:49,830 --> 00:05:52,710
‫Talvez façamos isso como uma variável separada no topo.

81
00:05:52,980 --> 00:05:57,420
‫Vou fazer isso antes do resultado F hit para deixar bem claro que o resultado F hit é na verdade um

82
00:05:57,420 --> 00:05:58,080
‫parâmetro de saída.

83
00:05:58,080 --> 00:06:02,310
‫Eu sempre vou deixar isso como a última coisa antes da chamada para a função.

84
00:06:02,910 --> 00:06:08,940
‫Então vamos criar uma forma de colisão F, que vamos chamar de esfera, e vamos

85
00:06:08,940 --> 00:06:12,300
‫definir dois iguais à forma de colisão F.

86
00:06:12,600 --> 00:06:15,090
‫Dois pontos, dois pontos fazem esfera.

87
00:06:15,150 --> 00:06:18,450
‫Então isso vai criar uma nova forma de colisão de esfera.

88
00:06:18,450 --> 00:06:26,520
‫E o argumento para esta função é o raio da esfera que temos como a variável de raio de captura que configuramos

89
00:06:26,520 --> 00:06:33,480
‫como uma propriedade coloque ponto e vírgula no final desta linha e podemos passar a esfera como

90
00:06:33,750 --> 00:06:40,900
‫nossos argumentos finais para o canal de varredura função e coloque um ponto e vírgula no final dessa linha.

91
00:06:41,190 --> 00:06:47,730
‫Agora, mais uma coisa é que essa função que conhecemos retorna um booleano, que é se atingimos alguma coisa.

92
00:06:47,730 --> 00:06:54,990
‫Então, vou colocar o resultado em uma variável booleana chamada has hit e é isso que vamos

93
00:06:54,990 --> 00:06:57,270
‫usar mais tarde nesta função.

94
00:06:57,570 --> 00:07:02,220
‫Então eu gostaria de desafiá-lo a imprimir o nome do ator de sucesso.

95
00:07:02,220 --> 00:07:04,260
‫Então agora temos essa varredura acontecendo.

96
00:07:04,500 --> 00:07:07,170
‫Devemos ser capazes de obter alguns resultados com isso.

97
00:07:07,170 --> 00:07:11,670
‫Portanto, use uma instrução if para imprimir se tivermos alguma coisa.

98
00:07:11,670 --> 00:07:16,530
‫Então, se esse booleano for verdadeiro, é quando vamos imprimir o nome do ator.

99
00:07:16,980 --> 00:07:22,890
‫Você obterá o ator que o traço quadrado é atingido usando a estrutura de resultado de acerto.

100
00:07:22,890 --> 00:07:28,920
‫Ele tem um método que você pode acessar com o operador DOT porque é um struct e não é um ponteiro

101
00:07:28,920 --> 00:07:30,030
‫para o struct.

102
00:07:30,600 --> 00:07:36,420
‫Você pode fazer um ponto, agir e usar os parênteses e isso retornará um ponteiro de ator.

103
00:07:37,140 --> 00:07:42,000
‫Em seguida, usando o ponteiro ativo, você pode obter o nome do ator usando o método get

104
00:07:42,330 --> 00:07:48,960
‫ator name ou label e pensar se deseja usar o operador de ponto ou seta para isso e, em seguida, compilar e testar

105
00:07:48,960 --> 00:07:53,490
‫tendo impresso esse nome de ator e ver o que você pode acertou em cena.

106
00:07:53,700 --> 00:07:55,260
‫Pause o vídeo e vá em frente.

107
00:07:58,420 --> 00:07:58,640
‫OK.

108
00:07:58,690 --> 00:07:59,470
‫Bem vindo de volta.

109
00:07:59,830 --> 00:08:02,350
‫Então, vamos começar criando essa instrução if.

110
00:08:02,350 --> 00:08:09,070
‫Então, se atingiu, então vamos colocar alguns suspensórios e vamos fazer primeiro de tudo, queremos pegar esse ponto

111
00:08:09,070 --> 00:08:10,180
‫de ator.

112
00:08:10,190 --> 00:08:17,410
‫Assim, um ator de sucesso de estrela é igual aos resultados de sucesso.

113
00:08:18,640 --> 00:08:19,860
‫Não pegue.

114
00:08:20,530 --> 00:08:21,110
‫Ator.

115
00:08:21,970 --> 00:08:22,630
‫Parênteses.

116
00:08:22,630 --> 00:08:22,840
‫Como.

117
00:08:22,840 --> 00:08:28,630
‫Então vamos fazer um diálogo e vamos escrever um ator de sucesso.

118
00:08:29,290 --> 00:08:35,320
‫Dois pontos percent s e podemos fazer o ator hit.

119
00:08:35,320 --> 00:08:40,090
‫E porque é um ponteiro aqui, podemos fazer um hit ator e pegar.

120
00:08:40,450 --> 00:08:43,060
‫Nome ou rótulo do ator.

121
00:08:43,450 --> 00:08:44,590
‫Em seguida, alguns parênteses.

122
00:08:44,980 --> 00:08:51,730
‫E como isso é uma string, temos que colocar uma estrela na frente de todo o shebang para que ele possa

123
00:08:52,300 --> 00:08:54,940
‫exibi-lo corretamente em um log de consulta.

124
00:08:55,210 --> 00:08:58,390
‫Ok, agora precisamos apenas ir em frente e compilar isso.

125
00:08:58,720 --> 00:09:04,090
‫Então, quando estivermos na cena, vamos abrir o log de saída e encaixá-lo no layout para que possamos vê-lo

126
00:09:04,090 --> 00:09:04,930
‫enquanto jogamos.

127
00:09:05,110 --> 00:09:10,870
‫E eles apertaram o botão play e instantaneamente você pode ver que estamos atingindo aquela estátua de gárgula.

128
00:09:11,110 --> 00:09:16,570
‫Se eu me virar e olhar para outra coisa, você pode ver por que não está muito claro se não

129
00:09:16,570 --> 00:09:19,100
‫estou acertando nada ou se não está exibindo nada.

130
00:09:19,120 --> 00:09:24,700
‫Então, o que vou fazer é colocar uma declaração alt to if aqui, colocar mais alguns colchetes

131
00:09:25,060 --> 00:09:27,400
‫e vou fazer outro registro de ano.

132
00:09:27,640 --> 00:09:34,420
‫E desta vez o texto vai dizer, nenhum ator bateu, vamos recompilar e ir jogar no editor.

133
00:09:34,420 --> 00:09:35,170
‫E você pode ver agora.

134
00:09:35,170 --> 00:09:41,020
‫Está dizendo que nenhum ator bate o tempo todo até eu começar a olhar para a gárgula.

135
00:09:41,290 --> 00:09:43,860
‫E agora está dizendo que a gárgula é a coisa que está sendo atingida.

136
00:09:43,870 --> 00:09:49,480
‫Se eu me afastar muito disso para que eu alcance, você pode ver que estou dizendo que nenhum ator está

137
00:09:49,480 --> 00:09:50,530
‫sendo atingido novamente.

138
00:09:50,740 --> 00:09:51,250
‫Coisas boas.

139
00:09:51,250 --> 00:09:57,850
‫Então, agora fizemos uma varredura geométrica com um objeto esférico e podemos ver que ele está realmente reagindo apenas aos

140
00:09:58,240 --> 00:10:03,580
‫atores em nossos canais de rastreamento específicos, como as Gárgulas, o único que está configurado no

141
00:10:03,580 --> 00:10:04,240
‫momento.

142
00:10:04,540 --> 00:10:06,700
‫Então esse é o único que está encontrando.

143
00:10:06,820 --> 00:10:08,530
‫Vejo você na próxima palestra.

