﻿1
00:00:04,330 --> 00:00:05,080
‫Olá e bem-vindo.

2
00:00:05,080 --> 00:00:11,230
‫Nesta palestra, vamos fazer com que nossos componentes de gatilho imprimam olhando quando estiver em um espaço

3
00:00:11,410 --> 00:00:14,770
‫vazio e quando colocarmos a gárgula, ela será desbloqueada.

4
00:00:14,950 --> 00:00:17,530
‫E se eu tirá-lo de novo, ele ficará trancado novamente.

5
00:00:17,980 --> 00:00:23,110
‫E a maneira como faremos isso é retirando nossa funcionalidade para descobrir se temos

6
00:00:23,110 --> 00:00:26,140
‫um ator aceitável em sua própria função separada.

7
00:00:26,290 --> 00:00:29,140
‫E vou aprender sobre retornos antecipados dentro de quatro ciclos.

8
00:00:29,380 --> 00:00:30,820
‫Para isso, vamos mergulhar.

9
00:00:31,950 --> 00:00:36,450
‫Então, esse pedaço de código que temos e o componente de tecnologia já está começando a parecer uma função para

10
00:00:36,450 --> 00:00:36,830
‫mim.

11
00:00:36,840 --> 00:00:43,560
‫Essencialmente, é uma função que se apossa do ator aceitável, se tivermos um, para que possamos ir em

12
00:00:43,560 --> 00:00:49,470
‫frente ao nosso componente de gatilho ponto H e, na seção privada, criar essa função.

13
00:00:49,740 --> 00:00:51,810
‫Agora, qual deve ser o seu tipo de retorno?

14
00:00:51,840 --> 00:00:58,920
‫Bem, acho que deveria ser um ponteiro de ator A, que sempre pode ser um ponteiro nulo se não houver um ator

15
00:00:58,920 --> 00:00:59,490
‫aceitável.

16
00:00:59,850 --> 00:01:05,160
‫Então, podemos chamar isso de obter parênteses vazios de ator aceitável.

17
00:01:05,160 --> 00:01:06,420
‫Não precisamos dar nada.

18
00:01:06,420 --> 00:01:12,180
‫E porque não muda nossa função, podemos torná-la constante.

19
00:01:12,540 --> 00:01:17,700
‫Vamos implementar isso neste arquivo heap, indo para um recuo.

20
00:01:17,700 --> 00:01:26,760
‫É dar a ele um ponto-e-vírgula do componente acionador e substituí-lo por chaves.

21
00:01:27,630 --> 00:01:35,490
‫E então o código que queremos é basicamente o conteúdo do componente tick, exceto que o que não queremos fazer

22
00:01:35,490 --> 00:01:37,440
‫é apenas registrar isso.

23
00:01:37,440 --> 00:01:39,360
‫Desbloqueamos um ator aqui.

24
00:01:39,780 --> 00:01:47,250
‫O que queremos fazer é no caso de encontrarmos esse ator, queremos essencialmente devolvê-lo.

25
00:01:47,250 --> 00:01:48,810
‫Portanto, há algumas maneiras de fazermos isso.

26
00:01:48,810 --> 00:01:56,310
‫Poderíamos dizer no início de nossa função que existe um ponteiro de ator, que será o ator de

27
00:01:56,310 --> 00:02:00,570
‫retorno e, por padrão, definimos isso como ponteiro nulo.

28
00:02:00,990 --> 00:02:04,170
‫Portanto, não há ator que vamos retornar.

29
00:02:04,470 --> 00:02:09,300
‫Mas quando passamos por nosso loop for e eventualmente encontramos um ator que tem

30
00:02:09,300 --> 00:02:16,740
‫a tag aceitável, então podemos dizer, Ei, o ator de retorno deve realmente apontar para o ponteiro de ator que encontramos aqui

31
00:02:17,010 --> 00:02:17,700
‫no array.

32
00:02:18,030 --> 00:02:22,410
‫E então, no final do loop for, após o loop completo terminar, passamos por todos os atores.

33
00:02:22,680 --> 00:02:28,620
‫Podemos ir em frente e retornar a variável de ator de retorno porque esse é o tipo certo.

34
00:02:29,430 --> 00:02:30,150
‫Tudo bem.

35
00:02:30,420 --> 00:02:35,340
‫Mas exige que criemos uma variável e também que executemos todo o loop completo, mesmo

36
00:02:35,340 --> 00:02:37,860
‫que já tenhamos encontrado um ator aceitável.

37
00:02:38,550 --> 00:02:42,150
‫Portanto, uma maneira melhor de fazer isso é usar um retorno antecipado.

38
00:02:42,150 --> 00:02:48,180
‫E já vimos esse tipo de coisa antes em eu pego um CP onde fizemos isso.

39
00:02:48,180 --> 00:02:54,180
‫Se o handle de física for igual a um pequeno ponteiro, então retornamos e o resto do componente não

40
00:02:54,180 --> 00:02:55,080
‫precisa rodar.

41
00:02:55,350 --> 00:02:59,910
‫Podemos usar o mesmo tipo de eficiência interna para saltos também.

42
00:03:00,300 --> 00:03:06,870
‫Então, o que vou fazer é se encontrarmos o ator aceitável, vamos apenas fazer um ator de retorno.

