﻿1
00:00:04,080 --> 00:00:05,890
‫Olá e bem-vindo de volta.

2
00:00:05,910 --> 00:00:11,990
‫Agora estamos movendo nosso tanque para frente e para trás, mas não temos como realmente dirigir o tanque.

3
00:00:12,000 --> 00:00:18,260
‫Então, neste vídeo, vamos trabalhar para realmente girar o tanque usando algo chamado rotação local.

4
00:00:18,270 --> 00:00:23,040
‫Este é o análogo rotacional para adicionar o deslocamento local do ator.

5
00:00:23,070 --> 00:00:29,850
‫Agora, adicionar o deslocamento local do ator tinha vários parâmetros de entrada e passamos apenas o primeiro, pois os

6
00:00:29,850 --> 00:00:31,470
‫outros três eram opcionais.

7
00:00:31,650 --> 00:00:35,010
‫Mas um desses outros três tinha a ver com varrer.

8
00:00:35,010 --> 00:00:41,190
‫E vamos discutir um pouco sobre varredura antes de continuarmos implementando a rotação.

9
00:00:41,190 --> 00:00:45,660
‫Então, estou de volta na documentação do ADD Actor Local Offset.

10
00:00:45,660 --> 00:00:48,720
‫Então, vamos dar uma olhada nesses parâmetros de entrada mais uma vez.

11
00:00:48,750 --> 00:00:52,770
‫O segundo é chamado B Sweep e é um booleano.

12
00:00:53,160 --> 00:00:59,790
‫Agora, se rolarmos um pouco mais para baixo e lermos as informações aqui para a varredura B, ela

13
00:00:59,790 --> 00:01:07,140
‫diz Se varremos para o local de destino, desencadeando sobreposições ao longo do caminho e parando perto do alvo se

14
00:01:07,140 --> 00:01:08,820
‫for bloqueado por algo.

15
00:01:09,180 --> 00:01:14,790
‫Ele também diz que apenas o componente raiz é varrido e verificado para bloquear a colisão.

16
00:01:14,790 --> 00:01:17,430
‫Os componentes filhos se movem sem varrer.

17
00:01:17,700 --> 00:01:20,820
‫Se a colisão estiver desativada, isso não terá efeito.

18
00:01:21,060 --> 00:01:28,440
‫Então vamos falar sobre o que isso significa agora na programação de jogos, sweeping é uma técnica feita pela engine,

19
00:01:28,440 --> 00:01:30,390
‫desde que sweeping esteja habilitado.

20
00:01:30,570 --> 00:01:38,370
‫Se tivermos um objeto em movimento, como uma esfera representada por esse círculo, cada quadro enquanto essa esfera está

21
00:01:38,370 --> 00:01:42,090
‫se movendo, o mecanismo está realizando verificações de varredura.

22
00:01:42,090 --> 00:01:49,740
‫Isso significa que está verificando se esse movimento para esse quadro específico resultaria em uma sobreposição

23
00:01:49,740 --> 00:01:51,420
‫entre dois objetos.

24
00:01:51,630 --> 00:01:55,560
‫Então eu tenho este bloco aqui representado por este retângulo.

25
00:01:56,010 --> 00:01:59,580
‫Agora vamos apenas considerar que estes são os dois únicos objetos no mundo.

26
00:01:59,580 --> 00:02:06,600
‫Assim, enquanto a varredura está habilitada enquanto a esfera está se movendo em direção ao objeto, o mecanismo está

27
00:02:06,600 --> 00:02:09,330
‫verificando se esses dois objetos estão sobrepostos.

28
00:02:09,570 --> 00:02:16,410
‫Agora, à medida que a esfera continua a se mover, digamos que durante um desses quadros a esfera teria se movido de

29
00:02:16,410 --> 00:02:19,500
‫tal forma que está se sobrepondo ao outro objeto.

30
00:02:19,500 --> 00:02:26,760
‫Agora, o que a varredura habilitada faz é que o mecanismo detecta essa sobreposição e move essa esfera de

31
00:02:26,790 --> 00:02:31,920
‫volta para esse quadro específico, para que ela nunca penetre no objeto.

32
00:02:31,950 --> 00:02:35,460
‫Agora, na verdade, nunca vemos a esfera penetrar no objeto.

33
00:02:35,490 --> 00:02:40,530
‫O mecanismo captura essa sobreposição antes que o movimento seja realmente implementado.

34
00:02:40,530 --> 00:02:46,020
‫Então, o resultado é que vemos que a esfera para pouco antes de se sobrepor.

35
00:02:46,020 --> 00:02:52,710
‫Então, se esse retângulo fosse uma parede, por exemplo, a esfera pararia na superfície da parede.

36
00:02:52,710 --> 00:02:55,170
‫Isso é o que a varredura alcança para nós.

37
00:02:55,170 --> 00:03:00,030
‫Agora, a documentação diz que se a colisão estiver desativada, isso não terá efeito.

38
00:03:00,030 --> 00:03:04,590
‫Portanto, a colisão deve ser ativada para que a varredura funcione.

39
00:03:04,740 --> 00:03:12,090
‫Então, de volta aqui em tanks CP na função move, aqui está nossa chamada para adicionar o deslocamento local do ator

40
00:03:12,120 --> 00:03:19,110
‫e, se quisermos, podemos passar outro parâmetro de entrada aqui, o segundo sendo o booleano de varredura para que possamos

41
00:03:19,110 --> 00:03:20,310
‫passar true aqui.

42
00:03:20,310 --> 00:03:24,540
‫Então, vamos compilar isso e ver o efeito de habilitar a varredura.

43
00:03:24,540 --> 00:03:30,720
‫Agora, se apertarmos o play e tentarmos passar por uma parede, por exemplo, veremos que nos movemos através

44
00:03:30,720 --> 00:03:31,560
‫da parede.

45
00:03:31,560 --> 00:03:34,020
‫Então, algo não está funcionando bem aqui.

46
00:03:34,020 --> 00:03:38,280
‫Agora vamos ver o que é esse componente de rota para o tanque da lagoa BP.

47
00:03:38,280 --> 00:03:41,730
‫Lembre-se, usamos o componente cápsula para a rota.

48
00:03:41,730 --> 00:03:45,570
‫Assim, com os componentes da cápsula selecionados no tanque da lagoa da BP.

49
00:03:45,570 --> 00:03:51,690
‫Vamos para o painel de detalhes e role para baixo e veremos aqui uma seção chamada Colisão.

50
00:03:51,690 --> 00:03:55,860
‫E aqui vemos Presets de Colisão e tem um menu suspenso.

51
00:03:55,860 --> 00:03:57,420
‫Então vamos expandir isso.

52
00:03:57,420 --> 00:04:05,010
‫Agora, as predefinições de colisão podem ser definidas para qualquer número de opções e, por padrão, vemos sobrepor todas as dinâmicas.

53
00:04:05,010 --> 00:04:08,280
‫Agora, dependendo da versão do Unreal Engine que você está usando.

54
00:04:08,280 --> 00:04:11,580
‫Você pode ver algo mais aqui, mas podemos mudar isso.

55
00:04:11,580 --> 00:04:18,750
‫Se selecionarmos o menu suspenso e escolhermos bloquear todos os dinâmicos, as opções acinzentadas abaixo serão alteradas.

56
00:04:18,750 --> 00:04:25,470
‫Lembre-se que estávamos em sobreposição toda dinâmica e aqui vemos três colunas de caixas de seleção.

57
00:04:25,590 --> 00:04:33,240
‫Estas são respostas de colisão e a coluna à esquerda mostra uma lista de tipos de objetos de colisão.

58
00:04:33,240 --> 00:04:37,860
‫Assim, qualquer componente tem seu próprio tipo de objeto de colisão.

59
00:04:37,860 --> 00:04:42,840
‫Observe que podemos ver o tipo de objeto para a cápsula definido como mundo dinâmico.

