﻿1
00:00:04,460 --> 00:00:05,320
‫Olá e bem-vindo.

2
00:00:05,330 --> 00:00:09,770
‫Nesta palestra, vamos aprender sobre algo chamado objeto mundo, um objeto muito importante

3
00:00:09,770 --> 00:00:10,640
‫no Unreal.

4
00:00:10,850 --> 00:00:15,950
‫Vamos ver como podemos chegar ao tempo atual em nosso jogo a partir deste objeto e imprimi-lo

5
00:00:15,950 --> 00:00:18,350
‫no console até o final desta palestra.

6
00:00:18,620 --> 00:00:20,420
‫Então vamos mergulhar e ver como isso funciona.

7
00:00:21,350 --> 00:00:28,190
‫Então, para poder fazer traçadores de linha ou varreduras, precisamos entender outro conceito, outro tipo

8
00:00:28,190 --> 00:00:34,280
‫de objeto que existe em terra irreal, e esse objeto é o mundo.

9
00:00:34,670 --> 00:00:37,610
‫Então, lidamos muito com níveis.

10
00:00:37,610 --> 00:00:41,330
‫Então, se formos ao nosso sorteio de conteúdo, também lidamos com mapas.

11
00:00:41,690 --> 00:00:46,520
‫Então, o mapa e o nível que falamos como sinônimos.

12
00:00:46,850 --> 00:00:50,840
‫No entanto, um mundo é mais ou menos isso no começo.

13
00:00:51,110 --> 00:00:59,060
‫No início era o novo mundo e o novo mundo é o tipo, é a classe para basicamente o ambiente que

14
00:00:59,060 --> 00:01:01,730
‫estamos vendo quando jogamos um jogo.

15
00:01:02,360 --> 00:01:05,300
‫Mas não é necessariamente apenas um nível.

16
00:01:05,300 --> 00:01:12,800
‫Você pode carregar um nível que é chamado de nível você em C++, que é apenas uma coleção dos atores que devemos

17
00:01:12,800 --> 00:01:14,720
‫trazer para o novo mundo.

18
00:01:14,720 --> 00:01:19,700
‫Assim, você pode carregar um nível em seu novo mundo, mas não necessariamente apenas um nível.

19
00:01:19,700 --> 00:01:23,270
‫Você pode carregar em vários níveis em um único mundo.

20
00:01:23,600 --> 00:01:28,220
‫E isso porque muitas vezes temos esses níveis de streaming, temos níveis muito grandes em que não queremos

21
00:01:28,220 --> 00:01:32,300
‫carregar tudo, todos os atores no nível de uma só vez por motivos de desempenho.

22
00:01:32,600 --> 00:01:38,870
‫Então, dividimos em vários níveis e isso nos permite trazer apenas partes da cena conforme

23
00:01:38,870 --> 00:01:39,560
‫necessário.

24
00:01:39,950 --> 00:01:44,720
‫Então, se dermos uma olhada na página de documentação do New World, acho que descreve de forma bastante

25
00:01:44,720 --> 00:01:50,960
‫sucinta que o mundo é o objeto de nível superior que representa um mapa ou uma caixa de areia na qual os atores e

26
00:01:50,960 --> 00:01:52,580
‫componentes existirão e serão renderizados.

27
00:01:52,850 --> 00:01:57,230
‫E se você olhar um pouco mais para baixo, ele diz que o mundo pode

28
00:01:57,560 --> 00:02:03,830
‫ser um único nível persistente, basicamente significando um nível que estará constantemente lá ou com potencialmente uma lista opcional de níveis de

29
00:02:03,830 --> 00:02:07,460
‫streaming e níveis bizarros que podem ser carregados sempre que querer.

30
00:02:08,270 --> 00:02:10,550
‫Agora, por que isso é interessante?

31
00:02:11,000 --> 00:02:14,540
‫É interessante porque nos permite fazer rastreamento de linha.

32
00:02:14,540 --> 00:02:20,540
‫Se pesquisarmos a documentação aqui para rastreamento de linha, você verá que há um monte de

33
00:02:20,570 --> 00:02:28,280
‫funcionalidades aqui, particularmente a que é mais interessante para nós é o rastreamento de linha único por canal ou o

34
00:02:28,280 --> 00:02:35,960
‫rastreamento de linha multi por canal, que essencialmente nos permitem respectivamente para pegar aquele primeiro objeto atingido ou todos os

35
00:02:35,960 --> 00:02:38,930
‫objetos atingidos por um traço de linha.

36
00:02:39,410 --> 00:02:45,260
‫E você pode ver que as listas de argumentos, principalmente se eu olhar para a linha trace

37
00:02:45,260 --> 00:02:52,220
‫single, a lista de argumentos tem o início tem o fim, tem um canal de trace para o qual fazer o trace.

