4 de novembro de 2018

Usando o RayCastHit para reconhecer se algo está a frente do objeto na Unity

Para muitos momentos no desenvolvimento de jogos na Unity, temos que reconhecer colisões entre nosso objetos e gameObjetcs a frente, trás ou os lados.

Para isso, fiz um script para reconhece se existe colisões a frente do objeto com esse script:

Script que reconhecer se algo esta a frente do objeto na Unity

using UnityEngine;
 using System.Collections;
 public class ZumbieIaMovement : MonoBehaviour {
     private Vector3 front;
     // se bater no player
     private RaycastHit player;
     
     // Use this for initialization
     void Start () {
        front = transform.TransformDirection(Vector3.left);
     }

     // Update is called once per frame
     void Update () {
        // faz aparecer o raio do raycast
        Debug.DrawRay(transform.position, front * 7, Color.red);
         // 400 = um valor interno que criei que conta o tempo
         if(GameController.instance.TravelledDistance >= 400)
         {
             if(Physics.Raycast(transform.position, front, out player, 7))
             {
                 if(player.collider.gameObject.name == "Player")
                 {
                    print("Player vc já era!");
                 }
             }
         }
         else
         {
             if (Physics.Raycast(transform.position, front, 7))
             {
                print("Bateu na parede");
             }
         }
     }
}

Feito

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *