﻿1
00:00:04,110 --> 00:00:05,100
‫Bem vindo de volta.

2
00:00:05,370 --> 00:00:12,150
‫Então, já criamos um novo ponteiro de componente de cápsula e o declaramos para frente para não precisarmos incluir

3
00:00:12,150 --> 00:00:15,390
‫o arquivo de cabeçalho na base do h.

4
00:00:15,450 --> 00:00:22,140
‫Agora é hora de realmente construir um subobjeto de componente de cápsula para nosso POM base. Assim que fizermos isso,

5
00:00:22,140 --> 00:00:25,410
‫vamos definir nosso componente raiz para ser a cápsula.

6
00:00:26,380 --> 00:00:30,010
‫Então, como realmente construímos um componente de cápsula para você?

7
00:00:30,130 --> 00:00:31,750
‫O processo é muito irreal.

8
00:00:31,750 --> 00:00:37,300
‫O mecanismo irreal específico do mecanismo criou um subobjeto padrão.

9
00:00:37,450 --> 00:00:39,880
‫Esta é uma função de modelo.

10
00:00:39,910 --> 00:00:46,060
‫Uma função de modelo se adapta ao tipo escolhido para que possamos escolher um determinado tipo e criar o padrão.

11
00:00:46,060 --> 00:00:48,460
‫O subobjeto se adaptará a esse tipo.

12
00:00:48,460 --> 00:00:53,290
‫Passamos o tipo que desejamos construir para criar um subobjeto padrão.

13
00:00:53,590 --> 00:00:57,210
‫Ao contrário de uma função regular, ela tem esses colchetes angulares.

14
00:00:57,220 --> 00:01:00,400
‫É aqui que passamos o tipo a ser construído.

15
00:01:00,430 --> 00:01:04,930
‫Agora criar subobjeto padrão também recebe um argumento entre parênteses.

16
00:01:04,930 --> 00:01:08,140
‫Este será um nome que atribuiremos ao subobjeto.

17
00:01:08,140 --> 00:01:12,220
‫Isso é diferente do nome da variável e é passado como uma string literal.

18
00:01:12,550 --> 00:01:13,960
‫Então aqui está um exemplo.

19
00:01:13,960 --> 00:01:17,170
‫Digamos que desejamos criar um componente de malha estática u.

20
00:01:17,350 --> 00:01:24,700
‫Então chamamos create default sub object e finalizamos os colchetes que passamos no tipo u static mesh component e entre

21
00:01:24,700 --> 00:01:27,190
‫parênteses damos um nome a ele.

22
00:01:27,190 --> 00:01:31,300
‫Agora você já viu que para String Literals, você deve usar a macro de texto.

23
00:01:31,300 --> 00:01:35,200
‫Então, estamos passando nosso literal de string usando a macro de texto aqui.

24
00:01:35,230 --> 00:01:38,890
‫Agora, como mencionei, este é um nome interno usado pelo Unreal Engine.

25
00:01:38,920 --> 00:01:41,080
‫Existem outras funções que usam isso.

26
00:01:41,080 --> 00:01:45,130
‫Por exemplo, há uma função chamada get default sub object by name.

27
00:01:45,160 --> 00:01:50,890
‫Ele recupera um subobjeto pertencente a um determinado objeto e você pode chamá-lo passando um nome específico

28
00:01:50,890 --> 00:01:54,190
‫e ele procurará o subobjeto com esse nome escolhido.

29
00:01:54,370 --> 00:01:59,440
‫Portanto, a chamada de função geral para criar o subobjeto padrão se parece com isso.

30
00:01:59,620 --> 00:02:03,580
‫O tipo vai entre colchetes angulares e o nome vai entre parênteses.

31
00:02:03,580 --> 00:02:09,460
‫Agora criar subobjeto padrão retorna o endereço do componente recém-criado.

32
00:02:09,460 --> 00:02:15,910
‫Então, no nosso caso, se passamos em use static mesh component como o tipo, então obtemos o endereço de um

33
00:02:15,910 --> 00:02:21,970
‫use static mesh component e podemos armazená-lo em um ponteiro, já que ponteiros armazenam endereços de coisas.

34
00:02:21,970 --> 00:02:26,050
‫Então, digamos que criamos um ponteiro de componente de malha estático chamado mesh.

35
00:02:26,050 --> 00:02:32,500
‫Então podemos pegar esse endereço retornado por criar um subobjeto padrão e armazenar esse endereço em nosso ponteiro

36
00:02:32,500 --> 00:02:33,220
‫de malha.

37
00:02:33,700 --> 00:02:39,550
‫Agora que você sabe como funciona a criação de um subobjeto padrão, você usará isso para construir um objeto

38
00:02:39,550 --> 00:02:40,960
‫de componente de cápsula.

39
00:02:40,990 --> 00:02:47,230
‫Você fará isso no construtor PON base, use criar subobjeto padrão para construir uma passagem de componente

40
00:02:47,230 --> 00:02:54,310
‫de cápsula em seu componente de cápsula e os colchetes como o tipo para construir e passar no colisor

41
00:02:54,310 --> 00:02:58,540
‫de cápsula envolto em uma macro de texto entre parênteses.

42
00:02:58,900 --> 00:03:03,880
‫Pause o vídeo e adicione isso ao pont CP base no construtor agora.

43
00:03:07,720 --> 00:03:08,170
‫OK.

44
00:03:08,170 --> 00:03:09,430
‫Então estamos aqui em Bass Pond.

45
00:03:09,640 --> 00:03:13,270
‫CP e gostaríamos de construir um componente de cápsula.

46
00:03:13,270 --> 00:03:21,400
‫Então vamos pegar nossa variável cápsula comp e atribuir o valor retornado por create default sub

47
00:03:21,400 --> 00:03:22,150
‫object.

48
00:03:22,510 --> 00:03:29,620
‫Agora, como vimos, essa função de modelo tem colchetes angulares e parênteses, e vimos que o

49
00:03:29,620 --> 00:03:34,480
‫tipo vai entre colchetes, vamos usar o componente cápsula U.

50
00:03:34,570 --> 00:03:41,320
‫E para os parênteses, vamos usar a macro de texto e vamos chamar essa cápsula de colisor.

51
00:03:42,160 --> 00:03:43,210
‫E lá vamos nós.

52
00:03:43,390 --> 00:03:48,870
‫Agora estamos usando seu componente cápsula para construir um objeto desse tipo.

53
00:03:48,880 --> 00:03:52,450
‫E quando usamos um tipo, incluímos seu arquivo de cabeçalho.

54
00:03:52,960 --> 00:03:56,290
‫Agora vamos ver o que acontece quando tentamos compilar.

55
00:03:56,320 --> 00:04:00,560
‫Agora, novamente, você pode usar a codificação ao vivo ou compilar aqui no código VZ.

56
00:04:00,580 --> 00:04:03,820
‫Estarei compilando aqui no código VTS ao longo desta seção.

57
00:04:03,820 --> 00:04:09,130
‫Então você pode saber que quando eu compilo eu fechei o editor Unreal Engine e estou apenas compilando a partir

58
00:04:09,130 --> 00:04:09,550
‫daqui.

59
00:04:09,550 --> 00:04:14,770
‫Eu gostaria de ver a mensagem de erro aqui e o código VTS agora tentando compilar isso aqui.

60
00:04:14,770 --> 00:04:17,950
‫Recebemos um erro diferente do que vimos no último vídeo.

61
00:04:17,980 --> 00:04:21,430
‫Uso de componente de cápsula tipo u indefinido.

62
00:04:21,610 --> 00:04:27,970
‫Desta vez, estamos tentando usar o tipo de componente de cápsula U aqui no arquivo CPP para construir um objeto.