43
00:03:06,900 --> 00:03:11,750
‫Estamos literalmente retornando o ponteiro que acabamos de encontrar neste loop for e o resto do loop for

44
00:03:11,790 --> 00:03:13,170
‫não precisa ser executado.

45
00:03:13,890 --> 00:03:20,280
‫No entanto, se irmos até o final do loop for e não encontrarmos nada, não retornarmos nada,

46
00:03:20,280 --> 00:03:23,790
‫o retorno interromperia o loop for, sairia da função.

47
00:03:24,060 --> 00:03:30,150
‫Mas se chegarmos ao final, precisamos retornar algo por padrão e é aqui que podemos retornar apenas

48
00:03:30,480 --> 00:03:31,680
‫um ponteiro nulo.

49
00:03:31,980 --> 00:03:33,390
‫Portanto, este é o valor padrão.

50
00:03:33,390 --> 00:03:35,430
‫Significa que passamos por todo o loop for.

51
00:03:35,730 --> 00:03:37,980
‫Vimos que não existe um ator aceitável.

52
00:03:37,990 --> 00:03:40,170
‫Nenhum dos atores estava se sobrepondo ao nosso.

53
00:03:41,330 --> 00:03:42,770
‫Com a etiqueta correta.

54
00:03:42,830 --> 00:03:44,960
‫Então, retornamos ponteiro nulo.

55
00:03:45,380 --> 00:03:51,050
‫Então agora isso significa que eu tenho essa variável de ator de retorno redundante da qual posso ir em frente e me livrar.

56
00:03:51,380 --> 00:03:53,450
‫E isso lê realmente muito limpo.

57
00:03:53,450 --> 00:03:57,830
‫Estamos passando, estamos pegando os atores sobrepostos, estamos fazendo um loop completo sobre eles.

58
00:03:58,130 --> 00:04:02,600
‫Se cada ator que testamos, ele tem a etiqueta aceitável?

59
00:04:02,870 --> 00:04:04,520
‫Se isso acontecer, paramos por aí.

60
00:04:04,550 --> 00:04:05,480
‫Nós devolvemos aquele.

61
00:04:05,780 --> 00:04:08,180
‫Se nenhum deles tiver, retornamos um ponteiro nulo.

62
00:04:08,390 --> 00:04:11,750
‫Então vamos desafiá-lo a logar se encontrarmos o ator.

63
00:04:11,750 --> 00:04:14,300
‫Então chame nossa função em seu componente tick.

64
00:04:14,630 --> 00:04:20,180
‫Verifique se o ponteiro é nulo e registre em ambos os casos, tanto se tivermos um ator ou se não usarmos

65
00:04:20,180 --> 00:04:21,860
‫uma instrução F e um else.

66
00:04:21,860 --> 00:04:23,300
‫Pause o vídeo e vá em frente.

67
00:04:26,430 --> 00:04:26,780
‫OK.

68
00:04:26,790 --> 00:04:27,600
‫Bem vindo de volta.

69
00:04:27,990 --> 00:04:30,090
‫Então, vamos voltar aos nossos componentes de tecnologia.

70
00:04:30,090 --> 00:04:36,540
‫O que vamos fazer é criar uma variável, um ponteiro de ator, que será o ator, que

71
00:04:36,990 --> 00:04:41,310
‫é igual a obter o ator aceitável que vamos fazer.

72
00:04:41,310 --> 00:04:50,580
‫Se o ator não for igual ao ponteiro nulo, então no corpo disso vamos fazer um desbloqueio de diálogo e então no outro você loga

73
00:04:50,580 --> 00:04:57,750
‫desta vez olhando porque esse é o comportamento que eu quero que nosso componente de gatilho e mova-o juntos

74
00:04:57,750 --> 00:05:03,120
‫para ter é o se você tem a gárgula lá, ele vai desbloquear.

75
00:05:03,120 --> 00:05:09,780
‫Ele estará usando o movedor e será travado novamente se basicamente desmarcarmos a caixa de seleção em

76
00:05:09,780 --> 00:05:13,680
‫movimento se removermos a gárgula, então vamos compilar isso.

77
00:05:13,890 --> 00:05:15,750
‫Então vamos em frente e aperte o play.

78
00:05:15,960 --> 00:05:19,380
‫Você pode ver que está travando porque não temos uma gárgula lá.

79
00:05:19,590 --> 00:05:22,530
‫Pegue a gárgula e traga-o e pronto.

80
00:05:22,530 --> 00:05:28,350
‫Agora está desbloqueando, tire-o e está travando novamente, parecendo perfeito.

81
00:05:28,350 --> 00:05:29,970
‫Se eu entrar, nada acontece.

82
00:05:29,970 --> 00:05:30,870
‫É só travar novamente.

83
00:05:31,350 --> 00:05:37,860
‫Assim, conseguimos descobrir com sucesso se temos algo em nosso componente de gatilho ou

84
00:05:37,980 --> 00:05:38,610
‫não.

85
00:05:38,940 --> 00:05:40,650
‫Agora só precisamos fazê-lo fazer alguma coisa.

86
00:05:40,650 --> 00:05:42,660
‫E esse será o assunto da próxima palestra.

87
00:05:42,690 --> 00:05:43,290
‫Eu vou ver isso.