60
00:04:42,840 --> 00:04:48,600
‫E quando alteramos as predefinições de colisão para bloquear todas as dinâmicas, você verá que as respostas

61
00:04:48,600 --> 00:04:54,450
‫de colisão são todas marcadas para bloquear em resposta a todos os outros tipos de objetos de colisão.

62
00:04:54,450 --> 00:04:59,160
‫Então vamos apertar o play e ver o que acontece quando tentamos passar pelas coisas.

63
00:04:59,160 --> 00:05:03,630
‫Você verá que paramos pouco antes de nos sobrepormos.

64
00:05:03,710 --> 00:05:04,860
‫As outras lagoas.

65
00:05:04,880 --> 00:05:13,520
‫Agora, se eu mover o tanque para que possamos tentar nos sobrepor à parede e contornar as outras

66
00:05:13,520 --> 00:05:14,340
‫lagoas.

67
00:05:14,360 --> 00:05:17,900
‫Agora, se eu apertar play, eu bloqueio a parede também.

68
00:05:17,900 --> 00:05:26,330
‫Portanto, este bloco predefinido de colisão, todo dinâmico, define a resposta de colisão para bloquear todos os outros tipos de objeto.

69
00:05:26,330 --> 00:05:32,900
‫E você sempre pode ver o tipo de objeto de colisão de um componente específico selecionando-o no painel de

70
00:05:32,900 --> 00:05:39,590
‫componentes e rolando para baixo até a seção de colisão no painel de detalhes e abrindo o menu suspenso para

71
00:05:39,590 --> 00:05:40,790
‫Presets de colisão.

72
00:05:40,790 --> 00:05:47,540
‫Eu tenho a malha base selecionada e seu tipo de objeto é dinâmico mundial e está definido para bloquear tudo.

73
00:05:47,540 --> 00:05:54,350
‫Então agora vemos que a varredura está funcionando, pois definimos nossas predefinições de colisão para a composição da cápsula para bloquear

74
00:05:54,350 --> 00:05:55,490
‫todas as dinâmicas.

75
00:05:55,490 --> 00:06:02,720
‫E vimos na documentação que apenas o componente raiz é varrido e verificado para bloqueio de colisão.

76
00:06:02,720 --> 00:06:06,140
‫Portanto, não importa o que os outros componentes estão configurados.

77
00:06:06,170 --> 00:06:10,790
‫Estamos apenas verificando se o componente raiz está bloqueando algo.

78
00:06:10,790 --> 00:06:15,800
‫Agora, um problema que tropeçou em alguns alunos é que eles não podem se mover assim que configurarem a

79
00:06:15,800 --> 00:06:17,510
‫cápsula para bloquear toda a dinâmica.

80
00:06:17,810 --> 00:06:23,750
‫Agora, uma razão para isso pode ser que sua cápsula está se sobrepondo ao chão.

81
00:06:23,780 --> 00:06:28,820
‫Se a cápsula estiver sobreposta ao chão, você não poderá se mover porque o motor

82
00:06:28,820 --> 00:06:35,390
‫não permitirá que seu tanque se mova se o componente da cápsula estiver sobreposto a algo que está definido para bloquear.

83
00:06:35,390 --> 00:06:41,240
‫Portanto, uma solução fácil para isso seria garantir que sua cápsula não se sobreponha ao chão.

84
00:06:41,720 --> 00:06:49,370
‫Agora, você pode entrar em seu tanque de BP e certificar-se de que sua cápsula está logo acima das rodas aqui.

85
00:06:49,370 --> 00:06:52,640
‫Vou entrar na visão ortográfica.

86
00:06:53,720 --> 00:06:56,840
‫E selecione minha malha base e apenas derrube-a.

87
00:06:56,840 --> 00:07:00,980
‫Portanto, as rodas estão logo abaixo do componente da cápsula.

88
00:07:01,190 --> 00:07:06,470
‫Então agora se sua malha está apenas no chão e a cápsula está logo acima da malha.

