﻿1
00:00:04,890 --> 00:00:05,790
‫Olá e bem-vindo.

2
00:00:05,790 --> 00:00:12,090
‫Nesta palestra, vamos aprender sobre objetos e como podemos usar a funcionalidade em objetos e

3
00:00:12,090 --> 00:00:16,110
‫seus dados para começar a criar programas interessantes.

4
00:00:16,110 --> 00:00:17,430
‫Vamos mergulhar.

5
00:00:18,940 --> 00:00:22,690
‫Então, vamos começar esta palestra apresentando um novo conceito.

6
00:00:22,690 --> 00:00:27,400
‫O conceito de objetos é absolutamente vital para muitas linguagens de programação.

7
00:00:28,030 --> 00:00:35,230
‫Então um objeto é essencialmente algo em que você quer representar uma coisa, algo como em um jogo você

8
00:00:35,230 --> 00:00:37,050
‫pode ter um aventureiro.

9
00:00:37,060 --> 00:00:44,710
‫Ele é um objeto em seu mundo e pode ter alguns dados que representem o que ele é.

10
00:00:44,980 --> 00:00:50,020
‫Coisas como seus pontos de experiência, por exemplo, ou talvez seu nível.

11
00:00:50,020 --> 00:00:51,430
‫Ele é um aventureiro de nível dois.

12
00:00:51,430 --> 00:00:55,000
‫Coisas assim são os dados que compõem um aventureiro.

13
00:00:55,510 --> 00:00:57,310
‫Mas isso não é tudo que um aventureiro é.

14
00:00:57,550 --> 00:01:04,990
‫Um aventureiro também tem algumas funcionalidades, como a capacidade de disparar flechas, como poder pular e

15
00:01:04,990 --> 00:01:06,400
‫assim por diante.

16
00:01:07,270 --> 00:01:09,370
‫Existem outras coisas que podem ser objetos, no entanto.

17
00:01:09,400 --> 00:01:15,700
‫Por exemplo, podemos representar coisas no mundo real, no computador, como o jogador, e podemos armazenar

18
00:01:15,700 --> 00:01:20,770
‫propriedades relevantes para o jogador, como o jogador está usando um controle?

19
00:01:21,370 --> 00:01:23,930
‫O jogador é o número um ou o número dois?

20
00:01:23,950 --> 00:01:29,380
‫Esses tipos de dados e a funcionalidade relevante, como obter suas entradas atuais.

21
00:01:29,890 --> 00:01:35,200
‫Eles estão segurando a barra de espaço, por exemplo, para obter o nível de habilidade do jogador, e então

22
00:01:35,200 --> 00:01:38,440
‫você pode ter objetos completamente abstratos, coisas como uma lista.

23
00:01:38,740 --> 00:01:42,010
‫Então você pode ter uma lista com os itens um, dois, três, quatro.

24
00:01:42,010 --> 00:01:44,430
‫E é ou talvez possa ter quaisquer itens que você goste nele.

25
00:01:44,440 --> 00:01:50,530
‫Os dados podem ser alterados, mas também podem ter alguma funcionalidade, como remover o último item da lista ou

26
00:01:50,530 --> 00:01:52,420
‫adicionar ao final da lista.

27
00:01:52,780 --> 00:01:55,120
‫Então você pode ver que os objetos são muito, muito flexíveis.

28
00:01:55,120 --> 00:01:58,390
‫Eles podem ser usados para representar uma infinidade de coisas diferentes.

29
00:01:58,810 --> 00:02:05,230
‫E você notará que a funcionalidade na parte inferior desses objetos é realmente o que esses nós são

30
00:02:05,230 --> 00:02:08,320
‫ou o que muitos nós são no Blueprint.

31
00:02:08,410 --> 00:02:14,830
‫Então eles começam a obter um pouco de mapeamento entre os objetos e a funcionalidade.

32
00:02:15,490 --> 00:02:15,760
‫OK.

33
00:02:15,760 --> 00:02:19,630
‫Então, nós introduzimos um monte de novos conceitos que vamos recapitular um pouco.

34
00:02:19,900 --> 00:02:24,310
‫Então, dissemos que os objetos são coleções de dados e funcionalidades.

35
00:02:25,030 --> 00:02:28,870
‫O que talvez não tenhamos percebido é que os atores são na verdade objetos.

