Na palestra anterior, criamos uma seqüência.
Desta vez, vamos criar um seletor.
Agora, um seletor é mais ou menos o oposto de uma seqüência.
Bem, não é bem assim.
Mas uma seqüência é como uma declaração final onde tudo tem que ser bem sucedido para que o nó real, o próprio nó de seqüência
para ser bem sucedido um seletor é uma ou uma declaração, portanto só precisa de uma das coisas
para ser bem sucedido.
Assim, ao passar por sua lista de crianças, se uma falhar, ela continuará tentando até chegar
ao fim ou uma delas for bem-sucedida porque é tudo o que precisa.
Agora o que vamos fazer por nosso seletor é selecionar a partir da porta da frente ou de trás.
A primeira coisa que precisamos fazer é realmente tornar estes itens parte de nossa malha de navegação para que eles funcionem corretamente para
nós.
Porque, como você já viu antes, você pode realmente passar diretamente por aquela porta da frente se estiver
tentando chegar à porta dos fundos.
Portanto, vamos até a porta da frente e vamos até o inspetor, quero que você marque o obstáculo da malha de navegação, que eu terei
desligado para fazer esta parte da malha de navegação.
Agora, você também terá que marcar a caixa de talha para que ela realmente afete o caminho do agente.
Você pode ver aqui no inspetor que isto não está desenhando corretamente na minha tela.
Há uma caixa de seleção esculpida lá embaixo.
E se eu de fato tirar isto para fora e torná-lo um pouco maior, você verá que ele vai aparecer.
Assinale isso.
Então você quer ir para a porta dos fundos e fazer a mesma coisa.
Portanto, basta ter ligado o obstáculo da malha de navegação e também ter clicado em esculpir.
Certo.
Agora isso nos ajudará com isso.
Agora, se voltarmos ao nosso comportamento de ladrão, podemos acrescentar também a porta da frente.
Por isso, vou deixar isto como um desafio para você é montar isto de modo que você tenha uma porta traseira, o que você
já terá, mas você tem que ir para a porta da frente também.
Pausa o vídeo quando voltarmos.
Eu passarei por essas etapas para você.
Muito bem.
Como você reagiu a isso?
Bem, é apenas uma questão de copiar o que você já tem para a porta dos fundos.
Portanto, vamos acrescentar em um objeto de jogo público, a porta da frente bem aqui em cima.
Em seguida, desceremos e acrescentaremos uma entrada para a porta da frente.
Portanto, vamos copiar este e fazer com que ele vá para a frente.
À guerra.
E então mudaremos o texto.
Vá até a porta da frente e vá até a porta da frente também lá.
Certo.
Por isso, quer obviamente que você crie ir até a porta da frente como seu método.
Então, vamos até aqui, copiamos a porta dos fundos e colocamos aqui na porta da frente.
E depois queremos ir para a porta da frente com isso e salvar isso.
Agora, quanto a adicionar estes nós aos nós, nós ainda não temos um nó seletor.
Portanto, queremos adicionar o nó seletor em algum lugar e depois colocar para que ele selecione, vá para a porta da frente ou
vá para a porta dos fundos.
Isso significa que temos que criar um seletor.
Portanto, antes de fazermos isso, vamos apenas salvá-lo.
Mudar de volta para Unidade.
E antes que eu esqueça de fazer isso, vou selecionar o assaltante e encontrar minha porta da frente, que está aqui embaixo
no inspetor e arrastar e soltar aquela porta da frente para que esteja pronta para ir.
Muito bem, então vamos criar nosso seletor.
Então, crie um novo roteiro afiado em C, chame-o de seletor, e então abriremos isso no editor.
E, é claro, o seletor será um nó.
Então podemos nos livrar deles e você pode escrever o resto.
E eu não estou brincando.
Este é o seu desafio.
Você sabe como criar uma seqüência.
Vamos dar uma olhada na seqüência.
Agora a seqüência está aqui.
E eu disse, é como uma declaração final.
Portanto, todos eles têm que ser verdadeiros ou bem sucedidos.
Todas as crianças que estão em ordem para que o próprio processo volte com sucesso.
Portanto, isto vai parar assim que tiver sucesso.
Não vai continuar para nenhuma das outras crianças.
O selecionador vai fazer uma coisa semelhante até o início da primeira criança, dirigir a primeira criança.
Agora, se essa criança falhar, não vai falhar com o seletor.
Vai apenas até a próxima criança e continuar passando pelas crianças até chegar ao fim.
Nesse momento, vai dizer, ok, eu falhei.
Se não encontrou nenhuma criança de sucesso ou assim que encontrar uma criança de sucesso, voltará
naquele momento.
Certo.
Então, seguindo ou talvez começando com o que está na seqüência, você pode rejeitar isto para criar o código
seletor.
Pausa o vídeo agora e quando voltarmos, eu passarei por isso para você.
Certo.
Bem-vindo de volta.
Como você foi?
Você descobriu como fazê-lo funcionar?
Vamos começar pelo início.
Antes de mais nada, vou criar um seletor público e o nome tão cordel ao passar por aqui e depois
vamos criar um nome e depois diremos nome igual a MN.
Muito bem, vamos entrar neste processo.
Portanto, vai ser um status de anulação pública.
Processo.
Bastante o mesmo que o seletor até agora.
Vamos nos livrar desse retorno da base.
E vamos dizer aqui que status, status de criança é igual a criança, criança atual.
Agora, esta será a primeira criança no processo da lista e vai começar a correr isso.
Agora vamos dizer que se o status de criança é igual a ponto de status correndo, então estamos no meio da execução de uma tarefa.
Portanto, devolveremos o ponto de status de funcionamento.
Caso contrário, testaremos.
Se o status de criança é igual a ponto de status bem sucedido, então terminamos a seleção e vamos passar
a criança atual a zero.
Por isso, estamos voltando ao ponto de partida para nós mesmos se usarmos isto novamente e depois devolvermos o ponto de
status.
Sucesso.
Agora, se não for bem sucedido, então falhou, obviamente.
E nós queremos ir para a próxima criança.
Então, criança atual plus plus.
Então diremos que se a criança atual é maior ou igual às crianças não contam, então queremos que a criança atual seja
igual a zero.
Então, reiniciando isso mais uma vez e vamos voltar a falhar.
Portanto, falha de status.
Caso contrário, vamos retornar ao status de parada de funcionamento.
Ok, então estamos procurando a primeira criança através da lista de crianças que tem sucesso.
Muito bem, então vamos salvar isto.
Agora temos um seletor para que possamos voltar ao nosso comportamento de ladrão e acrescentar isso em nossa árvore.
Muito bem.
Portanto, vamos precisar de um nó seletor.
Portanto, sob estas folhas, vou colocar um seletor e vamos chamar essa porta aberta, que
será igual a um novo seletor chamado Porta Aberta.
Agora a porta aberta vai incluir ir para a porta dos fundos e ir para a porta da frente.
Portanto, vou colocar a porta aberta, ponto, adicionar criança, voltar para trás.
Porta.
E porta aberta.
Adicionar criança.
Vá até a porta da frente.
Portanto, agora, com este roubo de adicionar a criança, vá para a porta dos fundos.
Você vai realmente acrescentar nesta porta aberta dessa maneira?
E então, quando chegar ao nó da porta aberta, terá uma escolha a fazer entre estes dois.
Agora, ela vai passar por eles em ordem.
Portanto, primeiro vai para a porta traseira e depois vai para a porta da frente porque ligamos a porta
da frente e a porta traseira como obstáculos em nossa malha, a malha de navegação nos levará a um desses locais,
mas na verdade não será capaz de continuar a chegar ao diamante.
Mas, de momento, tudo bem.
Agora, para voltar para o furgão, podemos realmente nos livrar de voltar para a porta, pois isso apenas
criará um caminho para voltar lá tão facilmente quanto possível.
O que, por este ponto, significa que uma dessas portas será, espera-se, aberta.
Agora, ainda não chegamos a essa dinâmica, mas por enquanto, vamos apenas comentar isso e vamos acabar planejando
um caminho do diamante direto de volta para a van.
Vamos apenas salvar isto, porque eu só quero ver e mostrar a vocês sobre isto.
Portas de trás e da frente funcionando.
Certo.
Portanto, o agente deve ir primeiro para a porta dos fundos neste caso.
Portanto, vamos voltar aqui.
Vamos pressionar o jogo e ele vai para a porta dos fundos.
Então você pode ver agora que isso está pulando completamente, indo para lá e ele vai para a
porta dos fundos, não será capaz de passar por ela porque na verdade é agora um obstáculo que bloqueia
o caminho e pára de jogar.
Se voltarmos ao código, podemos agora, na verdade, trocar essas informações.
Então vamos colocar a porta da frente primeiro, copiar isso e subir aqui, colocar aquilo ali e remover a outra.
Guarde-o e nós voltaremos e pressionaremos o jogo.
E desta vez ele partirá em direção a esta porta aqui, como você pode ver.
Apenas rapidamente, quero lhe mostrar o comportamento que você provavelmente está tendo e que você pode estar questionando.
Vamos apenas pressionar o jogo.
E o que está acontecendo aqui é que ele vai para a porta da frente e depois o que acontece é que ele
dá a volta por aqui e aparentemente fica preso nesta parede.
Então não é que ele tentou ir até a porta da frente e não conseguiu e falhou e ele foi até aqui.
Ele chegou de fato à porta da frente porque, no que diz respeito a essa malha de navegação, ele chegou a
esse local em particular.
Agora, o que ele faz depois de ter ido à porta da frente?
Ele tenta ir até o diamante.
Então, este é ele tentando ir ao diamante.
Mas não há como entrar aqui agora porque temos estes dois obstáculos de malha de navegação na estrada.
Mas tudo bem, porque vamos trabalhar nisto.
Portanto, se você tem esse comportamento, saiba que não é ele tentando chegar até a porta dos fundos.
Era ele tentando continuar seu comportamento para chegar ao diamante.
E ele realmente ficou preso.
Certo.
Então é isso que o Select está fazendo é apenas escolher uma dessas coisas.
Agora você não pode ver o que acontece se um deles estiver trancado no momento e não conseguir
passar e ele realmente tem que ir para o próximo na lista de crianças selecionadas.
Portanto, voltaremos na próxima palestra e trabalharemos sobre essa parte.