‫Olá e bem-vindo.
‫Nesta palestra, vamos aprender sobre algo chamado objeto mundo, um objeto muito importante
‫no Unreal.
‫Vamos ver como podemos chegar ao tempo atual em nosso jogo a partir deste objeto e imprimi-lo
‫no console até o final desta palestra.
‫Então vamos mergulhar e ver como isso funciona.
‫Então, para poder fazer traçadores de linha ou varreduras, precisamos entender outro conceito, outro tipo
‫de objeto que existe em terra irreal, e esse objeto é o mundo.
‫Então, lidamos muito com níveis.
‫Então, se formos ao nosso sorteio de conteúdo, também lidamos com mapas.
‫Então, o mapa e o nível que falamos como sinônimos.
‫No entanto, um mundo é mais ou menos isso no começo.
‫No início era o novo mundo e o novo mundo é o tipo, é a classe para basicamente o ambiente que
‫estamos vendo quando jogamos um jogo.
‫Mas não é necessariamente apenas um nível.
‫Você pode carregar um nível que é chamado de nível você em C++, que é apenas uma coleção dos atores que devemos
‫trazer para o novo mundo.
‫Assim, você pode carregar um nível em seu novo mundo, mas não necessariamente apenas um nível.
‫Você pode carregar em vários níveis em um único mundo.
‫E isso porque muitas vezes temos esses níveis de streaming, temos níveis muito grandes em que não queremos
‫carregar tudo, todos os atores no nível de uma só vez por motivos de desempenho.
‫Então, dividimos em vários níveis e isso nos permite trazer apenas partes da cena conforme
‫necessário.
‫Então, se dermos uma olhada na página de documentação do New World, acho que descreve de forma bastante
‫sucinta que o mundo é o objeto de nível superior que representa um mapa ou uma caixa de areia na qual os atores e
‫componentes existirão e serão renderizados.
‫E se você olhar um pouco mais para baixo, ele diz que o mundo pode
‫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
‫streaming e níveis bizarros que podem ser carregados sempre que querer.
‫Agora, por que isso é interessante?
‫É interessante porque nos permite fazer rastreamento de linha.
‫Se pesquisarmos a documentação aqui para rastreamento de linha, você verá que há um monte de
‫funcionalidades aqui, particularmente a que é mais interessante para nós é o rastreamento de linha único por canal ou o
‫rastreamento de linha multi por canal, que essencialmente nos permitem respectivamente para pegar aquele primeiro objeto atingido ou todos os
‫objetos atingidos por um traço de linha.
‫E você pode ver que as listas de argumentos, principalmente se eu olhar para a linha trace
‫single, a lista de argumentos tem o início tem o fim, tem um canal de trace para o qual fazer o trace.
‫E na verdade nos dá um resultado na lista de parâmetros, o que é um pouco estranho e iremos
‫cobrir isso em breve.
‫Mas de qualquer forma, este é o traço de linha.
‫Também temos a capacidade de fazer uma varredura.
‫Então, se procurarmos por varredura, você poderá ver que há uma varredura multi canal bi.
‫Há também um single de varredura por canal.
‫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
‫passar.
‫Basicamente, se clicarmos nessa colisão F, uma forma que você pode acompanhar na documentação em tempo
‫real, leia mais sobre ela e verá que a forma de colisão basicamente suporta ser uma esfera, uma
‫caixa de cápsula ou uma linha.
‫Então vamos usar a esfera no nosso caso assim, e veremos como construir isso mais tarde.
‫Mas você pode ver por que queremos nos apossar desse seu mundo, por que é importante para nós.
‫Mas a questão é como nos apossamos do novo mundo?
‫E uma vez que o pegamos, como o usamos?
‫Bem, vamos dar uma olhada no código do Visual Studio.
‫Em cada componente e cada ator, existe uma função chamada Get World.
‫E se você digitar get world e depois entre parênteses, isso retornará um objeto do tipo you world na verdade um
‫ponteiro para um objeto do tipo U world.
‫Então vamos armazenar isso.
‫Temos um novo ponteiro de mundo, que será, vamos chamá-lo de mundo, certo?
‫E isso é igual a obter mundos.
‫E então podemos colocar um ponto e vírgula no final.
‫Agora, para realmente pegar qualquer coisa deste mundo, vamos usar o operador de seta.
‫Então, vamos fazer World Arrow, e então poderemos dar uma olhada em alguns detalhes desse
‫mundo.
‫Mas antes de fazermos isso, precisamos incluir seu arquivo de cabeçalho porque, caso contrário, esse arquivo C++, quando o
‫compilador chegar a ele, não saberá o que está incluído dentro de um que você digitará.
‫Não tem qualquer informação sobre um mundo de vocês.
‫Então, para corrigir isso, precisamos olhar em nossa documentação para você rolar até o topo e procurar aquele
‫local onde está.
‫Diz incluir e isso nos dá a inclusão que precisamos usar, você pode dizer incluir mecanismo de cotação para isso.
‫Bem, isso é o que precisamos, então vamos colocar isso depois que eu pegar um ponto nele.
‫E agora, se controlarmos o espaço, devemos obter uma lista das coisas que podemos fazer com este mundo em
‫particular.
‫E há muitos deles que temos.
‫Obviamente, podemos encontrar nosso traço de linha, podemos encontrar nossa varredura por sites múltiplos ou únicos, desafiá-lo a imprimir
‫o lapso de tempo.
‫Esta é uma propriedade disponível no novo objeto de mundo.
‫Você vai encontrar a propriedade de segundos de tempo lida sobre isso na documentação que está
‫vinculada a esta palestra e armazená-la em uma variável do tipo apropriado.
‫Novamente, olhar para a documentação lhe dirá qual deve ser o tipo e, em seguida, registre-o no
‫console novamente usando o formato apropriado.
‫Especifique um vídeo de pausa e experimente.
‫OK.
‫Bem vindo de volta.
‫Então, vamos fazer uso disso e se eu procurar por tempo na documentação,
‫você verá que há um float chamado time seconds.
‫Essa é a que eu quero.
‫Este caso é este é o tempo do jogo.
‫Portanto, se você diminuir o tempo de aceleração, isso também será desacelerado ou acelerado.
‫Mas há aqueles em que isso não é afetado.
‫Tem diferentes que você tem aí.
‫Tempo, segundos, os segundos de tempo de pausa.
‫Há também os segundos em tempo real, que não são pausados ou alterados de forma alguma.
‫Então, estou interessado nos segundos de tempo.
‫Realmente não importa qual deles usamos porque eles são todos floats de qualquer maneira.
‫Então vou criar um float chamado Time e armazenar o World Arrow Time.
‫Segundos lá agora, para resumir, não precisamos realmente colocar o mundo em sua própria variável.
‫É bastante curto o suficiente para chamá-lo de obter mundo.
‫Então é isso que normalmente fazemos.
‫Irá obter o mundo, em seguida, os segundos de tempo de seta como.
‫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
‫um número de ponto flutuante aqui e então podemos dar a hora como entradas no
‫log.
‫Agora vamos controlar alt f 11 para live code e então vamos abrir e encaixar o log de saída.
‫E aperte o play.
‫E aí você pode ver que temos um tempo atual que está contando em segundos à medida que o tempo passa em
‫um jogo como esse.
‫E se realmente apertarmos o botão de pausa, você percebe que o tempo para de passar e se apertarmos
‫o play, ele retoma de onde estávamos.
‫Ele quer.
‫Você pode experimentar usar os segundos em tempo real e ver se esse efeito acontece.
‫Mas eu não vou aqui.
‫Mostramos que podemos obter esses novos objetos de mundo, esses objetos de mundo em que estamos
‫atualmente e que podemos obter propriedades deles usando nosso operador de seta.
‫Dê um tapinha nas costas e nos vemos na próxima palestra.