38
00:02:52,640 --> 00:02:58,040
‫E na verdade nos dá um resultado na lista de parâmetros, o que é um pouco estranho e iremos

39
00:02:58,040 --> 00:02:59,360
‫cobrir isso em breve.

40
00:03:00,020 --> 00:03:01,940
‫Mas de qualquer forma, este é o traço de linha.

41
00:03:01,940 --> 00:03:05,420
‫Também temos a capacidade de fazer uma varredura.

42
00:03:05,540 --> 00:03:09,740
‫Então, se procurarmos por varredura, você poderá ver que há uma varredura multi canal bi.

43
00:03:09,980 --> 00:03:12,380
‫Há também um single de varredura por canal.

44
00:03:12,710 --> 00:03:20,120
‫E aqui, além do início e do fim, você também tem um tipo de forma de colisão f colisão que você pode

45
00:03:20,120 --> 00:03:20,630
‫passar.

46
00:03:20,630 --> 00:03:26,840
‫Basicamente, se clicarmos nessa colisão F, uma forma que você pode acompanhar na documentação em tempo

47
00:03:26,840 --> 00:03:33,560
‫real, leia mais sobre ela e verá que a forma de colisão basicamente suporta ser uma esfera, uma

48
00:03:33,620 --> 00:03:36,230
‫caixa de cápsula ou uma linha.

49
00:03:36,530 --> 00:03:43,550
‫Então vamos usar a esfera no nosso caso assim, e veremos como construir isso mais tarde.

50
00:03:44,030 --> 00:03:48,500
‫Mas você pode ver por que queremos nos apossar desse seu mundo, por que é importante para nós.

51
00:03:48,500 --> 00:03:52,520
‫Mas a questão é como nos apossamos do novo mundo?

52
00:03:52,520 --> 00:03:55,190
‫E uma vez que o pegamos, como o usamos?

53
00:03:55,940 --> 00:03:59,090
‫Bem, vamos dar uma olhada no código do Visual Studio.

54
00:03:59,990 --> 00:04:06,410
‫Em cada componente e cada ator, existe uma função chamada Get World.

55
00:04:07,010 --> 00:04:13,310
‫E se você digitar get world e depois entre parênteses, isso retornará um objeto do tipo you world na verdade um

56
00:04:13,310 --> 00:04:15,950
‫ponteiro para um objeto do tipo U world.

57
00:04:16,100 --> 00:04:17,030
‫Então vamos armazenar isso.

58
00:04:17,030 --> 00:04:23,450
‫Temos um novo ponteiro de mundo, que será, vamos chamá-lo de mundo, certo?

59
00:04:23,990 --> 00:04:25,670
‫E isso é igual a obter mundos.

60
00:04:25,670 --> 00:04:28,310
‫E então podemos colocar um ponto e vírgula no final.

61
00:04:28,610 --> 00:04:34,490
‫Agora, para realmente pegar qualquer coisa deste mundo, vamos usar o operador de seta.

62
00:04:34,550 --> 00:04:40,280
‫Então, vamos fazer World Arrow, e então poderemos dar uma olhada em alguns detalhes desse

63
00:04:40,280 --> 00:04:41,000
‫mundo.

64
00:04:41,450 --> 00:04:47,270
‫Mas antes de fazermos isso, precisamos incluir seu arquivo de cabeçalho porque, caso contrário, esse arquivo C++, quando o

65
00:04:47,270 --> 00:04:52,550
‫compilador chegar a ele, não saberá o que está incluído dentro de um que você digitará.

66
00:04:52,550 --> 00:04:55,490
‫Não tem qualquer informação sobre um mundo de vocês.

67
00:04:55,970 --> 00:05:02,120
‫Então, para corrigir isso, precisamos olhar em nossa documentação para você rolar até o topo e procurar aquele

68
00:05:02,120 --> 00:05:03,410
‫local onde está.

69
00:05:03,540 --> 00:05:10,170
‫Diz incluir e isso nos dá a inclusão que precisamos usar, você pode dizer incluir mecanismo de cotação para isso.

70
00:05:10,490 --> 00:05:15,030
‫Bem, isso é o que precisamos, então vamos colocar isso depois que eu pegar um ponto nele.

71
00:05:15,990 --> 00:05:22,950
‫E agora, se controlarmos o espaço, devemos obter uma lista das coisas que podemos fazer com este mundo em

72
00:05:22,950 --> 00:05:23,400
‫particular.

73
00:05:23,820 --> 00:05:26,340
‫E há muitos deles que temos.

74
00:05:26,340 --> 00:05:35,580
‫Obviamente, podemos encontrar nosso traço de linha, podemos encontrar nossa varredura por sites múltiplos ou únicos, desafiá-lo a imprimir

