Wpis z mikrobloga

Mam problem w #unity3d

NullReferenceException: Object reference not set to an instance of an object HurtEnemy.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/HurtEnemy.cs:39)

źródło:

public class HurtEnemy : MonoBehaviour { public int damageToGive;
public GameObject DamageBurst;
public Transform HitPoint;
// Use this for initialization
void Start () { }
// Update is called once per frame
void Update () { }
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag == "Enemy") {

//Destroy(other.gameObject);

other.gameObject.GetComponent().HurtEnemy(damageToGive); // TUTAJ PROBLEM

Instantiate(DamageBurst, HitPoint.position, HitPoint.rotation); } } }

#gamedev (mam nadzieję, że nie będzie linczu)
  • 3
@mattpoz: Skąd masz pewność, że obiekt other.gameObject zawsze będzie posiadał komponent "EnemyHealthManager"? Czy w tej grze nie może się wydarzyć coś takiego, że nastąpi kolizja z elementem który nie ma tego komponentu?
Na Twoim miejscu sprawdzałbym to w mniej więcej taki sposób:
var enemyHealthManager = other.GameObject.GetComponent();
if(enemyHealthManager != null){
enemyHealthManager.HurtEnemy(damageToGive);
}

Chociaż ogólnie mam wrażenie że coś jest tutaj nie tak z tym samym komponentem...