89
00:07:06,680 --> 00:07:09,010
‫Você deve ser capaz de se movimentar.

90
00:07:09,020 --> 00:07:12,110
‫Então eu vou apertar o play e vamos lá.

91
00:07:12,740 --> 00:07:17,620
‫Então, agora que temos a varredura fora do caminho, é hora de começar a implementar a rotação.

92
00:07:17,630 --> 00:07:19,520
‫Vamos voltar às configurações do nosso projeto.

93
00:07:19,520 --> 00:07:29,060
‫Então vamos editar as configurações do projeto, rolar para baixo até a entrada e na seção de entrada temos nossos mapeamentos de eixo.

94
00:07:29,060 --> 00:07:30,710
‫Agora já cuidamos.

95
00:07:30,710 --> 00:07:31,790
‫Siga em frente.

96
00:07:31,790 --> 00:07:40,220
‫É hora de cuidar do próximo chamado Turn and Turn tem D e A atribuídos a ele onde D tem uma escala

97
00:07:40,220 --> 00:07:44,060
‫de um e A tem uma escala de negativo.

98
00:07:44,060 --> 00:07:48,080
‫Gostaríamos de usar o D e o AX para girar o tanque.

99
00:07:48,170 --> 00:07:54,470
‫Portanto, para vincular uma função ao mapeamento do eixo de giro, precisamos de uma função para vincular.

100
00:07:54,470 --> 00:08:02,330
‫Então, estamos de volta ao código do V e vou entrar no arquivo tank para que possamos criar uma função para vincular a esse

101
00:08:02,330 --> 00:08:04,100
‫mapeamento do eixo de giro.

102
00:08:04,100 --> 00:08:08,630
‫Agora vou chamar essa função void turn e assim como move.

103
00:08:08,660 --> 00:08:12,560
‫Ele precisa de um parâmetro de entrada float e chamaremos esse valor.

104
00:08:12,560 --> 00:08:18,530
‫Então nós declaramos esta função, vamos defini-la e tanque CP e eu vou colocá-la logo abaixo

105
00:08:18,530 --> 00:08:19,790
‫da função move.

106
00:08:19,790 --> 00:08:26,600
‫Então, eu dei a ela um corpo de função e preciso do nome da classe junto com os dois-pontos duplos logo antes do

107
00:08:26,600 --> 00:08:27,590
‫nome da função.

108
00:08:27,590 --> 00:08:29,270
‫Agora temos uma função adequada.

109
00:08:29,270 --> 00:08:31,400
‫Agora, esta não é a única coisa que precisamos fazer.

110
00:08:31,430 --> 00:08:36,590
‫Precisamos ter certeza de que esta função está vinculada ao mapeamento de eixo chamado turn.

111
00:08:36,590 --> 00:08:44,000
‫Fazemos isso no componente de entrada do player de configuração e fazemos exatamente como fizemos o mapeamento do eixo de avanço.

112
00:08:44,000 --> 00:08:51,290
‫Então, vamos dizer componente de entrada do jogador, vamos usar o operador de seta e o eixo de ligação.

113
00:08:52,100 --> 00:08:58,250
‫Agora, o primeiro parâmetro será o nome do mapeamento do eixo envolvido em uma macro de texto.

114
00:08:58,340 --> 00:09:02,420
‫Então, vamos dizer turn, pois esse era o nome do mapeamento do eixo.

115
00:09:02,420 --> 00:09:05,180
‫O próximo é o objeto para o qual estamos vinculando a função.

116
00:09:05,180 --> 00:09:10,100
‫Podemos passar isso e, finalmente, passamos a função que gostaríamos de vincular novamente.

117
00:09:10,100 --> 00:09:14,600
‫Precisamos do endereço do operador e será uma volta de tanque.

118
00:09:14,600 --> 00:09:16,550
‫Então é tão fácil assim.

119
00:09:16,580 --> 00:09:21,200
‫Ligamos a função de giro ao mapeamento do eixo de giro.

120
00:09:21,500 --> 00:09:26,330
‫A única coisa que resta é realmente fazer algo na função turn.

121
00:09:26,330 --> 00:09:32,390
‫Agora vimos que temos o deslocamento local do ator ADD, mas há um análogo rotacional para esta função e

122
00:09:32,390 --> 00:09:35,240
‫é chamado de rotação local do ator ADD.

123
00:09:35,240 --> 00:09:41,600
‫O que isso faz é adicionar uma rotação local ao ator, como o próprio nome sugere, e você verá que

124
00:09:41,600 --> 00:09:47,330
‫existem duas versões diferentes da função, uma que usa um rotador F e outra que usa algo

125
00:09:47,330 --> 00:09:48,530
‫chamado F quad.

126
00:09:48,530 --> 00:09:51,140
‫Vamos usar a versão que leva um rotador F.

127
00:09:51,140 --> 00:09:53,480
‫Chama-se rotação Delta.

128
00:09:53,480 --> 00:10:00,800
‫E, assim como ADD Actor Local Offset, ele também pode receber um parâmetro de varredura e os mesmos outros dois parâmetros de entrada

129
00:10:00,800 --> 00:10:03,170
‫que adicionam o deslocamento local do ator.

130
00:10:03,170 --> 00:10:08,720
‫E esses três últimos parâmetros de entrada são opcionais, assim como adicionar deslocamento local do ator.

131
00:10:08,720 --> 00:10:13,060
‫Então, em vez de um vetor F, vamos passar um rotador F.

132
00:10:13,070 --> 00:10:20,210
‫Agora de volta aqui na função de giro, se criarmos um rotador F e chamamos isso de rotação Delta, veremos que

133
00:10:20,210 --> 00:10:26,960
‫se clicarmos com o botão direito do mouse no rotador F e irmos para definição, somos levados ao rotador e

134
00:10:26,960 --> 00:10:30,410
‫veremos três variáveis de membro público aqui do tipo float.

135
00:10:30,410 --> 00:10:37,250
‫Agora, assim como o rotador F do vetor F tem esses três componentes apenas em vez de X, Y e Z, temos

136
00:10:37,250 --> 00:10:39,140
‫o pitch yaw and roll.

137
00:10:39,140 --> 00:10:42,050
‫Agora, a guinada é o componente em que estamos interessados.

138
00:10:42,050 --> 00:10:46,940
‫Diz rotação em torno do eixo para cima entre parênteses em torno do eixo Z.

139
00:10:46,940 --> 00:10:52,370
‫E esse é o único tipo de rotação com o qual nos preocupamos em girar em torno do eixo Z.

140
00:10:52,370 --> 00:10:54,500
‫É assim que podemos dirigir nosso tanque.

141
00:10:54,500 --> 00:11:00,860
‫Agora, vou apenas apontar para você que existem vários construtores para o rotador F também, e

142
00:11:00,860 --> 00:11:06,110
‫que o padrão novamente diz sem inicialização, assim como com o vetor F.

143
00:11:06,110 --> 00:11:12,410
‫Assim, podemos usar aquele que recebe um único float e todos os componentes serão inicializados com esse

144
00:11:12,410 --> 00:11:13,190
‫valor float.

145
00:11:13,220 --> 00:11:18,560
‫Há um com três valores float e você pode dar uma olhada e ver alguns dos outros.

146
00:11:18,560 --> 00:11:25,820
‫Agora, também direi que existe um rotador zero e, a propósito, este é um rotador zero estático.

147
00:11:25,820 --> 00:11:34,880
‫É por isso que podemos voltar ao tanque CP e dizer algo como igual a F rotator zero rotator zero rotator é uma variável de

148
00:11:34,880 --> 00:11:42,170
‫membro estática e você pode acessar funções de membro estáticas e variáveis como esta especificando o nome da classe

149
00:11:42,170 --> 00:11:47,960
‫com o operador de resolução do escopo e referenciando essa estática variável ou função pelo

150
00:11:47,960 --> 00:11:48,440
‫nome.

151
00:11:48,440 --> 00:11:50,180
‫É isso que estamos fazendo aqui com você.

152
00:11:50,180 --> 00:11:53,060
‫As estáticas de jogabilidade obtêm segundos delta mundiais é uma estática.

153
00:11:53,310 --> 00:11:59,670
‫Function, o que significa que não precisamos de uma instância real da classe estática de jogabilidade do jogo

154
00:11:59,670 --> 00:12:02,230
‫para que possamos acessar essa função estática.

155
00:12:02,250 --> 00:12:04,160
‫Simplesmente já existe.

156
00:12:04,170 --> 00:12:06,930
‫O mesmo com rotador zero e vetor zero.

157
00:12:07,080 --> 00:12:14,010
‫Então eu vou fechar o rotador h e nós temos essa rotação delta e ela é inicializada para um rotador

158
00:12:14,010 --> 00:12:14,700
‫zero.

159
00:12:14,730 --> 00:12:20,280
‫Agora seu tom e papel são zerados assim como X, Y e Z são zerados para o vetor F.

160
00:12:20,280 --> 00:12:22,920
‫Então, vamos precisar alterar esse seu componente.

161
00:12:22,920 --> 00:12:29,460
‫Assim como fiz com nossa localização delta na função MOV, vamos criar um pseudocódigo para rotações

162
00:12:29,460 --> 00:12:30,120
‫delta.

163
00:12:30,120 --> 00:12:36,690
‫Sim, vamos querer que todos tenham um valor escalado pelo tempo Delta, é claro, porque queremos que esse giro seja independente

164
00:12:36,690 --> 00:12:42,570
‫da taxa de quadros, mas também precisamos de algum tipo de velocidade de giro que podemos chamar de

165
00:12:42,570 --> 00:12:43,560
‫taxa de giro.

166
00:12:43,560 --> 00:12:49,890
‫Então, uma vez que tenhamos definido isso, sim, podemos adicionar essa rotação local que vai girar o ator de acordo

167
00:12:49,890 --> 00:12:54,630
‫com o rotador F de cada quadro e que você será dimensionado por valor.

168
00:12:54,630 --> 00:12:59,640
‫Portanto, será zero se não estivermos pressionando nenhuma tecla e terá um valor se estivermos pressionando DX

169
00:12:59,640 --> 00:13:00,320
‫e ax.

170
00:13:00,330 --> 00:13:02,190
‫Então agora você tem um desafio.

171
00:13:02,190 --> 00:13:06,090
‫Isso funcionará como adicionar o deslocamento local do ator.

172
00:13:06,120 --> 00:13:09,000
‫A única diferença é que estamos rodando o ator agora.

173
00:13:09,000 --> 00:13:14,820
‫Então, como precisamos de algum tipo de taxa de giro para girar o ator, você vai criar uma variável de

174
00:13:14,820 --> 00:13:20,550
‫taxa de giro, transformá-la em um float e colocá-la na seção privada ao lado da variável de velocidade.

175
00:13:20,550 --> 00:13:25,560
‫Exponha essa variável com sua propriedade e escolha os novos especificadores de propriedade apropriados.

176
00:13:25,560 --> 00:13:32,490
‫Agora na função turn você vai definir a rotação Delta em particular, nós nos preocupamos com o seu

177
00:13:32,490 --> 00:13:41,280
‫componente definir o valor igual ao valor vezes nossa variável de taxa de giro e também multiplicar pelo tempo delta e então você

178
00:13:41,280 --> 00:13:48,780
‫está pronto para chamar add ator local rotação passando neste rotador f agora para o segundo parâmetro vá em

179
00:13:48,780 --> 00:13:56,880
‫frente e passe true para a entrada de varredura B, pois queremos varrer ao girar, pausar o vídeo e implementar a

180
00:13:56,880 --> 00:13:59,190
‫rotação para o tanque agora.

181
00:14:02,110 --> 00:14:02,500
‫OK.

182
00:14:02,500 --> 00:14:04,630
‫Então isso vai ser bastante simples.

