IA: Seguir objetivo y esconderse en Unity3D




Muy buenas!! Hoy traigo un aporte interesante, un script sobre inteligencia artificial para Unity3D.






Con este script podrás hacer que el objeto A persiga al objeto B y que el objeto B se pueda esconder dejando A de seguirle (Que rayada acabo de escribir jajajajaja)

Bueno por aquí el Script:

using UnityEngine;
using System.Collections;

public class FollowPlayer : MonoBehaviour {

public Transform target;
    public float moveSpeed = 3;
    public float rotationSpeed = 3;
    public float distance = 5f;
    public bool Enabled = false;
    public bool Detect = false;
    private Transform myTransform;


    void Awake()
    {
        myTransform = this.GetComponent<Transform>();
    }


    void Start()
    {
        target = GameObject.FindWithTag("Player").transform;
    }


    void Update()
    {
        if (Enabled)
        {
            myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
            RaycastHit info;
            Debug.DrawRay(transform.position, transform.forward * distance, Color.red, 0.1f);
            if (Physics.Raycast(transform.position, transform.forward, out info, distance))
            {
                if (info.collider.tag == "Player")
                {
                    Detect = true;
                }
                else
                {
                    Detect = false;
                }
            }
            else
            {
                Detect = false;
            }
        }
        if (Enabled && Detect)
        {
            myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
        }
    }

    void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
        {
            Enabled = true;
        }
    }

    void OnTriggerExit(Collider other)
    {
        if (other.tag == "Player")
        {
            Enabled = false;
        }
    }
}



Lo ideal para aquel que quiera usarlo es modificar su movimiento para que se mueva por físicas, pero bueno como base me parece buena para compartir.


Ayúdame con un Like y suscribiéndote al canal, cualquier duda coméntamelo y lo vemos.

¿Quieres aprender a programar con Unity3D? Pásate por mi curso 100% online y gratuito en youtube: https://www.youtube.com/playlist?list=PLaDp_b5hHsLDALqIfSUSgLI8rIoQj4Hk7

Sigueme en Twitter para estar al tanto de todas las novedades y noticias de videojuegos: @OverfileGames https://twitter.com/OverfileGames

Un saludo.



Comentarios

Entradas populares de este blog

Metal Gear Solid V Analisis sin spoilers 2: Gráficos Antigua Generación VS Nueva Generación

🌟 Crear un videojuego de plataformas con Unity 🎮 6 – Crear efecto parallax