63
00:04:28,180 --> 00:04:33,190
‫Aqui está o código de erro caso você queira pesquisar no Google esse tipo específico de erro para obter mais informações.

64
00:04:33,610 --> 00:04:38,470
‫Portanto, agora vimos dois tipos diferentes de erros de compilação nesta seção do curso e sabemos

65
00:04:38,470 --> 00:04:40,150
‫a causa desse erro específico.

66
00:04:40,150 --> 00:04:42,700
‫Nós não incluímos seu componente de cápsula.

67
00:04:42,820 --> 00:04:49,330
‫Agora, aqui está o componente de cápsula U na documentação do Unreal Engine e aqui está o include que precisamos

68
00:04:49,330 --> 00:04:50,530
‫para esse tipo.

69
00:04:50,530 --> 00:04:56,710
‫Então eu vou copiar isso e colar aqui no topo do Base Pond CPP.

70
00:04:56,740 --> 00:05:02,890
‫Agora, se eu tentar compilar novamente, a compilação é bem-sucedida, não vemos erros.

71
00:05:03,100 --> 00:05:04,870
‫Vou fechar o terminal agora.

72
00:05:04,990 --> 00:05:07,510
‫Então criamos o componente cápsula.

73
00:05:07,540 --> 00:05:11,920
‫A próxima coisa que gostaria de fazer é garantir que o componente da cápsula seja a raiz.

74
00:05:11,950 --> 00:05:18,890
‫Agora vimos como atribuir um componente como raiz e blueprints clicando e arrastando em C++.

75
00:05:18,910 --> 00:05:20,430
‫Também é bem fácil.

76
00:05:20,440 --> 00:05:26,590
‫Nós simplesmente pegamos essa variável de componente raiz e atribuímos a ela o valor de cápsula comp.

77
00:05:26,800 --> 00:05:30,520
‫Agora especificamos que a cápsula comp deve ser o componente raiz.

78
00:05:30,790 --> 00:05:32,290
‫Vamos compilar isso novamente.

79
00:05:32,470 --> 00:05:36,910
‫E agora, depois de uma compilação bem-sucedida, gostaria de voltar ao editor.

80
00:05:37,000 --> 00:05:37,350
‫OK.

81
00:05:37,360 --> 00:05:42,570
‫Eu abri o editor e vou pegar minha base --, classe C++ e arrastar uma.

82
00:05:42,580 --> 00:05:44,100
‫E agora verifique isso.

83
00:05:44,110 --> 00:05:46,330
‫Vemos um componente de cápsula.

84
00:05:46,420 --> 00:05:48,260
‫Agora no mundo, fora do forro.

85
00:05:48,280 --> 00:05:53,350
‫Ele mostra que a base -- que acabei de arrastar está selecionada agora logo acima da pesquisa no painel de

86
00:05:53,350 --> 00:05:53,870
‫detalhes.

87
00:05:53,890 --> 00:05:58,660
‫Eu posso arrastar isso para baixo e ver todos os componentes nesta base --.

88
00:05:58,660 --> 00:06:03,430
‫E tudo o que vemos é esta cápsula porque é o único componente que ela tem.

89
00:06:03,520 --> 00:06:09,490
‫Então, agora adicionamos nosso componente de cápsula e vemos o resultado disso quando adicionamos uma

90
00:06:09,490 --> 00:06:13,120
‫instância dessa classe ao mundo no Unreal Engine Editor.

91
00:06:13,760 --> 00:06:19,970
‫Então, em resumo, aprendemos como construir um componente de cápsula do C++ e o tornamos o

92
00:06:19,970 --> 00:06:25,070
‫componente raiz atribuindo o valor da variável do componente raiz a cápsula comp.

93
00:06:25,100 --> 00:06:29,600
‫No próximo vídeo, vamos adicionar mais componentes à nossa base na classe C++.

94
00:06:29,810 --> 00:06:30,770
‫Vejo você então.

