﻿1
00:00:04,130 --> 00:00:10,460
‫Portanto, o objetivo deste vídeo é ter projéteis que realmente sejam lançados pelo ar e se comportem como

2
00:00:10,460 --> 00:00:11,930
‫os projéteis deveriam.

3
00:00:12,020 --> 00:00:13,520
‫Ei, bem-vindo de volta.

4
00:00:13,550 --> 00:00:19,430
‫Neste vídeo, estamos preocupados em fazer com que nosso projétil realmente se comporte como um projétil e se mova.

5
00:00:19,610 --> 00:00:22,040
‫Agora, existem diferentes maneiras de lidar com isso.

6
00:00:22,070 --> 00:00:28,220
‫Uma maneira é definir manualmente a localização e a rotação do projétil.

7
00:00:28,250 --> 00:00:33,680
‫Agora, isso geralmente exigiria que fizéssemos a atualização a cada quadro, então provavelmente colocaríamos isso

8
00:00:33,680 --> 00:00:34,940
‫na função tick.

9
00:00:35,210 --> 00:00:41,810
‫Outra maneira é simplesmente adicionar um impulso ao projétil e deixar o mecanismo de física assumir o controle.

10
00:00:41,900 --> 00:00:48,440
‫Essencialmente, estamos aplicando uma força e lançando esse projétil e deixando a gravidade agir, e

11
00:00:48,440 --> 00:00:51,380
‫o projétil simplesmente voará no ar.

12
00:00:51,410 --> 00:00:55,310
‫Agora, outra maneira seria usar um componente de movimento.

13
00:00:55,340 --> 00:01:00,560
‫Agora, este é um tipo especial de componente que adicionaríamos à nossa classe de projéteis.

14
00:01:00,560 --> 00:01:06,230
‫E depois de definir alguns parâmetros no componente de movimento, o componente de movimento lidará com

15
00:01:06,230 --> 00:01:08,060
‫o movimento do ator.

16
00:01:08,090 --> 00:01:15,860
‫Agora acontece que o Unreal Engine tem um tipo de componente embutido feito especificamente para projéteis.

17
00:01:15,860 --> 00:01:20,210
‫Portanto, isso aproveita alguns dos recursos integrados do Unreal Engine.

18
00:01:20,210 --> 00:01:26,120
‫E ao fazer isso, permitimos que o componente de movimento lide com o movimento para nós com base nas configurações

19
00:01:26,120 --> 00:01:27,020
‫que fornecemos.

20
00:01:27,020 --> 00:01:29,360
‫Então este é o método que vamos usar.

21
00:01:29,360 --> 00:01:35,750
‫Então, gostaríamos de adicionar um componente de movimento de projétil à nossa classe de projétil, e é isso que irá

22
00:01:35,750 --> 00:01:38,690
‫lidar com o movimento do objeto de projétil.

23
00:01:38,690 --> 00:01:45,440
‫Assim, à medida que geramos um projétil no mundo, o componente de movimento do projétil que pertence à classe do

24
00:01:45,440 --> 00:01:51,620
‫projétil pode ser configurado e personalizado com base nas variáveis da classe de movimento do projétil que

25
00:01:51,650 --> 00:01:52,190
‫definimos.

26
00:01:52,220 --> 00:01:58,340
‫Agora vamos definir alguns deles, como sua velocidade inicial e sua velocidade máxima e o componente de

27
00:01:58,340 --> 00:02:02,750
‫movimento do projétil vai realmente mover o projétil no mundo para nós.

28
00:02:02,780 --> 00:02:06,290
‫Agora, aqui está a página de documentação do Unreal Engine para você.

29
00:02:06,290 --> 00:02:07,940
‫Componente de movimento do projétil.

30
00:02:07,940 --> 00:02:13,130
‫Este é o componente com o qual estamos preocupados e você verá que ele diz que o Componente de

31
00:02:13,130 --> 00:02:16,700
‫Movimento do Projétil atualiza a posição de outro componente durante seu tique.

32
00:02:16,700 --> 00:02:19,340
‫Por padrão, ele moverá o componente de rota.

33
00:02:19,370 --> 00:02:20,900
‫Agora aqui está a inclusão.

34
00:02:20,900 --> 00:02:26,060
‫E se você continuar rolando para baixo, verá algumas das variáveis que podem ser definidas no componente

35
00:02:26,060 --> 00:02:26,810
‫de movimento.

36
00:02:26,810 --> 00:02:30,740
‫Então role por isso e dê uma olhada e veja quais são as opções.

37
00:02:30,770 --> 00:02:36,770
‫Agora adicionamos um componente de movimento de projétil à nossa classe da mesma forma que adicionaríamos qualquer outro componente, o que

38
00:02:36,770 --> 00:02:39,350
‫significa que você já sabe como fazer isso.

39
00:02:39,350 --> 00:02:45,980
‫Portanto, seu desafio é entrar na classe de projéteis e adicionar uma variável de ponteiro de componente de movimento

40
00:02:45,980 --> 00:02:49,310
‫de projétil e expô-la tornando-a visível em qualquer lugar.

