Desenvolvimento Unity

Como criar inteligência artificial estilo patrulha para inimigos no Unity 2D

GIF

Você que é fã de jogos plataforma, programa utilizando a Engine Unity 2D e quer criar inimigos para seu game. Então você vai adorar o post Como criar Inteligência artificial estilo patrulha para inimigos no Unity 2D, pois o mesmo ensina de maneira fácil e rápida como implementar um inimigo que possua o comportamento de patrulha.

Como criar Inteligência artificial estilo patrulha para inimigos no Unity 2D

O comportamento de patrulha consiste em movimentar de um lado para o outro de forma continua um objeto, neste caso um inimigo, em uma plataforma de forma que o objeto reconheça o limite da mesma.

O que é o método Raycast?

O Raycast é como um laser que é lançado a partir de um ponto dentro do espaço da cena em uma certa direção. Quando esse raio entra em contato com qualquer outro objeto, podemos identificar tal colisão.

Para conseguir exemplificar essa mecânica vamos criar um projeto base utilizando os materiais presentes no link de download e codificar o script do comportamento seguindo os seguintes passos:

1 – Crie um novo projeto do tipo 2D.

Print de tela 1

2 – Importe os sprites da plataforma e do inimigo para dentro da sua cena.

3 – Crie os Box Colliders para os dois game objects.

print de tela 4

4 – Vá na aba de hierarquia e crie um empty game object dentro do seu inimigo, denominado “DetectaChao”.

print de tela 2

5 – Posicione o game object “DetectaChao” no canto inferior direito do seu inimigo.

print de tela 6

6 – Crie um novo script utilizando a linguagem C# para seu inimigo e adicione o seguinte código:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Inimigo : MonoBehaviour
{
  public Transform DetectaChao;
  public float distancia = 3;
  public bool olhandoParaDireita;
  public float velocidade= 4;

  void Start()
  {
     olhandoParaDireita=true;
  }

  void Update()
  {
     Patrulha() ; 
  }

  public void Patrulha()
  { 
     transform.Translate(Vector2.right * velocidade * Time.deltaTime);

     RaycastHit2D groundInfo = Physics2D.Raycast(DetectaChao.position, Vector2.down, distancia);
     if (groundInfo.collider == false)
     {
         if (olhandoParaDireita == true)
         {
             transform.eulerAngles = new Vector3(0, -180, 0);
             olhandoParaDireita= false;
         }
         else
         {
                transform.eulerAngles = new Vector3(0, 0, 0);
                olhandoParaDireita = true;
         }
     } 
  }
}

No método “Patrulha ()” utilizamos algumas variáveis que precisam ser criadas anteriormente, tais como; velocidade, distancia e olhandoParaDireita. A variável “velocidade” irá definir a velocidade em que o nosso inimigo irá se movimentar, a “distancia” está relacionada com tamanho do “raio” do nosso Raycast e a variável “olhandoParaDireita” irá verificar para qual lado o nosso inimigo está olhando.

Dentro do método “Patrulha” estamos mandando o nosso inimigo se movimentar o tempo todo para a direita na velocidade determinada, quando o nosso Raycast identifica que não há mais plataforma, mandamos o inimigo virar na direção oposta e continuar andando.

Caso você não saiba, o Ray cast serve para ….

6. Adicione o script criado ao seu inimigo.

print de tela 7

7 – Arraste o “DetectaChao” para o seu respectivo local no inspetor do inimigo.

8 – Clique no play para testar o programa

GIF

Pronto! Agora você tem uma verdadeira ameaça dentro do seu jogo.

Acesse a nossa área de cursos para aprender a desenvolver jogos utilizando as ferramentas Unity, Construct 2, Game Maker e MonoGame. Participe também do nosso grupo de estudos no Facebook.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 716 outros assinantes

Quer aprender a programar?

Construa seu próprio site em ASP.NET

Anúncios