183
00:14:04,630 --> 00:14:07,360
‫Só precisamos de uma variável de taxa de giro.

184
00:14:07,390 --> 00:14:14,440
‫Agora vou entrar no tanque logo abaixo da velocidade e criar uma taxa de giro de flutuação.

185
00:14:14,590 --> 00:14:18,640
‫Agora você provavelmente inicializa isso com algum valor e tudo bem.

186
00:14:18,640 --> 00:14:24,040
‫Se for diferente do que estou escolhendo, vou com 45 F e ver como isso funciona.

187
00:14:24,040 --> 00:14:29,150
‫Mas vamos expor isso aos projetos para que possamos alterá-lo enquanto estamos desenvolvendo.

188
00:14:29,170 --> 00:14:35,620
‫Agora eu gostaria que fosse editado em qualquer lugar e vou colocá-lo na mesma categoria de movimento que velocidade.

189
00:14:35,620 --> 00:14:41,320
‫Então eu vou em frente e roubar esta sua propriedade e colá-la bem aqui acima, vire à direita para que ela fique

190
00:14:41,320 --> 00:14:42,180
‫em qualquer lugar.

191
00:14:42,190 --> 00:14:45,280
‫Movimento da categoria agora e tanque CP.

192
00:14:45,310 --> 00:14:48,190
‫Estou pronto para definir o sim para a rotação Delta.

193
00:14:48,190 --> 00:14:50,320
‫Então vamos dizer rotação Delta.

194
00:14:50,650 --> 00:14:51,400
‫Sim.

195
00:14:51,790 --> 00:14:57,060
‫E vamos defini-lo igual aos tempos de valor, tempos de taxa de giro, tempo delta.

196
00:14:57,070 --> 00:15:04,120
‫E é claro que podemos obter o tempo Delta com as estáticas de jogabilidade U, obter segundos delta mundiais passando isso

197
00:15:04,120 --> 00:15:06,340
‫como o objeto de contexto mundial.

198
00:15:06,460 --> 00:15:08,350
‫Então eu vou colar isso aí.

199
00:15:08,470 --> 00:15:12,220
‫Agora eu sei que meu pseudocódigo não corresponde exatamente.

200
00:15:12,220 --> 00:15:13,270
‫Está na ordem errada.

201
00:15:13,270 --> 00:15:14,830
‫O tempo Delta está no meio aqui.

202
00:15:14,830 --> 00:15:20,440
‫Não importa porque ao multiplicar três valores juntos, você pode multiplicá-los em qualquer ordem e ainda

203
00:15:20,440 --> 00:15:21,940
‫obter o mesmo resultado.

204
00:15:21,940 --> 00:15:27,460
‫Então, caso você esteja se perguntando sobre isso, a matemática ainda será a mesma se você multiplicar esses

205
00:15:27,460 --> 00:15:29,350
‫três valores em uma ordem diferente.

206
00:15:29,350 --> 00:15:30,910
‫Então não se preocupe muito com isso.

207
00:15:30,910 --> 00:15:32,830
‫Agora temos rotação delta.

208
00:15:32,830 --> 00:15:41,860
‫A única coisa que resta a fazer é chamar a rotação local do ator, e estamos passando a rotação Delta e para

209
00:15:41,950 --> 00:15:47,290
‫a segunda entrada vamos passar true para habilitar a varredura ao girar.

210
00:15:47,290 --> 00:15:48,670
‫Então vamos compilar isso.

211
00:15:48,820 --> 00:15:50,740
‫Tudo bem, estamos compilados agora.

212
00:15:50,740 --> 00:15:57,190
‫Você pode notar em alguns dos próximos vídeos que o vetor zero e o rotador zero estão faltando nessas

213
00:15:57,190 --> 00:15:57,700
‫linhas.

214
00:15:57,700 --> 00:16:03,010
‫Isso porque eu comecei com esses inicializados e percebi mais tarde que eles provavelmente deveriam