41
00:02:49,310 --> 00:02:54,140
‫E dessa forma podemos editar facilmente o componente de movimento do projétil de dentro dos projetos.

42
00:02:54,150 --> 00:02:59,560
‫Agora você vai construí-lo no construtor de projéteis usando create default sub object.

43
00:02:59,570 --> 00:03:05,900
‫Não se esqueça de incluir o cabeçalho adequado e definir as variáveis de velocidade inicial e velocidade máxima do componente de

44
00:03:05,900 --> 00:03:06,920
‫movimento do projétil.

45
00:03:06,920 --> 00:03:12,650
‫Agora escolha seus próprios valores para estes e defina-os no construtor e, em seguida, teste o jogo.

46
00:03:12,650 --> 00:03:18,530
‫Você vai ajustar a velocidade inicial e a velocidade máxima no painel de detalhes selecionando o componente no

47
00:03:18,530 --> 00:03:19,790
‫projeto do projétil.

48
00:03:19,790 --> 00:03:25,910
‫E isso lhe dará um pouco de experiência ajustando parâmetros e experimentando como desenvolvedor.

49
00:03:25,910 --> 00:03:30,080
‫Então pause o vídeo e crie o componente de movimento do projétil agora.

50
00:03:32,900 --> 00:03:33,180
‫OK.

51
00:03:33,230 --> 00:03:39,380
‫Então estou aqui no projétil H e você provavelmente adicionou seu componente na seção privada.

52
00:03:39,380 --> 00:03:41,780
‫Então, se você fez, você tem os instintos certos.

53
00:03:41,780 --> 00:03:43,730
‫Vamos tornar isso uma variável privada.

54
00:03:43,730 --> 00:03:44,180
‫Tudo bem.

55
00:03:44,180 --> 00:03:48,040
‫Se não o fez, você pode movê-lo facilmente para a seção privada, se desejar.

56
00:03:48,050 --> 00:03:54,560
‫Agora, este será um componente de movimento do projétil U, e isso é um ponteiro.

57
00:03:54,560 --> 00:03:58,610
‫E podemos simplesmente chamar esse componente de movimento do projétil.

58
00:03:58,760 --> 00:04:05,300
‫Agora, vou dar a isso uma propriedade U e simplesmente tornar isso visível em qualquer lugar.

59
00:04:06,020 --> 00:04:08,210
‫Agora, você provavelmente deu uma categoria.

60
00:04:08,210 --> 00:04:13,130
‫Se não, tudo bem, mas vou dar uma categoria e chamar de movimento.

61
00:04:13,130 --> 00:04:15,650
‫Então nós temos o componente de movimento do projétil.

62
00:04:15,650 --> 00:04:20,660
‫Vou deixar de fora a declaração de encaminhamento e ver se consigo compilar agora aqui

63
00:04:20,660 --> 00:04:24,290
‫no CP do projétil, vou incluir o arquivo de cabeçalho.

64
00:04:24,290 --> 00:04:31,340
‫Então, de volta à página de documentação, vou copiar este include e simplesmente colá-lo aqui no projétil.

65
00:04:31,340 --> 00:04:34,250
‫E agora estou pronto para construir meu componente.

66
00:04:34,250 --> 00:04:42,440
‫Então, vou dizer componente de movimento de projétil e vou usar criar subobjeto padrão e

67
00:04:42,440 --> 00:04:48,140
‫o tipo será seu componente de movimento de projétil.

68
00:04:48,470 --> 00:04:55,760
‫E para o texto, vou simplesmente chamar esse componente de movimento do projétil assim.

69
00:04:55,760 --> 00:04:59,300
‫Aí está o meu ponto e vírgula e aí está.

70
00:04:59,330 --> 00:05:07,850
‫Agora, conforme instruído, vamos definir o movimento do projétil, a velocidade máxima do

71
00:05:07,850 --> 00:05:14,810
‫componente, e darei a isso uma velocidade inicial de, digamos,

72
00:05:14,810 --> 00:05:17,600
‫1300 F. valor certo.

73
00:05:17,600 --> 00:05:25,490
‫Agora vou definir a velocidade inicial do componente de movimento do projétil, e vou defini-lo com o mesmo valor.

74
00:05:25,910 --> 00:05:31,190
‫Então, a velocidade inicial será o quão rápido o componente do projétil é quando ele começa.

75
00:05:31,190 --> 00:05:33,710
‫E, claro, nunca ultrapassará a velocidade máxima.

76
00:05:33,860 --> 00:05:35,750
‫Vamos em frente e compilar isso.

77
00:05:36,050 --> 00:05:42,200
‫Ok, então estou recebendo um erro de compilação e se eu subir verei que está referenciando o projétil h.

78
00:05:42,350 --> 00:05:47,240
‫Então vamos voltar ao projétil H e ele diz Projétil H 27.

79
00:05:47,240 --> 00:05:51,020
‫Está se referindo à linha 27 e é essa linha aqui.