36
00:02:28,870 --> 00:02:34,660
‫Atores são objetos que podem entrar em um nível e você pode ver isso se você entrar no seu nível, você

37
00:02:34,660 --> 00:02:39,820
‫selecionar o cubo, você pode ver que há um monte de detalhes, pintar uma carga de dados.

38
00:02:39,820 --> 00:02:45,130
‫E, como veremos daqui a pouco, há uma carga de funcionalidades no formulário do nó e no blueprint também.

39
00:02:46,120 --> 00:02:47,320
‫Depois, há componentes.

40
00:02:47,350 --> 00:02:50,800
‫Agora componentes que não entramos em detalhes antes, mas aqui estão eles.

41
00:02:51,070 --> 00:02:56,980
‫Eles são objetos que podem ir em um ator, enquanto os atores vão no nível, os componentes vão no próprio

42
00:02:56,980 --> 00:02:57,460
‫ator.

43
00:02:57,730 --> 00:03:03,190
‫Assim, com o Cubo selecionado, você pode ver na parte superior do painel de detalhes que existe esse componente de

44
00:03:03,190 --> 00:03:03,910
‫malha estática.

45
00:03:04,570 --> 00:03:11,050
‫Se você realmente clicar nele, verá que o painel de detalhes obtém um conjunto restrito de detalhes.

46
00:03:11,050 --> 00:03:19,180
‫Ele mostra não todas as propriedades que estão disponíveis no ator Cube, mas apenas o subconjunto de propriedades que

47
00:03:19,180 --> 00:03:25,780
‫pertencem ao componente de malha estática, que é basicamente o componente responsável por nos dizer

48
00:03:25,780 --> 00:03:27,790
‫como desenhar um cubo.

49
00:03:28,480 --> 00:03:34,270
‫Agora, esses objetos geralmente podem ter muito mais dados do que isso, e isso significa que eles podem

50
00:03:34,270 --> 00:03:40,360
‫se tornar bastante pesados para serem manipulados pelo seu computador e, certamente, se ele tiver que copiar esses objetos.

51
00:03:40,810 --> 00:03:46,990
‫Então, em vez de fazer isso, usamos uma estrutura inteligente chamada referência que é essencialmente apenas

52
00:03:46,990 --> 00:03:53,800
‫um endereço ou onde posso encontrar esse objeto na memória do computador para que eu não precise mover o

53
00:03:53,800 --> 00:03:55,450
‫objeto o tempo todo?

54
00:03:55,810 --> 00:04:01,750
‫Abordaremos um pouco mais sobre como isso realmente funciona na memória quando chegarmos ao C++, mas, por enquanto, basta

55
00:04:01,750 --> 00:04:03,910
‫saber que é apenas um endereço.

56
00:04:04,870 --> 00:04:09,640
‫Então, o que podemos fazer, por exemplo, vamos mergulhar no Unreal.

57
00:04:09,640 --> 00:04:17,110
‫Se estivéssemos em nosso nível principal e quiséssemos usar alguma funcionalidade em nosso cubo, então o que eu posso fazer é selecionar o cubo na cena e

58
00:04:17,110 --> 00:04:22,030
‫então eu posso ir para meu plano de nível e clicar com o botão direito, e

59
00:04:22,390 --> 00:04:27,490
‫então eu posso clique em uma referência de criação para o Cubo e isso cria um novo nó.

60
00:04:28,000 --> 00:04:29,170
‫Agora o que isso está fazendo?

61
00:04:29,170 --> 00:04:32,980
‫Bem, isso está basicamente nos dizendo que este é o endereço do Cubo.

62
00:04:32,980 --> 00:04:35,740
‫Se você quiser fazer algo com o cubo, aqui é onde você o encontra.

63
00:04:36,250 --> 00:04:41,230
‫O que acontece no Blueprint quando você roda o jogo é que ele vai encontrar aquele cubo.

64
00:04:41,230 --> 00:04:47,080
‫E então você pode fazer perguntas ou usar a funcionalidade no cubo, como dizer, Ei, onde mora seu

65
00:04:47,080 --> 00:04:48,640
‫componente de malha estática?

66
00:04:48,820 --> 00:04:51,220
‫E ele vai, ok, os componentes de malha estática ali.

67
00:04:51,220 --> 00:04:56,260
‫Então vamos e encontramos o componente de malha estática e então podemos fazer perguntas sobre isso e eles podem dizer: Ei, qual

