Nesta palestra, vamos analisar a criação de um sistema de waypoint que possa ser navegado com o algoritmo
aStar para começar a baixar o arquivo de recursos que vem com esta palestra.
E nela você encontrará esta cena com o tanque.
Se você já fez algum dos outros tutoriais fornecidos, você já terá visto esses modelos antes, e eu os uso com
bastante freqüência porque, embora sejam bonitos de se ver e sejam convenientes e fáceis, não montamos
nosso próprio mapa.
É claro, se você quiser montar seu próprio mapa, vá em frente.
Tudo bem.
Agora temos um mapa e temos também um pequeno tanque.
O tanque será nosso personagem NPC.
O que vamos fazer é colocar alguns pontos brancos ao redor do mapa e depois vamos ligá-los
com bordas e colocar alguns botões na tela para dar as ordens de para onde ir no tanque.
A primeira coisa que faremos é colocar alguns pontos de passagem.
O importante a lembrar aqui é que não há física ou detecção de colisão que estará neste projeto,
o que significa que você tem que colocar pontos de passagem onde o tanque possa se mover.
Portanto, serão os caminhos do projeto.
Eu criei aqui um objeto objeto de jogo waypoint, então este pré-fabricado, se eu o arrastar e soltar na cena,
você verá que ele se dá automaticamente um número e cada vez que você adicionar um waypoint, ele contará para você.
Portanto, isto é para que você possa acompanhar qual ponto de passagem é qual, sem ter que clicar sobre
ele na hierarquia a cada vez.
Portanto, vamos diminuir o zoom.
Vou jogar alguns pontos de passagem ao redor deste mapa para chegar ao heliponto, que é aqui embaixo,
e um para chegar aqui e dar a volta a este edifício.
Mas você pode jogar em algum lugar se quiser, então eu vou em frente e farei isso rapidamente.
Com todos os pontos de passagem no lugar, eles se tornarão os nós em nosso gráfico.
Portanto, precisamos agora determinar onde as bordas estarão.
E as bordas são as linhas que conectam os nós e nos dirão para onde o tanque pode viajar entre eles.
Como eu disse no início, estes pontos de passagem também vão especificar onde o tanque não pode viajar,
e isso é que não queremos colocar nenhum caminho através da geometria.
Portanto, funciona também como um sistema para evitar colisões.
E assim você pode colocar pontos de passagem como este em prédios se quiser que seus NPCs viajem por
lá e pareçam inteligentes, pois assim eles evitam obstáculos.
Assim, neste caso podemos conectar o waypoint um com dois e dois com três e um com três.
Em qualquer lugar onde haja uma linha de visão clara, podemos nos juntar a eles para não conseguirmos chegar até o número
sete na parte de trás, indo por ali.
Por isso, vamos colocar linhas aqui e aqui e eu posso até colocar um caminho só de ida que vai até aqui para que o
tanque, se estiver por aqui e quiser voltar, tenha que dar a volta por este caminho.
Com todos os seus caminhos planejados, você talvez queira escrevê-los para que tenha uma referência para quando
formos e colocarmos estas informações de volta na unidade.
Agora, antes de fazer isso, você pode querer renomear todos os seus waypoints e numerá-los corretamente.
Assim, eu estava fazendo uma duplicação de cada ponto de rota e me movendo no mapa, e isso significa
que a unidade lhes deu números ímpares como WP 003 era na verdade WP 002 e entre parênteses um.
E depois havia entre parênteses dois, entre parênteses três.
Mas, ao invés disso, talvez você queira numerá-los desta forma.
Portanto, parece um pouco mais lógico.
E então você verá esses nomes aparecerem corretamente em seu mapa para que você possa elaborar sua lista de limites
entre todos eles de acordo com o gráfico que você acabou de criar, com as linhas entre eles.
Agora é hora de começar a criar algum código.
Mas, pouco antes, precisamos de um objeto na cena que vai administrar todos os pontos de passagem essencialmente.
Portanto, na hierarquia, clique com o botão direito do mouse e crie um vazio.
E vamos chamar este objeto de um gerente de WP.
Portanto, este é o nosso gerente de ponto de passagem sobre isso.
Vamos colocar algum código.
Então, vamos até o projeto e criar um novo roteiro afiado em C e também vamos chamar esse gerente de WP.
Não importa se eles não são os mesmos.
Eu só gosto de manter a consistência.
Agora com esse gerente de WP, vou arrastá-lo e soltá-lo em nosso objeto de jogo vazio.
Certo.
Portanto, quando você tiver esse código, vamos abri-lo.
Agora, deixe-me só fazer esta fonte um pouco maior para você.
Por isso, acho que recusei no outro dia.
Ok, então aqui dentro, o que vamos fazer, antes de tudo, é criar uma pequena
estrutura no topo para nos ajudar a fazer o inspetor parecer bem quando formos ligar todos esses nós ou pontos de
passagem, devo dizer, entre si, com as bordas ou os caminhos.
Portanto, vamos criar um sistema de pontos em série capaz e depois uma estruturação rápida.
Portanto, estrutura pública e nós a chamaremos de link.
Portanto, isto define um elo como na borda ou no caminho entre dois nós ou pontos de passagem.
Portanto, aqui teremos um enumero público que definirá uma direção e essa direção especificará
se o caminho é de um ou dois caminhos.
Agora, a maioria dos caminhos que colocamos são caminhos de dois sentidos.
Na verdade, acho que todos aqueles que somos, não querem que isso vá para uma espécie de beco sem saída.
Se fosse para circular em torno daquela fábrica que está em uma parte do mapa, talvez você pudesse ter um caminho unidirecional
que contornasse isso, de modo que você só pudesse contornar isso em um sentido.
Ok, vamos colocar o nó de objeto de jogo público um, o nó de objeto de jogo público dois.
E depois queremos um D público por R, direção d, i r.
Portanto, isso vai se manter, quer seja um elo único ou bidirecional entre eles.
Muito bem.
Então nós fizemos isso.
Agora, o que vamos fazer é colocar algum código na própria classe real.
Portanto, aqui no topo, vamos criar uma variedade de objetos de jogo.
Portanto, um conjunto de objetos de jogo público, que serão nossos pontos de passagem.
Então teremos uma matriz de links públicos, que serão nossos links.
Certo.
Agora, quando tivermos isto, poderemos então montar nosso gráfico.
Agora queremos usar uma biblioteca gráfica oficial para isso.
Por isso, escreveremos rapidamente o nosso próprio, o que significa que temos que sair daqui e começar a fazer isso em seu lugar.
Portanto, vamos apenas salvar este código e vou deixar esta palestra aqui para que possamos
olhar o código gráfico separadamente em outro conjunto de palestras, para que seja uma espécie de área definida.
E então voltaremos a isto.
Certo, então, nos vemos na próxima palestra.