80
00:05:51,140 --> 00:05:56,090
‫E obtemos que este componente de movimento do projétil não é um membro de um projétil.

81
00:05:56,120 --> 00:05:59,990
‫Lembre-se, esse foi o tipo de erro que vimos quando não encaminhamos a declaração.

82
00:05:59,990 --> 00:06:06,590
‫Assim, podemos facilmente declarar isso com a palavra-chave class e compilar novamente e obter uma compilação

83
00:06:06,590 --> 00:06:07,400
‫bem-sucedida.

84
00:06:07,400 --> 00:06:12,830
‫Então, novamente, é assim que podemos saber se um componente específico está incluído ou não por padrão.

85
00:06:12,830 --> 00:06:17,270
‫E vimos que este não é assim com uma compilação bem-sucedida.

86
00:06:17,270 --> 00:06:18,890
‫Vamos voltar ao editor.

87
00:06:19,280 --> 00:06:26,030
‫Ok, então estou de volta ao editor e vou entrar em projetos e atores e aqui está o projétil BFP.

88
00:06:26,300 --> 00:06:28,190
‫Então aqui projétil NP.

89
00:06:28,190 --> 00:06:32,090
‫Agora vejo que o componente de movimento do projétil está aqui.

90
00:06:32,390 --> 00:06:38,870
‫E no painel de detalhes, você pode ver sob o projétil que temos a velocidade inicial e a velocidade máxima

91
00:06:38,870 --> 00:06:43,280
‫e você pode rolar e ver muitos outros parâmetros que também podemos definir.

92
00:06:43,400 --> 00:06:44,840
‫Então vamos jogar teste isso.

93
00:06:44,840 --> 00:06:49,190
‫Vou apertar o play e clicar com o botão esquerdo e conferir.

94
00:06:49,190 --> 00:06:51,200
‫Nossos projéteis estão se movendo.

95
00:06:51,200 --> 00:06:55,550
‫Eles estão voando pelo ar e param quando atingem algo.

96
00:06:55,550 --> 00:07:00,260
‫Agora, eventualmente, o que gostaríamos de fazer é explodi-los e causar danos.

97
00:07:00,260 --> 00:07:02,780
‫Mas este é um ótimo ponto de partida.

98
00:07:02,780 --> 00:07:08,420
‫Agora vamos nos mover dentro do alcance do fogo e ver se as torres irão gerar um projétil.

99
00:07:08,420 --> 00:07:09,740
‫E claro que não.

100
00:07:09,740 --> 00:07:13,640
‫E a razão é porque temos essa subclasse de variável TW.

101
00:07:13,640 --> 00:07:19,310
‫Então, se você está se perguntando por que as torres não estavam realmente gerando projéteis, você pode não ter definido

102
00:07:19,310 --> 00:07:19,730
‫isso.

103
00:07:19,730 --> 00:07:25,370
‫Então vamos em frente e entrar em lagoas e lagoa de bip, torre e abrir a planta completa.

104
00:07:25,370 --> 00:07:29,960
‫Editor E colocamos a classe de projéteis na seção de combate.

105
00:07:29,960 --> 00:07:37,790
‫Esta é a nossa subclasse de então se definirmos isso para projétil BP agora nossa torre deve começar a gerar

106
00:07:37,790 --> 00:07:38,780
‫projéteis também.

107
00:07:38,780 --> 00:07:41,960
‫Então vamos entrar no alcance de fogo e aí está.

108
00:07:41,960 --> 00:07:43,910
‫Está atirando projéteis em nós.

109
00:07:43,910 --> 00:07:46,550
‫Então isso está parecendo incrível.

110
00:07:47,030 --> 00:07:48,950
‫Então agora temos projéteis.

111
00:07:48,950 --> 00:07:51,230
‫Então, vamos dar uma olhada no nosso plano de seção.

112
00:07:51,230 --> 00:07:56,900
‫Já criamos um tanque que pode se mover pelo mundo e agora estamos lidando com a entrada com

113
00:07:56,900 --> 00:07:59,150
‫as teclas WASD e cliques do mouse.

114
00:07:59,150 --> 00:08:05,510
‫Criamos uma classe de torre inimiga, chamamos de torre em C++ e adicionamos a funcionalidade de fogo

115
00:08:05,510 --> 00:08:06,590
‫com projéteis.

116
00:08:06,590 --> 00:08:11,240
‫Agora, em seguida, precisamos lidar com danos e destruição à saúde neste jogo.

117
00:08:11,240 --> 00:08:15,770
‫Então, esses são os nossos próximos passos e eles vão aparecer nos próximos vídeos.

118
00:08:15,770 --> 00:08:21,890
‫Agora que adicionamos um componente de movimento de projéteis, agora temos projéteis reais.

119
00:08:21,890 --> 00:08:26,990
‫Vejo vocês no próximo vídeo, quando começarmos a falar sobre como podemos fazer esses

120
00:08:26,990 --> 00:08:29,270
‫projéteis explodirem e causarem danos.

121
00:08:29,690 --> 00:08:30,650
‫Vejo você em breve.

