Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

EL enemigo no sigue al personaje

Iniciado por brok, Noviembre 11, 2015, 03:23:46 PM

Tema anterior - Siguiente tema
Noviembre 11, 2015, 03:23:46 PM Ultima modificación: Noviembre 11, 2015, 03:45:58 PM por brok
El enemigo no sigue al personaje va al punto de salida del personaje, la variable vida esta en static antes me funcionaba pero haora he cambiado de posicion los script de vida tanto del personaje y de el enemigo, no me sale error de ningun tipo.using UnityEngine;
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Player_ai : MonoBehaviour
{
    
    Transform Target;
  
    NavMeshAgent Agent;
    Animator Anim;
    public float Speed = 1.0f;
    public float Rango;
    public float distanciaS = 1.0f;
    public float distanciaP = 2.0f;
    
        void Start()
    {
        Target = GameObject.FindGameObjectWithTag("Player").transform;
        Anim = GetComponent<Animator>();
        Agent = GetComponent<NavMeshAgent>();
        
    }    void Update()
    {                if ( vidaPlayer.vida > 0)
        {
            Agent.SetDestination(Target.position);
            StartCoroutine(idle());
        }
        else
        {
            Agent.enabled = false;
            
        }        
    }
    IEnumerator idle()
    {        yield return new WaitForSeconds(1f);        if (Vector3.Distance(transform.position, Target.position) >= distanciaS)
        {
            Anim.SetFloat("idle", 0.0f);
            if (Vector3.Distance(transform.position, Target.position) <= distanciaP)
            {
                Anim.SetFloat("idle", 1.0f);
                StartCoroutine(patada());
            }        }        yield return null;
    }
    IEnumerator patada()
    {        yield return new WaitForSeconds(2f);
        if (Vector3.Distance(transform.position, Target.position) >= distanciaS)
        {
            Anim.SetFloat("patada", 1.0f);
            Anim.SetFloat("idle", 0.0f);            if (Vector3.Distance(transform.position, Target.position) >= distanciaP)
            {
                Anim.SetFloat("patada", 0.0f);
                Anim.SetFloat("idle", 0.0f);
            }        }        yield return null;    }   
} Este es otro scriptusing UnityEngine;
using System.Collections;public class vidaPlayer : MonoBehaviour
{
    
    public static float vida = 100f;    public static void RestarVida()
    {
    
        vida -= 1f;        if (vida <= 0f)
        {            
            vida += 100;
        }    }
} 

Renicie el unity me funciona que raro.

Etiquetas: