‫Olá e bem-vindo.
‫Nesta palestra, veremos vetores e, em geral, coisas mais complicadas, como structs
‫em C++ e como podemos acessar as partes individuais de um conjunto e obtê-las de um struct.
‫Vamos mergulhar.
‫Então aprendemos como lidar com tipos de dados básicos em C++ e criar variáveis e atribuir a elas e até mesmo
‫fazer algumas aritméticas básicas com elas.
‫Mas e se quiséssemos lidar com tipos mais complicados, como vetores e transformadas?
‫Bem, o processo é realmente muito semelhante.
‫Vamos começar limpando alguns dos códigos de teste que já temos.
‫Vou deletar todas as minhas propriedades.
‫Para mim, essa é a linha 26 até 51.
‫E também vou entrar no arquivo C++ e excluir as linhas 19 a 23, que é onde estou fazendo todo o trabalho
‫com as variáveis que acabei de excluir.
‫Então agora Begin Play está completamente vazio e estamos de volta à estaca zero.
‫Então agora o que eu quero fazer é adicionar uma nova propriedade você.
‫Então, todas as letras maiúsculas novamente editem em qualquer lugar e eu vou dar a isso o tipo de vetor F, observe a capitalização F maiúsculo,
‫V maiúsculo e é assim que lidamos com os vetores com os quais lidamos no Blueprint são
‫os mesmos vetores sob o superfície, mas é assim que digitamos em C++.
‫O F que o precede apenas nos permite saber que esta é uma estrutura da mesma forma que o A que precede
‫a plataforma móvel.
‫Deixa-nos saber que isso é um ator.
‫Isso não é coisa de C++.
‫Essa é uma convenção de nomenclatura irreal para nomear as diferentes classes, estruturas e tipos.
‫Então o que vamos fazer é dar o nome a essa variável.
‫E isso funciona exatamente da mesma forma como se fosse um float ou um evento.
‫Podemos chamá-lo de meu float, por exemplo.
‫Ele precisa não ter espaços.
‫E se colocarmos ponto e vírgula no final da linha aqui, é isso.
‫Declaramos uma nova variável que ficará visível em nosso painel de detalhes no editor, mas isso não é suficiente
‫para mim.
‫Eu gostaria realmente de dar a isso um valor padrão diferente do padrão 000.
‫Para isso, precisamos atualizar nosso glossário com um novo termo.
‫Precisamos de um construtor, que é essencialmente algo em C++ que cria um novo valor de struct ou classe A.
‫Então, se tivéssemos que criar um construtor para o vetor, a maneira como isso funcionaria é que queremos atribuir um valor para
‫que chegássemos a igual.
‫E normalmente quando estávamos lidando com inteiros ou floats, podíamos usar algo como um ou um
‫true que foram construídos em valores que nos permitiram definir o valor desses tipos básicos.
‫Mas quando temos tipos mais elaborados como um struct, precisamos usar o construtor e o construtor sempre terá
‫o mesmo nome que o tipo de dados, então será escrito exatamente da mesma forma.
‫E então você abre alguns parênteses e dentro dos parênteses você dá os valores que você quer.
‫Então X, Y e Z é o que compõe um vetor.
‫Então poderíamos ter um, dois e três separados por vírgulas, e então fechamos os parênteses e colocamos ponto e
‫vírgula no final da linha.
‫E isso dará um valor padrão de um, dois e três no X, Y e Z para este vetor.
‫Vamos experimentá-lo.
‫Volte para o Unreal e aperte o botão de compilação.
‫E quando isso for concluído com sucesso, podemos ter certeza de que selecionamos o Moving Platform Act em nosso esboço e dar
‫uma olhada no painel de detalhes e ver que, de fato, temos uma nova propriedade chamada
‫My Float.
‫Os outros foram retirados e os valores em suas diferentes posições, X, Y e Z são um,
‫dois e três como esperávamos.
‫Então isso é ótimo.
‫Mas e se eu quisesse me apoderar desses valores e colá-los talvez em outra propriedade?
‫Então, se eu tiver outra propriedade marcada como adicionada em qualquer lugar para que eu
‫possa vê-la no inspetor, digite float chamado meu x e o padrão será zero apenas para que possamos ver que estamos alterando.
‫E o que eu quero fazer é pegar o valor x do meu float em begin play e quero defini-lo
‫na variável my x.
‫Então, vamos para o arquivo C++ e, no início do jogo, após a linha que diz super grande em jogo,
‫vamos definir meu X igual ao que queremos obter algo do meu vetor, mas não queremos o todo do meu
‫vetor.
‫Isso seria um erro.
‫Não podemos definir um vetor em um float, queremos apenas a parte x desse vetor.
‫Bem, para entender isso, precisamos entender o conceito de operador.
‫Operadores são símbolos em C++ que fazem alguma coisa.
‫Já vimos alguns.
‫Vimos o operador mais, que soma duas coisas.
‫Há também um operador de menos.
‫Há o operador de igualdade, o operador de igual, que atribui.
‫Coisas.
‫Então, estamos usando isso aqui na linha 19.
‫Esse é um operador que está atribuindo o valor do meu vetor ao meu X.
‫E então temos mais um operador, que precisamos saber qual é o operador DOT.
‫É um operador que obtém algo de dentro de uma estrutura ou classe.
‫Então, queremos obter o X de dentro do meu vetor.
‫Então usamos um operador de ponto, fazemos x agora não usamos um espaço aqui entre o meu vetor e o x.
‫Nós apenas deixamos essas corridas juntas assim é como normalmente deixamos as coisas, mesmo que não seja necessariamente
‫um erro colocar espaços.
‫Então temos meu vetor ponto x deve pegar o valor x do vetor e colocá-lo no meu x float.
‫Então, colocamos ponto e vírgula no final da linha e, como sempre, estou ignorando os rabiscos vermelhos porque às vezes eles
‫demoram muito para atualizar e às vezes não estão corretos.
‫E então vamos entrar na codificação ao vivo e apertar o botão que recompila e apenas verificamos
‫se obtivemos um resultado bem-sucedido.
‫E não, você vê, nós temos uma falha de construção.
‫E se você olhar para o erro dizendo que meu vetor é um identificador não declarado e isso é porque eu cometi um
‫erro de digitação, chamei o vetor F de meu float e você provavelmente está gritando com suas telas.
‫Mas é bom mostrar que mesmo os especialistas, os programadores cometem erros.
‫Queríamos chamar isso de meu vetor, então vou voltar ao arquivo principal
‫e renomeá-lo para meu vetor, o que deve remover o problema no meu cérebro.
‫Vamos em frente e clique no botão compilar novamente.
‫E isso apenas lhe dá um gostinho de como é quando você comete erros, você recebe um erro de compilação.
‫Isso acontece o tempo todo.
‫Na verdade, é muito raro não cometer erros.
‫A primeira vez que você fizer algo, então vamos em frente e apertar play e vamos ver o valor que obtemos
‫no painel de detalhes.
‫Você pode ver agora que meu x foi definido como um porque esse era o valor no componente x da variável de meu
‫vetor.
‫Então, eu gostaria de desafiá-lo a definir um valor vetorial.
‫Estamos obtendo valores do vetor.
‫Agora vamos tentar configurá-los.
‫Basicamente, tente usar o operador ponto para definir um valor.
‫Tente inverter os dois lados desse igual para que tenhamos o meu X à direita e o meu vetor
‫à esquerda.
‫E se você mudar para Y ou z?
‫Existe alguma diferença que puxa vídeo e ter uma chance?
‫OK.
‫Bem vindo de volta.
‫Então eu vou tentar virar esses dois ao redor.
‫Vamos para o C++ e começar a jogar.
‫O que vou dizer é que meu vetor ponto y é igual ao meu x e depois coloco ponto e vírgula no final da linha.
‫E é assim que podemos definir valores dentro de uma estrutura também.
‫Então, vamos voltar ao Unreal e recompilar e então podemos seguir em frente e definir algum valor no meu X.
‫Vou colocar o valor de cinco aqui.
‫Então vou jogar e dar uma olhada no painel de detalhes da plataforma móvel.
‫E com certeza, o valor y do meu vetor foi atualizado no início da reprodução pelo valor no meu x.
‫Então parabéns.
‫Vimos como usar tipos mais complicados, os tipos compostos como structs em C++.
‫Vejo você na próxima palestra.