﻿1
00:00:04,400 --> 00:00:05,180
‫Olá e bem-vindo.

2
00:00:05,180 --> 00:00:10,070
‫Nesta aula, veremos uma função especial chamada construtor que nos permite

3
00:00:10,070 --> 00:00:13,640
‫fornecer valores padrão para propriedades em nossa classe.

4
00:00:13,850 --> 00:00:16,760
‫E veremos quando é chamado no editor.

5
00:00:16,790 --> 00:00:18,590
‫Vamos mergulhar e descobrir.

6
00:00:19,460 --> 00:00:25,400
‫Agora, com este componente de gatilho, gostaria de adicionar uma função de componente de

7
00:00:25,400 --> 00:00:32,420
‫carrapato aqui para que possamos verificar quais componentes, quais outros atores estão atualmente sobrepondo esse componente de gatilho

8
00:00:32,420 --> 00:00:36,740
‫e podemos ativar se for o tipo certo de ator.

9
00:00:37,610 --> 00:00:39,860
‫O problema é, bem, vamos ver qual é o problema.

10
00:00:39,860 --> 00:00:46,160
‫Vamos tentar implementar uma função tick se formos para o grab para ver como deve ser a declaração

11
00:00:46,160 --> 00:00:50,420
‫de uma função de componente, ela precisa estar na seção pública.

12
00:00:50,720 --> 00:00:53,420
‫É um vazio virtual, componentes de carrapato, tempo delta.

13
00:00:53,420 --> 00:00:55,700
‫Há muitos parâmetros, então vamos apenas copiá-los.

14
00:00:56,070 --> 00:01:04,190
‫Vá até o cabeçalho do componente tick, adicione-o abaixo de nossa reprodução inicial e então vamos copiar

15
00:01:04,490 --> 00:01:09,470
‫essa definição, levá-la para a etapa do componente de gatilho.

16
00:01:10,010 --> 00:01:13,250
‫E uma coisa que notará é que há algumas palavras-chave aqui que podemos remover.

17
00:01:13,250 --> 00:01:15,080
‫Podemos remover a palavra-chave virtual.

18
00:01:15,080 --> 00:01:17,000
‫Essa é geralmente uma regra que podemos seguir.

19
00:01:17,000 --> 00:01:19,370
‫Também podemos remover a palavra-chave override.

20
00:01:19,370 --> 00:01:21,830
‫Essas são coisas que não precisam estar no arquivo C++.

21
00:01:22,310 --> 00:01:24,710
‫Precisamos adicionar o nome da classe.

22
00:01:24,710 --> 00:01:33,020
‫Então você tenta um componente dois pontos, dois pontos, e então substituímos nosso ponto e vírgula por algumas chaves e precisamos fazer

23
00:01:33,020 --> 00:01:35,840
‫a chamada para o componente super tick.

24
00:01:35,840 --> 00:01:43,400
‫Então, porque essa é uma chamada muito longa, vou copiá-la e pegar uma cópia e colá-la nesta.

25
00:01:43,400 --> 00:01:49,010
‫Agora, o que isso está fazendo é essencialmente chamar a função do componente tick do pai.

26
00:01:49,010 --> 00:01:52,640
‫Portanto, o pai, neste caso, é nosso componente de caixa.

27
00:01:53,000 --> 00:02:00,020
‫Portanto, é importante chamá-lo caso haja alguma funcionalidade que precise ser usada e habilitada para que

28
00:02:00,020 --> 00:02:01,340
‫esse componente funcione.

29
00:02:01,640 --> 00:02:06,680
‫Se não fizermos isso, estaremos essencialmente ignorando qualquer uma dessas funcionalidades e as coisas podem quebrar.

30
00:02:06,920 --> 00:02:07,630
‫Tão importante.

31
00:02:07,650 --> 00:02:13,670
‫Lembre-se sempre que é uma chamada para super quando estamos implementando o componente begin, play e tick.