75
00:05:35,580 --> 00:05:38,010
‫o lapso de tempo.

76
00:05:38,010 --> 00:05:41,730
‫Esta é uma propriedade disponível no novo objeto de mundo.

77
00:05:42,180 --> 00:05:48,030
‫Você vai encontrar a propriedade de segundos de tempo lida sobre isso na documentação que está

78
00:05:48,030 --> 00:05:52,980
‫vinculada a esta palestra e armazená-la em uma variável do tipo apropriado.

79
00:05:52,980 --> 00:05:58,890
‫Novamente, olhar para a documentação lhe dirá qual deve ser o tipo e, em seguida, registre-o no

80
00:05:58,890 --> 00:06:01,200
‫console novamente usando o formato apropriado.

81
00:06:01,200 --> 00:06:03,660
‫Especifique um vídeo de pausa e experimente.

82
00:06:07,290 --> 00:06:07,620
‫OK.

83
00:06:07,620 --> 00:06:08,280
‫Bem vindo de volta.

84
00:06:08,290 --> 00:06:13,860
‫Então, vamos fazer uso disso e se eu procurar por tempo na documentação,

85
00:06:13,860 --> 00:06:17,760
‫você verá que há um float chamado time seconds.

86
00:06:17,760 --> 00:06:19,140
‫Essa é a que eu quero.

87
00:06:19,440 --> 00:06:21,300
‫Este caso é este é o tempo do jogo.

88
00:06:21,300 --> 00:06:25,920
‫Portanto, se você diminuir o tempo de aceleração, isso também será desacelerado ou acelerado.

89
00:06:26,040 --> 00:06:29,010
‫Mas há aqueles em que isso não é afetado.

90
00:06:29,580 --> 00:06:31,020
‫Tem diferentes que você tem aí.

91
00:06:31,020 --> 00:06:33,540
‫Tempo, segundos, os segundos de tempo de pausa.

92
00:06:33,540 --> 00:06:38,490
‫Há também os segundos em tempo real, que não são pausados ou alterados de forma alguma.

93
00:06:39,030 --> 00:06:40,560
‫Então, estou interessado nos segundos de tempo.

94
00:06:40,560 --> 00:06:43,650
‫Realmente não importa qual deles usamos porque eles são todos floats de qualquer maneira.

95
00:06:43,650 --> 00:06:48,330
‫Então vou criar um float chamado Time e armazenar o World Arrow Time.

96
00:06:48,330 --> 00:06:53,700
‫Segundos lá agora, para resumir, não precisamos realmente colocar o mundo em sua própria variável.

97
00:06:53,940 --> 00:06:56,730
‫É bastante curto o suficiente para chamá-lo de obter mundo.

98
00:06:56,730 --> 00:06:57,900
‫Então é isso que normalmente fazemos.

99
00:06:57,900 --> 00:07:01,530
‫Irá obter o mundo, em seguida, os segundos de tempo de seta como.

100
00:07:01,530 --> 00:07:12,330
‫Então agora podemos fazer um log que vamos dizer que a hora atual é e então vamos fazer uma porcentagem F porque estamos imprimindo

101
00:07:12,330 --> 00:07:18,810
‫um número de ponto flutuante aqui e então podemos dar a hora como entradas no

102
00:07:18,810 --> 00:07:19,560
‫log.

103
00:07:19,890 --> 00:07:28,110
‫Agora vamos controlar alt f 11 para live code e então vamos abrir e encaixar o log de saída.

104
00:07:29,790 --> 00:07:31,320
‫E aperte o play.

105
00:07:32,760 --> 00:07:39,510
‫E aí você pode ver que temos um tempo atual que está contando em segundos à medida que o tempo passa em

106
00:07:39,510 --> 00:07:40,800
‫um jogo como esse.

107
00:07:40,800 --> 00:07:47,070
‫E se realmente apertarmos o botão de pausa, você percebe que o tempo para de passar e se apertarmos

108
00:07:47,400 --> 00:07:49,980
‫o play, ele retoma de onde estávamos.

109
00:07:50,550 --> 00:07:51,090
‫Ele quer.

110
00:07:51,090 --> 00:07:55,860
‫Você pode experimentar usar os segundos em tempo real e ver se esse efeito acontece.

111
00:07:56,340 --> 00:07:57,630
‫Mas eu não vou aqui.

112
00:07:57,630 --> 00:08:03,540
‫Mostramos que podemos obter esses novos objetos de mundo, esses objetos de mundo em que estamos

113
00:08:03,540 --> 00:08:08,640
‫atualmente e que podemos obter propriedades deles usando nosso operador de seta.

114
00:08:08,790 --> 00:08:11,340
‫Dê um tapinha nas costas e nos vemos na próxima palestra.