68
00:04:56,260 --> 00:04:57,310
‫é o seu nome?

69
00:04:57,310 --> 00:04:58,420
‫Componente de malha estática.

70
00:04:58,660 --> 00:05:01,360
‫E o componente estático pode dizer: Ei, meu nome é Bob.

71
00:05:01,630 --> 00:05:07,510
‫E é assim que podemos usar essas referências e usar a funcionalidade de vários objetos diferentes para

72
00:05:07,810 --> 00:05:09,400
‫chegar onde queremos ir.

73
00:05:09,670 --> 00:05:13,750
‫Agora dissemos que a referência é onde encontrar um objeto.

74
00:05:13,990 --> 00:05:17,740
‫E agora outra coisa que vale a pena destacar é um painel de dados.

75
00:05:17,740 --> 00:05:18,250
‫O que é uma.

76
00:05:18,440 --> 00:05:21,260
‫TAPPIN Bem, esta referência de cubo na verdade tem um.

77
00:05:21,260 --> 00:05:26,590
‫Esta pequena coisa redonda azul no lado direito é um pino de dados.

78
00:05:26,600 --> 00:05:30,470
‫Na verdade, já vimos isso antes nos nós da string de impressão no lado esquerdo, e eles

79
00:05:30,470 --> 00:05:31,040
‫são roxos.

80
00:05:31,490 --> 00:05:37,190
‫E como eles são diferentes dos outros tipos de pinos que vimos, esses pinos brancos?

81
00:05:37,700 --> 00:05:42,530
‫Bem, o pino de dados é a entrada ou saída de dados para um nó.

82
00:05:42,770 --> 00:05:47,630
‫Então um nó, se estiver no lado esquerdo, é a entrada, são os dados com os quais o nó pode trabalhar.

83
00:05:47,930 --> 00:05:51,950
‫Se estiver do lado direito, são os dados que o Node produz.

84
00:05:52,190 --> 00:06:00,430
‫Portanto, no caso do cubo, esse nó produz uma referência ao ator do cubo e, em seguida, aos pinos de execução.

85
00:06:00,710 --> 00:06:06,410
‫Estes são realmente como esses pinos brancos são realmente chamados para diferenciá-los dos pinos de dados,

86
00:06:06,620 --> 00:06:09,680
‫e eles ainda são quando executar o nó.

87
00:06:09,680 --> 00:06:12,230
‫Portanto, os pinos de dados são com os quais executar o nó.

88
00:06:12,440 --> 00:06:14,660
‫Os pinos de execução são quando executá-lo.

89
00:06:14,900 --> 00:06:21,230
‫Então, com todas essas informações, vamos usar um pouco da funcionalidade desses objetos.

90
00:06:21,590 --> 00:06:23,300
‫Então temos nossa referência de cubo.

91
00:06:23,300 --> 00:06:30,050
‫Se arrastarmos o pino de referência do cubo, você poderá usar todas as funcionalidades desse cubo.

92
00:06:30,380 --> 00:06:36,230
‫Como eu disse, temos um componente no cubo chamado componente de malha estática, e eu quero seguir em frente

93
00:06:36,230 --> 00:06:38,360
‫e obter uma referência para isso.

94
00:06:38,360 --> 00:06:42,770
‫Então, vamos procurar obter componentes de malha estática.

95
00:06:43,340 --> 00:06:46,970
‫E o item mais baixo para mim é obter o componente de malha estática.

96
00:06:46,970 --> 00:06:47,870
‫Eu posso clicar nisso.

97
00:06:48,110 --> 00:06:54,560
‫Obtemos um novo nó com a entrada sendo uma referência de cubo e a saída sendo uma referência a isso.

98
00:06:54,560 --> 00:06:56,240
‫É componente de malha estática.

99
00:06:56,600 --> 00:07:01,640
‫Então, se arrastarmos isso, podemos solicitar a funcionalidade do componente de malha

100
00:07:01,640 --> 00:07:11,270
‫estática, como obter nome de exibição, e isso nos obtém a entrada da referência do componente de malha estática e usa sua funcionalidade de obter

101
00:07:11,270 --> 00:07:19,400
‫nome de exibição e, em seguida, retorna uma string ou um valor de texto que podemos imprimir usando o nó

