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

Cancelan Silent Hills pero aún queda un mínimo de esperanza, apoya con tu firma para que terminen el juego

Beta de Battlefield Hardline directo