32
00:02:13,850 --> 00:02:18,650
‫Agora vamos copiar nossa mensagem de log de Begin Play e colocá-la no componente tick em vez de dizer componente

33
00:02:18,650 --> 00:02:19,010
‫tick.

34
00:02:19,010 --> 00:02:27,080
‫Fazendo logon para dizer que o componente tick está funcionando aqui e vamos em frente e compilar e ver se esse

35
00:02:27,080 --> 00:02:29,030
‫tick está realmente funcionando.

36
00:02:29,300 --> 00:02:33,920
‫Quando o compilador terminar, vamos em frente e aperte play, abra nosso log de saída e.

37
00:02:34,130 --> 00:02:37,340
‫Hmm, bem, nada parece estar acontecendo agora.

38
00:02:37,340 --> 00:02:43,820
‫A razão para isso é que, em termos de otimização, eles automaticamente não são reais, a maioria dos componentes

39
00:02:43,820 --> 00:02:45,320
‫tem seu carrapato desligado.

40
00:02:45,590 --> 00:02:49,760
‫Portanto, os atores geralmente o ativam por padrão, mas os componentes geralmente o desativam.

41
00:02:49,880 --> 00:02:54,860
‫Então, de fato, se olharmos para alguns dos outros componentes que temos, como nosso movimento que sabemos que o

42
00:02:54,860 --> 00:02:58,550
‫tique-taque funciona para você, você pode ver que no topo do arquivo há isso.

43
00:02:58,550 --> 00:03:06,890
‫Você move uma função e ela tem esse componente primário que o ponto B pode sempre marcar como verdadeiro se você

44
00:03:06,890 --> 00:03:09,710
‫não definir essa propriedade na classe.

45
00:03:09,710 --> 00:03:15,230
‫Então esta é uma propriedade da classe como uma propriedade do componente primário clássico tick e é uma

46
00:03:15,230 --> 00:03:19,100
‫struct que tem um B pode ter uma propriedade tick dentro dele.

47
00:03:19,580 --> 00:03:28,430
‫Então, o que estamos fazendo aqui é definir esse valor padrão na classe move quando a construímos.

48
00:03:28,430 --> 00:03:29,630
‫Isso é o que esta função é.

49
00:03:29,630 --> 00:03:36,920
‫Ele é chamado de construtor e é uma função que é chamada sempre que criamos um novo componente movedor

50
00:03:37,190 --> 00:03:39,920
‫para definir automaticamente os valores padrão.

51
00:03:40,160 --> 00:03:44,570
‫Podemos definir alguns valores padrão no cabeçalho do arquivo, como fizemos com o deve mover o tempo de movimento.

52
00:03:44,810 --> 00:03:50,690
‫Mas a alternativa para fazer sempre no arquivo de cabeçalho é que podemos definir essas propriedades

53
00:03:50,690 --> 00:03:51,620
‫no construtor.

54
00:03:51,860 --> 00:03:54,890
‫Agora eu gostaria que você observasse a sintaxe aqui.

55
00:03:55,100 --> 00:04:02,300
‫Se formos para o mover à frente do arquivo, você verá que um construtor tem o mesmo nome

56
00:04:02,300 --> 00:04:03,290
‫da classe.

57
00:04:03,290 --> 00:04:11,510
‫Portanto, o movedor é o nome da classe para nossos componentes movedores e seu construtor também é chamado de aviso do

58
00:04:11,870 --> 00:04:12,320
‫movedor.

59
00:04:12,320 --> 00:04:14,600
‫Também não tem tipo de retorno.

60
00:04:14,600 --> 00:04:19,460
‫Não faz sentido retornar nada porque estamos construindo um novo objeto.

61
00:04:19,460 --> 00:04:22,670
‫Estamos apenas fazendo essa aula acontecer.

62
00:04:22,880 --> 00:04:30,530
‫Então, tudo o que precisamos é acessar as propriedades dessa classe e também notar que ela está definida como public.

