‫Olá e bem-vindo.
‫Nesta palestra, veremos como podemos adicionar um texto dinâmico em nossas mensagens de log
‫usando strings em C++.
‫Então, vamos mergulhar e aprender sobre strings em C++.
‫Então, vimos como imprimir algumas coisas simples do nosso log de interface do usuário, mas
‫e se você quiser imprimir mais texto, algo como o nome do ator, por exemplo, ou mesmo algo
‫mais complicado, como uma representação textual de um vetor?
‫Bem, isso normalmente não tem especificadores de formato porque os especificadores de formato chegaram até nós desde a
‫era C, que é uma linguagem de programação muito básica em comparação com C++.
‫E então certas coisas simplesmente não foram pensadas na época.
‫Portanto, coisas como vetores não seriam incluídas na maneira como formatamos e especificamos.
‫Então, tendemos a usar strings para fazer isso.
‫E como dissemos no passado, strings são apenas variáveis de texto.
‫São variáveis que contêm texto para que possamos declarar strings.
‫Em C++, usamos vetores F onde usamos vetores anteriormente.
‫Aqui vamos usar uma string como o tipo de uma string para que possamos ter uma string.
‫E vou colocar minha string como o nome da variável por enquanto.
‫E como definimos um valor de string?
‫Bem, já vimos um pouco por aqui.
‫Essas aspas duplas são o que denotam um valor de string em C++.
‫Então, todas essas expressões atingem aquela aqui onde temos as aspas duplas também no
‫cabeçalho do arquivo, onde temos as aspas duplas para a categoria que é uma expressão de string.
‫Então, o que podemos fazer é definir a variável my string a partir disso e vou dizer o valor da minha string apenas para
‫nos dar uma idéia do ponto e vírgula de entrada no final da linha e, em seguida, como podemos mostrar isso em uma declaração
‫de log ?
‫Então, vou apenas remover a distância de movimento daqui como um argumento para o log, e vou
‫alterar o texto na mensagem de log para dizer, aqui está minha string dois pontos e, em vez de especificar F, nós use percent s
‫desta vez para denotar a string que queremos imprimir.
‫E então o argumento que passamos para a função de log URI novamente entre esses dois colchetes
‫será minha string.
‫Agora, infelizmente, isso seria ótimo se isso funcionasse por si só.
‫Mas infelizmente há uma pequena complicação aqui no Unreal que eles não aceitam uma string direta como argumento
‫para o log de URI.
‫Ele precisa de um pouco de um operador de conversão aqui.
‫E a maneira como fazemos isso é colocando um asterisco na frente da minha string e ela apenas a
‫converte de uma string F para o formato que está procurando internamente no log do Yule, não precisamos entrar
‫em muitos detalhes por que está fazendo isso.
‫Está além do nível que precisamos saber neste momento.
‫Eu acho que é importante aprender isso, pois quando fazemos uma porcentagem se, sempre precisamos de uma estrela na
‫frente de nossas cordas f.
‫Então vamos ver se isso funcionou indo para o Unreal e apertando o botão de compilação.
‫E então vamos fechar a codificação ao vivo, apertar play, abrir o log de saída e aqui está, aqui
‫está minha string, meu valor de string.
‫Então, está imprimindo o valor na minha string.
‫Mas obviamente este pedaço de código que acabei de escrever não é particularmente útil porque bem, eu poderia
‫ter escrito a string aqui.
‫Por que se preocupar com todo esse negócio de substituição?
‫Bem, onde isso fica mais interessante é onde colocamos um valor dinâmico nessa variável para que pudéssemos
‫fazer isso, obter o nome e chamá-lo.
‫Essa é uma função aqui disponível no ator de plataforma móvel que obtém o nome do ator que vemos
‫no contorno do nível.
‫Se pudermos colocá-lo na variável, vou chamar esse nome de variável em vez da minha string e alterar seu nome aqui
‫no log da interface do usuário também.
‫Então podemos mudar o texto da mensagem de log para começar a tocar dois pontos e então será o
‫nome do ator.
‫Então, vamos voltar ao irreal, pare de jogar, aperte, compile, vá em frente e aperte play e abra o log de
‫saída.
‫E você pode ver que recebemos as mensagens comece a jogar em movimento plataforma um comece a jogar em movimento.
‫Plataforma três empurrando.
‫Kub três empurrando, mantenha cinco empurrando, mantenha sete.
‫Então temos que começar a jogar e todos os nomes dos diferentes atores.
‫Agora, isso pode ser muito útil porque, mais tarde, na linha em que estamos imprimindo
‫nossa distância de ultrapassagem, nem sempre fica claro quem está ultrapassando neste caso, porque todos estão se confundindo.
‫Portanto, poder imprimir o nome do ator que está produzindo a mensagem de log pode ser muito
‫útil para identificar onde está o problema.
‫Acontecendo.
‫Então, eu gostaria de desafiá-lo a registrar o nome com esse registro de ultrapassagem para que possamos ver
‫quem ultrapassou e quanto.
‫Então você vai adicionar uma variável para o nome do ator, como fizemos em Begin Play.
‫Você colocará o nome nele e adicionará uma porcentagem conforme especificado em qualquer lugar que desejar em
‫sua mensagem de log onde estamos imprimindo esse overshoot e você adicionará um argumento para esse
‫nome.
‫Ainda queremos a variável overshoot na lista de argumentos, mas afinal, antes disso, você vai ter que
‫colocar o argumento para o nome também.
‫E é importante aqui que a ordem dos argumentos corresponda à ordem dos especificadores em sua
‫mensagem.
‫Então, se você colocar por cento como antes de por cento F, então essa é a ordem.
‫O nome deve vir antes do overshoot ou você deve fazer o contrário se tiver feito o outro.
‫E não se esqueça de adicionar o início antes do nome da variável para converter a string em algo que
‫o log que você registra possa usar.
‫Pause o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então, vamos começar obtendo uma variável e não é estritamente necessário, mas vamos usar a variável apenas para
‫simplificar e manter essa linha um pouco mais curta.
‫Então, teremos uma string at chamada name usando letras maiúsculas, geralmente para iniciar nossos nomes de
‫variáveis.
‫Vamos dar um nome a essa variável e depois vamos usá-la como argumento.
‫Mas onde vou colocar meu formato, especificar na mensagem de log?
‫Bem, vou colocá-lo como a primeira coisa na minha mensagem de log para deixar claro que esta é uma mensagem
‫de log proveniente desta coisa.
‫Então, vou colocar a porcentagem primeiro, e isso significa que meu argumento precisa vir antes do argumento de
‫overshoot.
‫Então, vamos colocar o nome aqui e precisamos colocar um asterisco na frente do
‫nome para convertê-lo adequadamente.
‫Agora vamos voltar para o editor.
‫Pare de jogar aperte recompile, feche o terminal, aperte play e abra o log de saída.
‫E você pode ver que estamos começando a receber nossas mensagens de tick, empurrando o Kub para
‫cima por um empurrando q11.
‫Então você pode ver aqui que você pode chegar a uma conclusão que não podíamos fazer antes, que é que
‫as plataformas que se movem mais rápido, os cubos de empurrar são os que ultrapassam mais, enquanto as
‫plataformas móveis parecem estar ultrapassando menos, que é o que Eu esperaria.
‫Mas é bom ver isso confirmado aqui nos logs.
‫Coisas boas.
‫Então é isso para nosso pequeno desvio de extração de madeira.
‫Espero que tenham achado isso interessante e nos vemos na próxima palestra.