215
00:16:03,010 --> 00:16:05,890
‫ser inicializados pelo menos com valores zero.

216
00:16:05,890 --> 00:16:12,070
‫Portanto, não se preocupe se você ver essas linhas mais tarde com esta aparência inicializada, mantenha seu vetor zero e seu

217
00:16:12,070 --> 00:16:16,690
‫rotador zero e você verá que eu pego isso em um vídeo futuro próximo.

218
00:16:16,690 --> 00:16:17,770
‫Então não se preocupe.

219
00:16:17,770 --> 00:16:21,430
‫Se você não vir esses de inicialização, eles devem estar lá.

220
00:16:21,430 --> 00:16:23,050
‫E estamos de volta ao editor.

221
00:16:23,050 --> 00:16:30,970
‫Vamos apertar o play e eu vou usar a tecla D e estamos girando e a tecla A me gira de volta para o

222
00:16:30,970 --> 00:16:33,790
‫outro lado e também podemos avançar e voltar.

223
00:16:33,790 --> 00:16:39,570
‫Então, agora que podemos girar e avançar, temos a capacidade de nos mover ao redor do mundo.

224
00:16:39,580 --> 00:16:41,890
‫Este é um grande marco.

225
00:16:41,890 --> 00:16:47,620
‫Agora estou me movendo bem devagar, mas tudo bem porque posso selecionar meu tanque e procurar a

226
00:16:47,620 --> 00:16:53,230
‫categoria de movimento e alterar a taxa de giro para algo mais alto, como 90.

227
00:16:53,230 --> 00:16:54,760
‫Então vamos em frente e aperte o play.

228
00:16:55,460 --> 00:16:57,630
‫E isso é um pouco mais rápido.

229
00:16:57,650 --> 00:17:00,110
‫Agora, se você acha que isso ainda é um pouco lento.

230
00:17:00,140 --> 00:17:02,330
‫Você pode, é claro, ajustá-los.

231
00:17:02,330 --> 00:17:05,570
‫Então eu vou selecionar o -- tanque novamente.

232
00:17:05,570 --> 00:17:08,090
‫E em vez de 400, vamos torná-lo 800.

233
00:17:08,090 --> 00:17:08,720
‫Por que não?

234
00:17:08,750 --> 00:17:11,840
‫Em vez de 90, vamos dizer 120.

235
00:17:12,260 --> 00:17:16,160
‫Agora, se eu apertar play, eu sou um pouco mais rápido.

236
00:17:16,160 --> 00:17:18,800
‫Então isso está parecendo muito, muito bom.

237
00:17:18,800 --> 00:17:23,390
‫Então, olhando para o plano de seção, agora temos um tanque que pode se mover por todo o mundo.

238
00:17:23,390 --> 00:17:29,300
‫Esse primeiro marcador está definitivamente marcado e estamos lidando com o movimento WASD.

239
00:17:29,300 --> 00:17:32,510
‫Ainda não estamos lidando com a entrada do mouse, mas chegaremos a isso.

240
00:17:32,510 --> 00:17:35,870
‫Mas estamos um passo mais perto de tornar este jogo completo.

241
00:17:35,870 --> 00:17:42,170
‫Então, em resumo, aprendemos o que é varredura e como podemos habilitar isso para que nossos objetos não passem um

242
00:17:42,170 --> 00:17:43,130
‫pelo outro.

243
00:17:43,130 --> 00:17:49,760
‫Adicionamos uma rotação local de atores e fizemos isso implementando uma taxa de giro que poderíamos ajustar nos

244
00:17:49,760 --> 00:17:50,210
‫detalhes.

245
00:17:50,210 --> 00:17:53,750
‫Painel no editor para tornar o desenvolvimento um pouco mais fácil.

246
00:17:53,750 --> 00:17:54,500
‫Bom trabalho.

247
00:17:54,500 --> 00:17:56,480
‫Estamos agora movendo o tanque em todo o mundo.

248
00:17:56,480 --> 00:17:57,770
‫Vejo vocês no próximo vídeo.

