Na palestra anterior, nós normalizamos o movimento de nossos porcos.
Agora vamos impedi-los de passar por aquele local da meta.
Isso significa que precisamos verificar onde eles estão em relação à localização da meta, cada laço.
Voltemos então ao nosso roteiro.
Dentro de nossa atualização de luz, estamos calculando a velocidade e depois também estamos atualizando
a posição agora a meta real ou a direção da meta.
Isso não vai mudar, mas a duração disto vai mudar à medida que nos aproximarmos cada vez mais do objetivo real.
Portanto, precisamos realmente calcular isto uma e outra vez dentro de nossa atualização, e especialmente se nosso objetivo
acontecer para nos movermos.
Talvez você queira que seu caráter continue atualizando isso também.
Portanto, vamos copiar isto e colocar aqui.
Pode realmente tirar isso de parada porque não vamos precisar disso lá em cima.
Muito bem, então vamos dar uma olhada em como isto se comporta.
Guarde-o.
Volte ao jogo da Unity Press e vamos dar uma olhada.
Assim, os porcos vão em direção ao objetivo e depois os porcos ficam um pouco trêmulos naquele local do objetivo.
Então, o que está realmente acontecendo aqui?
Bem, deixe-me voltar ao código novamente.
Vamos apenas enfatizar isso um pouco.
Vamos atualizar essa velocidade, vamos fazer cinco, e vamos tentar fazer com que eles superem a posição desse objetivo.
Então, vamos brincar com a imprensa.
E agora eles vão embora.
A coisa está um pouco mais nervosa.
O que está realmente acontecendo é que os porcos estão superando e estão realmente passando e então,
no próximo laço, calcula uma nova direção.
Assim, eles realmente vão até aqui e depois recebem uma nova direção para voltar por aqui e depois por aqui,
depois por aqui.
Então é isso que está lhe dando aquele nervosismo ali.
Em vez disso, queremos dizer, bem, se você alcançou a meta ou se aproximou o suficiente da meta, então, acabe
com isso.
Basicamente, pare de calcular e atualize-se para realmente se atualizar.
A localização da meta é realmente difícil, então você precisa de algum tipo de valor limite que esteja mais ou menos próximo
é bom o suficiente.
Vamos entrar aqui e dar uma olhada.
Portanto, calculamos nossa direção antes de atualizar novamente a posição dos porcos, vamos dizer se direção e vamos
descobrir a que distância estamos do objetivo.
Portanto, lembre-se de que a direção é o vetor desde o porco até o objetivo.
Se obtivermos o comprimento desse vetor, então sabemos a que distância estamos e isso é phan com um ponto de magnitude.
Portanto, essa é a distância real entre o porco e o objetivo.
Agora, se essa magnitude, digamos que é maior do que duas.
Se for maior que dois, então estamos muito felizes em ir em frente e recalcular.
A velocidade e continuar avançando em direção a ela.
E isto na verdade vai parar uma vez que você se encontre dentro desse círculo de dois.
Portanto, economize isto.
Vamos voltar à unidade e vamos tentar esta.
Portanto, vamos brincar com a imprensa e os porcos vão se aproximar o suficiente.
E então, quando chegam a dois, param.
Assim você pode ver que agora você sabe como é a distância de dois.
Se você quiser que eles se aproximem um pouco mais, então é claro que você poderia diminuir esse valor limite.
Portanto, se você alguma vez conseguir um personagem de IA que chegue a um local de objetivo e Jeter estiver de costas e de frente entre
ele ou talvez até ande em círculos que possamos ver um pouco mais tarde neste curso, isso significa
que você está tentando fazer com que o personagem goste de chegar exatamente a este local.
E com os cálculos que estão sendo feitos atualmente, isso nunca vai acontecer.
Portanto, esteja ciente de que é isso que você quer fazer neste caso.
O bom da maneira como fizemos este código é que ele sempre estará verificando a direção
e a magnitude das direções.
Isso significa que se você mover aquele local da meta, então você pode realmente fazer com que os porcos o sigam porque
ele continuará atualizando esta direção.
Portanto, vamos realmente acrescentar algo ao objetivo que fará com que ele se mova.
O que vou fazer é substituir esse objetivo, objeto por algo mais.
Muito bem, então vamos entrar em nossa cena agora.
Você quer entrar em sua pasta Easy Primitives e encontrar aqui algo que o porco possa gostar
de seguir por aí.
Por isso, estou pensando em algo como um aldeão.
Ok, então aqui está meu aldeão.
Vamos arrastar e largar o aldeão e colocá-lo ali mesmo.
Portanto, este aldeão tem uma direção voltada para a frente.
Isso significa que, se realmente a conduzirmos, poderemos ver em que direção está indo, o que
é útil.
Portanto, o outro local do objetivo, vamos nos livrar disso.
Portanto, selecione-o e exclua-o.
E então para nosso porco queremos agarrar nosso aldeão e apenas colocar isso como objeto de objetivo
aqui e o inspetor, o mesmo com o outro porco porque eles vão seguir o mesmo caráter.
E agora vamos para o nível superior de nossos ativos e vamos adicionar outro roteiro aqui, criar
C-sharp e vamos chamá-lo Drive.
Agora, este código, eu não estou escrevendo do zero.
Se você viu algum dos meus outros vídeos em que eu realmente criei um roteiro de viagem sobre os personagens
ou carros ou o que quer que eu tenha, eu recebo isso da documentação da unidade.
Portanto, se você der uma olhada em sua documentação e na busca, digitar a entrada, obter acesso e ir até
o primeiro exemplo, você verá que há aqui uma peça de roteiro simplista de direção de carro,
que é tão útil.
Quero dizer, eu acho que tenho usado isto desde a Unidade desde 2006, versão Unidade dois até então.
Encontre isto e nós vamos copiar tudo.
A propósito, isto também utiliza o antigo sistema de entrada.
Então vamos voltar aqui, abrir nosso script de unidade e vamos apenas substituir o padrão por aquele
código ali.
E depois é só chamar essa unidade, depois salvá-la, voltar à unidade e arrastar e soltar
esse guião para o aldeão na hierarquia.
E se você quiser saber como isso está funcionando, então sinta-se livre para escavar por aí através desse código.
Mas basicamente há uma velocidade e uma velocidade de rotação e podemos mover a aldeia para fora usando as setas do teclado.
Muito bem, então vamos brincar com a imprensa.
As setas laterais vão girar o personagem, como você pode ver ali.
E então podemos simplesmente usar as setas para cima e para baixo.
E agora você pode ver que temos nossos porcos seguindo o pequeno fazendeiro ou aldeão por perto, e eles agora estão
exatamente na mesma posição.
Portanto, eles estão um pouco em cima do outro.
Certo.
Talvez você também queira que os personagens se voltem para onde estão indo agora.
Na verdade, isto é feito de forma muito simples.
Se entrarmos em nosso movimento depois de termos calculado a direção que estamos seguindo aqui,
vamos dizer que este ponto transforma o ponto e vamos olhar para nossa posição de objetivo.
Então copie isso, coloque-o lá dentro.
E isso basicamente vai transformar o personagem para olhar para o objetivo.
Portanto, poupe que olhando para o que quero dizer é que se voltarmos aqui e apenas clicarmos em um
destes porcos, você vai descobrir que o sistema de eixos para o porco aqui tomou sua direção para frente, que é o
que você supõe que ele está voltado para este eixo azul, que é o eixo Z.
Portanto, a maioria dos jogos e pacotes de modelagem e coisas assim tem o eixo Z como eixo de frente.
Portanto, o que o olhar faz é realmente girar este eixo, este porco para que o eixo azul esteja voltado para
onde ele precisa ir.
Portanto, se agora pressionarmos o play, você poderá vê-los como eles olham para onde estão indo neste ponto.
É claro que você poderia multiplicar esses porcos e ter muitos deles seguindo o fazendeiro por perto.
Mas vamos terminar este vídeo com um pouco de desafio.
Veja se você pode dar aos porcos velocidades diferentes para que eles não viajem ao mesmo ritmo que um ao outro.
Portanto, faça uma pausa no vídeo agora, experimente-o.
E quando voltarmos, eu passarei por uma solução com você.
Bem-vindo de volta.
Como foi dar-lhes uma velocidade diferente?
Vamos entrar no roteiro do filme.
Por isso, temos velocidade aqui definida para cinco para variar a dos diferentes porcos.
Podemos colocar ali uma velocidade de flutuação pública e, se você salvar isso e voltar à unidade, selecione o porco.
E então, no inspetor, você pode realmente dar-lhes velocidades diferentes.
Então este cara aqui poderia ser três, por exemplo.
Portanto, ele vai ser muito mais lento.
Vamos brincar com a imprensa.
E agora movemos o fazendeiro e você verá que aquele outro porco está realmente se movendo muito mais
rápido porque ele alcança o pequeno fazendeiro que corta o aldeão bem rápido.
Certo.
Esta é uma primeira visão de alguns vetores.
Quando voltarmos no próximo vídeo, vamos olhar um pouco mais além no cálculo da distância entre pontos,
o que já começamos a fazer com nosso valor de magnitude.
Mas vamos dar uma olhada mais de perto em Pitágoras.