63
00:04:30,530 --> 00:04:35,060
‫Portanto, está na seção pública de nossa definição de classe.

64
00:04:35,210 --> 00:04:39,410
‫Então, eu gostaria de desafiá-lo a habilitar o tique-taque para si mesmo.

65
00:04:39,410 --> 00:04:44,660
‫Então você vai criar um construtor no cabeçalho e ter em mente que a sintaxe

66
00:04:44,660 --> 00:04:51,800
‫que vimos tanto nos filmes de movimento ou H e no grabber H, você vai habilitar o ticking, como vimos novamente

67
00:04:51,800 --> 00:04:54,410
‫nesses outros componentes em seus arquivos CP.

68
00:04:54,710 --> 00:04:56,900
‫Então só você pode copiar como isso está sendo feito.

69
00:04:57,380 --> 00:05:02,380
‫Você também pode fazer o log do construtor para tentar ver quando ele é chamado?

70
00:05:02,390 --> 00:05:03,590
‫É como começar a jogar?

71
00:05:03,720 --> 00:05:07,050
‫Ou ele é chamado antes de entrar em jogo ou o quê?

72
00:05:07,260 --> 00:05:09,600
‫Vá e poste um vídeo e vá.

73
00:05:12,920 --> 00:05:13,250
‫OK.

74
00:05:13,250 --> 00:05:14,030
‫Bem vindo de volta.

75
00:05:14,060 --> 00:05:20,480
‫Então, vamos entrar em nosso componente trigonométrico em H para criar uma nova seção pública.

76
00:05:20,480 --> 00:05:26,120
‫E aqui estamos lembrando dos dois pontos no final e então precisamos chamá-lo exatamente da mesma forma que a

77
00:05:26,120 --> 00:05:26,600
‫classe.

78
00:05:26,600 --> 00:05:27,980
‫Então isso não é componente de gatilho.

79
00:05:27,980 --> 00:05:33,260
‫Não é você acionar, é você acionar os componentes por completo.

80
00:05:33,260 --> 00:05:39,710
‫E então não temos nenhum argumento neste construtor, então colocamos apenas parênteses vazios e depois um ponto e

81
00:05:39,710 --> 00:05:41,540
‫vírgula no final da linha.

82
00:05:41,540 --> 00:05:46,850
‫Agora podemos ir para o arquivo CPP e podemos fazer a implementação aqui.

83
00:05:46,860 --> 00:05:48,230
‫Novamente, não precisamos de um tipo de retorno.

84
00:05:48,230 --> 00:05:53,330
‫Então é só você acionar componentes, os dois pontos.

85
00:05:53,330 --> 00:05:58,280
‫Colon você aciona componentes um pouco repetitivos, mas é assim que funciona.

86
00:05:58,610 --> 00:06:05,210
‫Em seguida, colocamos algumas chaves e aqui podemos fazer qualquer um dos nossos códigos de configuração para fornecer os valores padrão para

87
00:06:05,510 --> 00:06:06,920
‫a instância da classe.

88
00:06:07,430 --> 00:06:12,470
‫Então, se formos pegar um CPP e der uma olhada no que ele está fazendo, você pode ver

89
00:06:12,470 --> 00:06:16,460
‫que tem seu componente principal, o ponto B, que pode ser igual a verdade.

90
00:06:16,790 --> 00:06:17,750
‫Então vamos digitar isso.

91
00:06:17,750 --> 00:06:26,330
‫O componente primário tick dot B pode sempre marcar B é apenas um prefixo que costumamos usar quando as coisas têm

92
00:06:26,330 --> 00:06:31,280
‫um tipo booleano definido igual a true com um t minúsculo.

93
00:06:31,760 --> 00:06:38,690
‫Portanto, como as alterações em um construtor nem sempre são propagadas corretamente na codificação ao vivo, vou fechar

94
00:06:38,690 --> 00:06:39,740
‫o editor.