102
00:07:19,400 --> 00:07:20,270
‫print string.

103
00:07:20,270 --> 00:07:26,240
‫Então, podemos arrastar isso e digitar print string e, em seguida, podemos conectar as notas de execução para que

104
00:07:26,240 --> 00:07:32,480
‫sejam executadas após as outras duas strings de impressão no Begin Play, você notará que alguns desses nós não têm

105
00:07:32,480 --> 00:07:34,700
‫pinos de execução e pode ser confuso.

106
00:07:34,700 --> 00:07:35,690
‫Quando eles são executados?

107
00:07:35,930 --> 00:07:42,470
‫Bem, eles são executados sempre que os blueprints acharem apropriado, essencialmente sempre que for necessário por um nó

108
00:07:42,470 --> 00:07:44,810
‫que tenha um pino de execução.

109
00:07:45,200 --> 00:07:50,030
‫Então, se formos em frente e apertar play, você pode ver que ele aparece com um nome cubo componente de

110
00:07:50,030 --> 00:07:55,550
‫malha estática zero, algo como isso é um programa de bits, talvez não seja, não é Bob. É um pouco mais complicado do

111
00:07:55,550 --> 00:07:56,150
‫que isso.

112
00:07:56,180 --> 00:08:01,940
‫Mas você pode ver que basicamente codificamos essa cadeia de perguntas que eu tinha no meu slide.

113
00:08:02,510 --> 00:08:09,050
‫Então, eu gostaria de desafiá-lo a ir em frente e obter a massa de nossos componentes de malha estática.

114
00:08:09,260 --> 00:08:11,240
‫Já o configuramos no passado.

115
00:08:11,240 --> 00:08:15,890
‫Se você entrar no nível e der uma olhada no painel de detalhes, você pode ver que uma das propriedades

116
00:08:15,890 --> 00:08:20,270
‫físicas era a massa e nós configuramos isso como uma parte dos dados no componente de malha estática.

117
00:08:20,780 --> 00:08:26,510
‫Bem, se você excluir o nó get display name e arrastar o componente de malha

118
00:08:26,510 --> 00:08:33,380
‫estática, poderá pesquisar por obter massa e isso deverá obter os dados no componente de malha estática e ver se

119
00:08:33,410 --> 00:08:39,650
‫você pode imprimir esse valor usando nosso vídeo de pausa de nó de string de impressão e experimente.

120
00:08:43,240 --> 00:08:43,890
‫OK.

121
00:08:43,900 --> 00:08:44,680
‫Bem vindo de volta.

122
00:08:44,890 --> 00:08:51,610
‫Então, se voltarmos ao blueprint, apenas exclua nosso nome de exibição, arraste o componente de malha estática e

123
00:08:51,610 --> 00:08:53,380
‫procure por get mass.

124
00:08:54,010 --> 00:08:55,780
‫Então podemos puxar esse nó.

125
00:08:56,050 --> 00:09:00,580
‫Temos um valor de retorno aqui e esse será nosso valor de massa.

126
00:09:00,580 --> 00:09:05,140
‫Você pode ver se você passar o mouse sobre ele diz que retorna a massa desse componente em quilogramas.

127
00:09:05,380 --> 00:09:12,300
‫E, a propósito, o valor de retorno significa apenas os dados de saída e, em seguida, podemos arrastar esse nó para nossa string de

128
00:09:12,310 --> 00:09:14,290
‫entrada para a string de impressão.

129
00:09:14,710 --> 00:09:17,770
‫E você vê que cria um pequeno nó de conversão que está tudo bem.

130
00:09:17,770 --> 00:09:22,630
‫Está convertendo de qualquer valor que seja em algo que a string de impressão aceitará.

131
00:09:23,020 --> 00:09:28,990
‫Podemos ir em frente e clicar em play e você vê que temos o valor de 1000, que sabemos que foi a massa que

132
00:09:28,990 --> 00:09:30,940
‫configuramos ou o que você realmente configura.

133
00:09:30,940 --> 00:09:34,570
‫Você pode alterar isso e ver que esse valor também será alterado.

134
00:09:34,930 --> 00:09:36,190
‫Então é isso para esta palestra.

135
00:09:36,190 --> 00:09:42,790
‫Aprendemos sobre objetos e suas referências e como usar nós de funcionalidade em blueprints.

