‫Olá e bem-vindo.
‫Nesta palestra, vamos investigar o conceito de variáveis locais, variáveis que só existem dentro
‫de uma determinada função.
‫E vamos ver como podemos usar isso para definir nossa localização para um valor diferente daquele armazenado
‫no meu vetor.
‫Vamos mergulhar.
‫Então, até este ponto, temos lidado com variáveis que pertencem a uma classe.
‫Fizemos isso no Blueprint e agora em C++.
‫E isso significa que a variável está viva enquanto a instância da classe.
‫Cada instância obtém sua própria cópia de uma variável, mas enquanto a instância de classe está ativa, a variável é
‫dois.
‫Agora, esse conceito sobre o qual acabei de falar tem um nome.
‫Chama-se Escopo.
‫O que significa é quanto tempo a variável vive?
‫E acabei de descrever uma variável de instância que é uma variável que vive tanto quanto uma instância específica de
‫uma classe.
‫Agora existem outros tipos de variáveis também.
‫Existem variáveis que vivem tanto quanto uma função.
‫Basicamente, quando você chama uma função específica, essa função é executada e assim que a função
‫termina, a variável morre.
‫Assim, em C++, em geral, uma variável é válida entre as chaves na sintaxe.
‫Então é uma boa regra.
‫Nem sempre é exatamente correto, mas a função tick, por exemplo, temos
‫algumas chaves aqui e se fôssemos declarar uma variável dentro dessa função tick, ela existiria apenas uma vez.
‫A função tick é chamada e na próxima vez ela será criada novamente.
‫A plataforma móvel.
‫Se pudermos ver isso, se dermos uma olhada na plataforma móvel dot h, você verá que o vetor my
‫está sendo declarado dentro de algumas chaves que pertencem à definição da classe, e é por isso que essas variáveis vivem por tanto
‫tempo quanto um instância da classe faz.
‫Então eu gostaria de provar isso para você.
‫Então vamos para a plataforma móvel dot CP e vamos criar uma variável local dentro dela.
‫Então, vou criá-lo exatamente da mesma maneira que fizemos.
‫Quando estamos declarando erro no cabeçalho do arquivo, vamos ter um vetor F, então o nome do vetor,
‫vou chamá-lo de vetor local.
‫E então podemos definir isso como um valor quando o criamos.
‫Podemos fazer isso usando o construtor para o vetor F, ou podemos fazê-lo a partir de outra variável,
‫assim como podemos passar uma variável para uma função.
‫Portanto, podemos, em primeiro lugar, usar apenas o método construtor.
‫Então nós vamos ter o vetor F e eu vou dar um 1 a 3 e depois um ponto e vírgula, o fim
‫da linha.
‫Então agora é uma variável local.
‫Ele só existe dentro desta função e é redefinido toda vez que a função é chamada.
‫Então, se eu fosse fazer algo assim, se eu fosse fazer algo como temos na
‫linha 29 com o meu vetor sendo atualizado, podemos ter um vetor local, podemos ter um vetor local ponto z igual
‫ao vetor local ponto z mais um.
‫E se eu definir minha localização para esse vetor local, será o mesmo em todos os quadros porque
‫redefinimos e começamos a partir do mesmo local.
‫Um, dois, três, cada função de carrapato.
‫Portanto, esta função realmente só existe localmente.
‫Então eu gostaria que você tentasse um pequeno experimento como seu desafio para definir o vetor local do meu vetor.
‫Então você vai basicamente fazer em vez de configurá-lo a partir do construtor, você vai defini-lo
‫a partir do valor que está atualmente no meu vetor que vai levar uma cópia desse vetor para o seu vetor
‫local.
‫Então eu gostaria que você defina em um local usando o vetor local.
‫E como estamos tentando atualizar esse vetor local a cada quadro, vamos ver qual é o efeito.
‫A plataforma se move?
‫Você esperaria que isso acontecesse e testá-lo, compilar o código e ver se ele realmente publica o vídeo
‫e tenta.
‫OK.
‫Bem vindo de volta.
‫Então, em vez de usar o construtor aqui para definir o vetor local, vou
‫definir meu vetor.
‫Então estamos pegando o valor que está atualmente armazenado no meu vetor e estamos colocando-o no vetor
‫local e então estamos atualizando o vetor local.
‫Estamos aumentando, dito isso, em um a cada quadro.
‫E então eu gostaria de definir o local ativo em vez do meu vetor.
‫Em vez disso, vamos defini-lo a partir do vetor local.
‫Agora, o que vai acontecer neste caso, você acha?
‫Vamos em frente e descobrir.
‫Eu vou apertar o botão compilar e ir em frente e apertar play e vou
‫ver que a plataforma ainda está se movendo para a direita, mas não está subindo na direção Z.
‫Então você pode ver que isso não está realmente tendo um impacto, o aumento do vetor local porque
‫está sendo redefinido do valor atual no meu vetor, a cada quadro.
‫Meu vetor, no entanto, ainda está sendo atualizado.
‫A cada quadro o valor de y está sendo aumentado, a cada quadro.
‫E é por isso que estamos vendo o movimento para a direita.
‫Então, uma maneira de vermos que essa mudança para o vetor local é apenas local é aumentando esse valor de
‫um para talvez 100.
‫Então estamos adicionando 100 ao valor do vetor local.
‫Podemos ir e compilar e depois apertar play.
‫E o que você vai ver é que a plataforma está 100 unidades mais alta no ar.
‫Vamos dar um segundo aqui e ejetar com F8 e pausar o jogo com o botão de pausa na barra de ferramentas
‫principal e, em seguida, selecionar uma plataforma móvel para dar uma olhada no painel de detalhes.
‫Para fazer isso, estou tendo que clicar nele na janela de visualização, por algum motivo às vezes não funciona apenas
‫clicando nele no contorno.
‫M E eu gostaria de salientar a você que o valor no meu vetor, o valor Z no meu vetor é
‫100 unidades menor que a localização Z da transformação.
‫Então você pode ver que adicionar a esse vetor local teve um impacto.
‫Temos nossa localização 100 unidades acima da localização no vetor my.
‫E o que é realmente ótimo sobre variáveis locais é que quando a função termina sua execução
‫específica, elas são limpas e redefinidas.
‫Assim, você sempre pode saber o que esperar com a variável local.
‫Você sempre sabe qual valor estará nele, ao contrário de uma variável de classe que pode ser atualizada a qualquer momento
‫a partir de qualquer outra função.
‫Então, vamos colocar essas variáveis locais à prova em algumas aulas.
‫Vamos mergulhar.