Modifique el codigo y ahora no me resta vida ni destruye ni me da ningun error ¿que puedo estar haciendo mal? using UnityEngine;
using System.Collections;
using System;public class vidaPlayerAI : MonoBehaviour
{
public delegate void DeathEvent();
public event DeathEvent Death;
public int vidaEnemigoMax = 100;
public int vidaEnemigoMin = 0;
public int vidaEnemigoAI; public int ScoreValor = 10; public void RestarVidaEnemigo(int Value)
{
vidaEnemigoAI -= Value;
vidaEnemigoAI = Mathf.Clamp(vidaEnemigoAI, vidaEnemigoMin, vidaEnemigoMax);
if (vidaEnemigoAI <= 0) if (Death != null) Death();
} void Update()
{
if (vidaEnemigoAI == 0)
vidaEnemigoAI = 100;
Death += () => { Destroy(this.gameObject); };
if (vidaEnemigoAI == 0)
{
ScoreManager.score += ScoreValor;
aumentarVidaEnemigo(0);
}
}
void aumentarVidaEnemigo(int Value)
{
vidaEnemigoAI += Value;
vidaEnemigoAI = Mathf.Clamp(vidaEnemigoAI, vidaEnemigoMin, vidaEnemigoMax);
}
} Otro script using UnityEngine;
using System.Collections;public class ColisionPlayer: MonoBehaviour
{
Transform playerT;
public float sinkSpeed = 0.5f;
AudioSource PatadaSonido;
Player player;
CapsuleCollider col;
void Start()
{
playerT = GameObject.FindGameObjectWithTag("Player").transform;
PatadaSonido = GetComponentInParent<AudioSource>();
player = GetComponentInParent<Player>();
} void Update()
{
var healt = col.gameObject.GetComponent<vidaPlayerAI>();
if (healt != null) healt.RestarVidaEnemigo(20);
} void OnTriggerEnter(Collider colision)
{ if (colision.gameObject.CompareTag("Enemigo")) {
var healt = colision.gameObject.GetComponent<vidaPlayerAI>();
if (healt != null)
healt.RestarVidaEnemigo(20); player.sliderAI.gameObject.SetActive(true);
Player.damaged = true;
PatadaSonido.Play();
playerT.Translate(-Vector3.forward * sinkSpeed);
}
else
{
StartCoroutine(sliderEnemigo());
}
} IEnumerator sliderEnemigo()
{
yield return new WaitForSeconds(5f);
player.sliderAI.gameObject.SetActive(false);
yield return null;
}
}Me da errorvar healt = col.gameObject.GetComponent<vidaPlayerAI>();NullReferenceException: Object reference not set to an instance of an object
ColisionPlayer.Update () (at Assets/script/player/ColisionPlayer.cs:24)
using System.Collections;
using System;public class vidaPlayerAI : MonoBehaviour
{
public delegate void DeathEvent();
public event DeathEvent Death;
public int vidaEnemigoMax = 100;
public int vidaEnemigoMin = 0;
public int vidaEnemigoAI; public int ScoreValor = 10; public void RestarVidaEnemigo(int Value)
{
vidaEnemigoAI -= Value;
vidaEnemigoAI = Mathf.Clamp(vidaEnemigoAI, vidaEnemigoMin, vidaEnemigoMax);
if (vidaEnemigoAI <= 0) if (Death != null) Death();
} void Update()
{
if (vidaEnemigoAI == 0)
vidaEnemigoAI = 100;
Death += () => { Destroy(this.gameObject); };
if (vidaEnemigoAI == 0)
{
ScoreManager.score += ScoreValor;
aumentarVidaEnemigo(0);
}
}
void aumentarVidaEnemigo(int Value)
{
vidaEnemigoAI += Value;
vidaEnemigoAI = Mathf.Clamp(vidaEnemigoAI, vidaEnemigoMin, vidaEnemigoMax);
}
} Otro script using UnityEngine;
using System.Collections;public class ColisionPlayer: MonoBehaviour
{
Transform playerT;
public float sinkSpeed = 0.5f;
AudioSource PatadaSonido;
Player player;
CapsuleCollider col;
void Start()
{
playerT = GameObject.FindGameObjectWithTag("Player").transform;
PatadaSonido = GetComponentInParent<AudioSource>();
player = GetComponentInParent<Player>();
} void Update()
{
var healt = col.gameObject.GetComponent<vidaPlayerAI>();
if (healt != null) healt.RestarVidaEnemigo(20);
} void OnTriggerEnter(Collider colision)
{ if (colision.gameObject.CompareTag("Enemigo")) {
var healt = colision.gameObject.GetComponent<vidaPlayerAI>();
if (healt != null)
healt.RestarVidaEnemigo(20); player.sliderAI.gameObject.SetActive(true);
Player.damaged = true;
PatadaSonido.Play();
playerT.Translate(-Vector3.forward * sinkSpeed);
}
else
{
StartCoroutine(sliderEnemigo());
}
} IEnumerator sliderEnemigo()
{
yield return new WaitForSeconds(5f);
player.sliderAI.gameObject.SetActive(false);
yield return null;
}
}Me da errorvar healt = col.gameObject.GetComponent<vidaPlayerAI>();NullReferenceException: Object reference not set to an instance of an object
ColisionPlayer.Update () (at Assets/script/player/ColisionPlayer.cs:24)