95
00:06:40,130 --> 00:06:46,370
‫Vou reconstruir a partir do código do Visual Studio e, em seguida, reiniciarei a partir do novo arquivo de

96
00:06:46,370 --> 00:06:46,790
‫projeto.

97
00:06:47,030 --> 00:06:51,230
‫Quando isso estiver pronto, vou em frente e apertei o play, dê uma olhada no nosso log de saída.

98
00:06:51,470 --> 00:06:54,620
‫E com certeza, podemos ver que o componente do gatilho está funcionando.

99
00:06:55,250 --> 00:07:00,170
‫Então, vou remover essa mensagem de log porque é irritante e fechei o log de saída

100
00:07:00,170 --> 00:07:04,430
‫no código do Visual Studio, remova essa mensagem de log no componente tick.

101
00:07:04,430 --> 00:07:05,780
‫Podemos ver que está funcionando agora.

102
00:07:06,500 --> 00:07:10,670
‫E o que queríamos fazer é fazer um log em nosso construtor.

103
00:07:11,840 --> 00:07:17,960
‫Então, vamos fazer um novo log dizendo construção, ver se a codificação ao vivo pode pegá-lo desta vez e então vamos

104
00:07:17,960 --> 00:07:21,620
‫para o nosso log de saída e dar uma olhada imediatamente.

105
00:07:21,650 --> 00:07:23,450
‫Nada aparecendo aqui.

106
00:07:24,290 --> 00:07:28,160
‫Bem, se eu for em frente e apertar play, dê uma olhada no meu log de saída.

107
00:07:28,370 --> 00:07:33,950
‫Eu posso ver a mensagem de log de que o componente do gatilho está ativo e muito antes disso.

108
00:07:33,950 --> 00:07:38,720
‫Na verdade, você pode ver que está construindo muito à frente quando está apenas criando o mundo.

109
00:07:39,050 --> 00:07:44,600
‫Começa a construir muito cedo antes de começar a jogar, porque precisamos preparar o mundo inteiro antes

110
00:07:44,600 --> 00:07:46,130
‫de começar a jogar.

111
00:07:46,550 --> 00:07:51,440
‫Então acontece quando apertamos o play, mas na verdade também acontece no editor.

112
00:07:51,440 --> 00:07:58,070
‫Então, se eu selecionar algum ator aqui e adicionar um componente a ele e adicionar nosso gatilho, dê uma olhada no meu

113
00:07:58,070 --> 00:07:59,240
‫log de saída.

114
00:07:59,240 --> 00:08:03,020
‫Então você pode ver que a mensagem de construção foi realmente impressa.

115
00:08:03,020 --> 00:08:10,430
‫Portanto, precisamos ter cuidado com o que fazemos em nossos construtores, porque eles são chamados, o código C++ é

116
00:08:10,430 --> 00:08:14,480
‫chamado apenas quando estamos editando, nem mesmo jogando nosso jogo.

117
00:08:14,480 --> 00:08:19,790
‫Esses objetos estão sendo criados e, portanto, configurados e, portanto, precisam chamar seu construtor.

118
00:08:20,120 --> 00:08:25,850
‫Vou prosseguir e excluir o gatilho novamente e esclarecer um pouco removendo, construindo a mensagem de

119
00:08:25,850 --> 00:08:29,960
‫log e nossa mensagem de log de início de reprodução também.

120
00:08:30,200 --> 00:08:30,770
‫Coisas boas.

121
00:08:30,770 --> 00:08:37,370
‫Então, nesta palestra, vimos como podemos configurar nossos próprios componentes para que sejam quase idênticos aos criados

122
00:08:37,370 --> 00:08:40,880
‫nos modelos para componentes de cena e componentes ACT.

123
00:08:40,880 --> 00:08:47,390
‫Vimos como usar um construtor para fornecer valores padrão para propriedades em nossa classe.

124
00:08:47,750 --> 00:08:49,340
‫Vejo você na próxima palestra.

