Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Virar inimigo junto com o detect box

Estou tendo dificuldade em fazer o detect box virar junto com o inimigo, como eu poderia fazer isso?

1 resposta
solução!

Olá Kaio! Como vai?

Vou te ajudar com isso. Pelo que você descreveu, parece que o problema está relacionado à rotação do detectPosition quando o inimigo muda de direção.

Uma maneira de resolver isso é garantir que o detectPosition seja um filho do inimigo no hierarquia. Dessa forma, quando o inimigo vira, o detectPosition também irá virar automaticamente. Aqui está um exemplo de como você pode fazer isso:

  1. Certifique-se de que o detectPosition seja um filho do GameObject do inimigo na hierarquia do Unity. Isso pode ser feito arrastando o detectPosition para dentro do GameObject do inimigo na hierarquia.

  2. No script do seu inimigo, quando você inverte o sprite do inimigo, também inverta a posição do detectPosition no eixo X. Isso pode ser feito ajustando a escala local do detectPosition. Veja um exemplo de como isso pode ser feito:

private void FlipSpriteAndDetectPosition()
{
    if (moveDirection < 0)
    {
        transform.localScale = new Vector3(-1, 1, 1);
        detectPosition.localPosition = new Vector3(-Mathf.Abs(detectPosition.localPosition.x), detectPosition.localPosition.y, detectPosition.localPosition.z);
    }
    else if (moveDirection > 0)
    {
        transform.localScale = Vector3.one;
        detectPosition.localPosition = new Vector3(Mathf.Abs(detectPosition.localPosition.x), detectPosition.localPosition.y, detectPosition.localPosition.z);
    }
}
  1. Chame o método FlipSpriteAndDetectPosition() no lugar onde você está atualmente invertendo o sprite do inimigo.

Com essas alterações, o detectPosition deve virar junto com o inimigo. Lembre-se de ajustar as posições e escalas conforme necessário para se adequar ao seu jogo específico.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.