Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: brok en Noviembre 06, 2015, 08:12:51 PM

Título: ¿Por que me sale este error?
Publicado por: brok en Noviembre 06, 2015, 08:12:51 PM
quiero que cuando el enemigo este a 0 salte el Slider a false como gameobjet, el erros me da en el if(vidaAI.vidaEnemigo<=0),Severity    Code    Description    Project    File    Line
Error        NullReferenceException: Object reference not set to an instance of an object    Solution 'curso' ‎(3 projects)    Assets/script/DestruirBarra.cs    25using UnityEngine;
using System.Collections;
public class DestruirBarra : MonoBehaviour {
    Player_ai player_ai;
    vidaPlayerAI vidaAI;
   
    // Use this for initialization
    void Start ()
    {        player_ai = GetComponent<Player_ai>();
        vidaAI = GetComponent<vidaPlayerAI>();
    
    }
    
    // Update is called once per frame
    void Update ()
    {
        destruir();
    }
    void destruir()
    {
        if (vidaAI.vidaEnemigo <= 0)
        
            player_ai.eneSlider.gameObject.SetActive(false);
        
    }
}  
Título: ¿Por que me sale este error?
Publicado por: Antonio en Noviembre 06, 2015, 08:30:15 PM
No lo sé, no veo el error en este script. x_X¿Estás seguro de que está encontrando los componentes player_ai y vidaAI?
Título: ¿Por que me sale este error?
Publicado por: iRobb en Noviembre 06, 2015, 08:30:34 PM
El eneSlider no está inicializado en el player-ai. Mira allí o pon ese código.
Título: ¿Por que me sale este error?
Publicado por: brok en Noviembre 06, 2015, 08:45:58 PM
SI puedo jujar pero no funciona
Este el player aiusing UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;[RequireComponent(typeof(NavMeshAgent))]
public class Player_ai : MonoBehaviour
{
    public Transform Target;
    Vector3 Destination;
    public Slider eneSlider;
    NavMeshAgent Agent;
    Animator Anim;
    public float Speed = 1.0f;
    public float Rango;
    public float distanciaS = 1.0f;
    public float distanciaP = 2.0f;
    vidaPlayerAI vidaAI;    void Start()
    {
        vidaAI = GetComponent<vidaPlayerAI>();
        Anim = GetComponent<Animator>();
        Agent = GetComponent<NavMeshAgent>();
        Destination = Agent.destination;
    }    void Update()
    {
               eneSlider.value = vidaAI.vidaEnemigo;        if (Vector3.Distance(Destination, Target.position) > Speed)        {
            Destination = Target.position;
            Agent.destination = Destination;
            StartCoroutine(idle());
        }               
    }
    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 el que resta la vida using UnityEngine;
using System.Collections;public class vidaPlayerAI : MonoBehaviour {
    public float vidaEnemigo = 100f;
    
        public void RestarVidaEnemigo()
    {         vidaEnemigo -= 10f;        
        if (vidaEnemigo <= 0f)
        {
            Destroy(gameObject);
        }
    }
}
Título: ¿Por que me sale este error?
Publicado por: iRobb en Noviembre 06, 2015, 10:35:14 PM
eneSlider lo tienes como public sin buscarlo con GetComponent. Lo tienes asignado en el editor?
Título: ¿Por que me sale este error?
Publicado por: brok en Noviembre 06, 2015, 11:17:53 PM
no sabia que tenia que estar en la escena con el player_ai arreglado