[RESOLVIDO] Por que o NavMesh não está gerando um destino?
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Por que o NavMesh não está gerando um destino?
Boas pessoal, estou usando esse script para criar o patrulhamento do meu Inimigo https://www.schultzgames.com/t107-tutorial-ai-enemy-jogos-de-terror#229
Só que estou tentando criar uma outra coisa que é, se o player deixar cair ou derrubar um objeto, o Destino do inimigo se tornaria aquele objeto, simulando que o inimigo tenha escutado o barulho e foi até lá para ver o que está acontecendo.
Eu criei um script que checa a colisão do objeto com o chão e envia o transform.position para o script do inimigo
lá no script do inimigo do tutorial, eu adicionei o seguinte
no editor da scene eu vejo que o inimigo identificou o objeto e sua posição, pois o nav gerou um raio até ele, mas não gerou um caminho e o inimigo ficou parado.
o que eu estou esquecendo? primeira vez que estou usando navmesh...
Obrigado!
Só que estou tentando criar uma outra coisa que é, se o player deixar cair ou derrubar um objeto, o Destino do inimigo se tornaria aquele objeto, simulando que o inimigo tenha escutado o barulho e foi até lá para ver o que está acontecendo.
Eu criei um script que checa a colisão do objeto com o chão e envia o transform.position para o script do inimigo
- Código:
private void OnCollisionEnter(Collision collision)
{
if (bottles && collision.gameObject.tag == "Ground")
{
aSource.PlayOneShot(glassBottleDownWood, 1f);
bottles = false;
sendNoisePosition = true;
}
}
private void Update()
{
if (sendNoisePosition)
{
AiEnemy.TemBarulho = true;
AiEnemy.SeguirBarulho = gameObject.transform;
sendNoisePosition = false;
}
}
lá no script do inimigo do tutorial, eu adicionei o seguinte
- Código:
if (TemBarulho)
{
SeguindoBarulho();
}
void SeguindoBarulho()
{
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.SetDestination(SeguirBarulho.position);
}
no editor da scene eu vejo que o inimigo identificou o objeto e sua posição, pois o nav gerou um raio até ele, mas não gerou um caminho e o inimigo ficou parado.
o que eu estou esquecendo? primeira vez que estou usando navmesh...
Obrigado!
Última edição por dstaroski em Qua Ago 15, 2018 4:01 pm, editado 1 vez(es) (Motivo da edição : Resolvido)
loganout- Iniciante
- PONTOS : 2531
REPUTAÇÃO : 9
Respeito as regras :
Phph09- Profissional
- PONTOS : 3790
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [RESOLVIDO] Por que o NavMesh não está gerando um destino?
sim, o navmesh está funcionando igual ao tutorial do Marcos que citei, inclusive o objeto para onde estou passando a posição fica dentro de um ambiente onde o inimigo vai ao encontro de um Aipoint.Phph09 escreveu:Voce fez o bake do navmesh?
Eu já tentei até passar a posição desse Aipoint existente e do meu Player ao colidir com o objeto derrubado, mas sempre acontece o problema de não gerar o caminho.
loganout- Iniciante
- PONTOS : 2531
REPUTAÇÃO : 9
Respeito as regras :
Re: [RESOLVIDO] Por que o NavMesh não está gerando um destino?
loganout escreveu:Boas pessoal, estou usando esse script para criar o patrulhamento do meu Inimigo https://www.schultzgames.com/t107-tutorial-ai-enemy-jogos-de-terror#229
Só que estou tentando criar uma outra coisa que é, se o player deixar cair ou derrubar um objeto, o Destino do inimigo se tornaria aquele objeto, simulando que o inimigo tenha escutado o barulho e foi até lá para ver o que está acontecendo.
Eu criei um script que checa a colisão do objeto com o chão e envia o transform.position para o script do inimigo
- Código:
private void OnCollisionEnter(Collision collision)
{
if (bottles && collision.gameObject.tag == "Ground")
{
aSource.PlayOneShot(glassBottleDownWood, 1f);
bottles = false;
sendNoisePosition = true;
}
}
private void Update()
{
if (sendNoisePosition)
{
AiEnemy.TemBarulho = true;
AiEnemy.SeguirBarulho = gameObject.transform;
sendNoisePosition = false;
}
}
lá no script do inimigo do tutorial, eu adicionei o seguinte
- Código:
if (TemBarulho)
{
SeguindoBarulho();
}
void SeguindoBarulho()
{
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.SetDestination(SeguirBarulho.position);
}
no editor da scene eu vejo que o inimigo identificou o objeto e sua posição, pois o nav gerou um raio até ele, mas não gerou um caminho e o inimigo ficou parado.
o que eu estou esquecendo? primeira vez que estou usando navmesh...
Obrigado!
Olá amigo, tenta pegar o ponto de collisao e passar para o SetDestination pra ver se muda algo...
Re: [RESOLVIDO] Por que o NavMesh não está gerando um destino?
Aparentemente consegui encontrar o que na verdade eu estava deixando para trás sem perceber...NotoriousDev escreveu:
Olá amigo, tenta pegar o ponto de collisao e passar para o SetDestination pra ver se muda algo...
Não sei se você observou no script todo no link, existe uma função do inimigo chamada passear() e ela está sendo chamada sempre que o inimigo não estiver vendo o jogador.
O que eu alterei foi deixar de chama-la quando eu chamo tbm a minha void SeguindoBarulho() e assim consigo corre-la sem que o inimigo fique confuso e parado hehe
Foi uma falta de atenção...
Obrigado vocês pelo tempo que disponibilizaram em me ajudar!!!
loganout- Iniciante
- PONTOS : 2531
REPUTAÇÃO : 9
Respeito as regras :
Tópicos semelhantes
» [Resolvido]Como selecionar o local de destino do "Application.CaptureScreenshot"
» [RESOLVIDO] NavMesh
» [RESOLVIDO] AI Points e NavMesh
» [RESOLVIDO] Dúvida NavMesh com UI
» [RESOLVIDO] Conflito NavMesh
» [RESOLVIDO] NavMesh
» [RESOLVIDO] AI Points e NavMesh
» [RESOLVIDO] Dúvida NavMesh com UI
» [RESOLVIDO] Conflito NavMesh
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos