Quando o inimigo ataca todos os inimigos ativam a animação
4 participantes
Página 1 de 1
Quando o inimigo ataca todos os inimigos ativam a animação
Desde já bom dia a todos =)
É o seguinte. O meu jogo possui um sistema de spawn de inimigos, e quando um inimigo ataca todos os inimigos que estão spawnados ativam a animação de ataque (o que não devia acontecer).
A seguinte parte do script é a que trata das animações.
A variavel "atacarInimigo" é controlada no script do player:
Eu acredito que quando um inimigo ativa a condição, todos os inimigos a ativam, mas infelizmente nao sei resolver.
Muito obrigado a todas as pessoas que leram até aqui =)
É o seguinte. O meu jogo possui um sistema de spawn de inimigos, e quando um inimigo ataca todos os inimigos que estão spawnados ativam a animação de ataque (o que não devia acontecer).
A seguinte parte do script é a que trata das animações.
- Código:
void Update()
{
navMesh.destination = player.transform.position;
if (atacarInimigo) // quando o inimigo ataca a animação de ataque é ativada
controlInimigo.SetBool("Atacou", true);
if (!atacarInimigo) // quando nao ataca a animaçaõ de andar é ativada
controlInimigo.SetBool("Atacou", false);
}
A variavel "atacarInimigo" é controlada no script do player:
- Código:
private void OnTriggerStay(Collider col)
{
if(col.tag == "Inimigo" && pode && !invu)
{
Inimigo.atacarInimigo = true; //quando colide com o inimigo
StartCoroutine(ColdDown());
}
}
private IEnumerator ColdDown()
{
yield return new WaitForSeconds(0.75f);
Inimigo.atacarInimigo = false;
}
Eu acredito que quando um inimigo ativa a condição, todos os inimigos a ativam, mas infelizmente nao sei resolver.
Muito obrigado a todas as pessoas que leram até aqui =)
Ricardo Faria- Iniciante
- PONTOS : 2139
REPUTAÇÃO : 0
Re: Quando o inimigo ataca todos os inimigos ativam a animação
da uma olhadinha onde vc seta o animator controlInimigo!
o erro de lógica deve estar nesse lugar
o erro de lógica deve estar nesse lugar
Wanderli- Iniciante
- PONTOS : 2583
REPUTAÇÃO : 11
Idade : 33
Respeito as regras :
Re: Quando o inimigo ataca todos os inimigos ativam a animação
Ao invés de ativar o inimigo quando ele colide com o player, que tal ativar tudo isso quando o player colidir com o inimigo? Daí só o inimigo que teve a colisão irá ativar a animação e não todos os outros.
Re: Quando o inimigo ataca todos os inimigos ativam a animação
As linhas 5,6,8 e 9 do primeiro script podem ser resumidas por isso:
No segundo script você verifica a colisão com o inimigo mas chama outro script (sem ser do inimigo que colidiu)
Então vamos deixar o inimigo que colidiu anexado em uma variavel:
---Fiz pelo cel
---O corretor provavelmente corrigiu algumas coisas
---Se não funcionar poste os scripts completos
- Código:
controlInimigo.SetBool("Atacou",atacarInimigo);
No segundo script você verifica a colisão com o inimigo mas chama outro script (sem ser do inimigo que colidiu)
Então vamos deixar o inimigo que colidiu anexado em uma variavel:
- Código:
private Inimigo x;
void OnTriggerEnter(Collider col)
{
if( col.tag == "Inimigo" && pode && !invu)
{
x = col.transform.gameobject.GetComponent<Inimigo>();
if(x != null)
{
x.atacarInimigo = true;
}
StartCoroutine(ColdDown());
}
}
IEnumerator ColdDown()
{
yield return new WaitForSeconds(0.75f);
if(x != null)
{
x.atacarInimigo = false;
x = null;
}
}
---Fiz pelo cel
---O corretor provavelmente corrigiu algumas coisas
---Se não funcionar poste os scripts completos
Phph09- Profissional
- PONTOS : 3791
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Tópicos semelhantes
» Como eu realizo um inimigo que atira(tipo os inimigos do Warface)?
» Inimigo seguir quando ver o player
» Inimigo ataca ao ver a luz
» O inimigo não ataca
» Todos os inimigos morrem
» Inimigo seguir quando ver o player
» Inimigo ataca ao ver a luz
» O inimigo não ataca
» Todos os inimigos morrem
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos