- Home /
Question by
Theacesofspades · Mar 01, 2014 at 02:23 AM ·
raycastnullreferenceexception
Why am i getting a null reference exception?
Im getting a null reference exception and i have no idea why.
void Shoot ()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, range, canShoot);
{
if (hit != null)
{
hit.collider.gameObject.SendMessageUpwards("HitMe", damage, SendMessageOptions.DontRequireReceiver);
}
}
}
its happening on the line that says hit.collider.gameObject.SendMessageUpwards();
Comment
Answer by Kiloblargh · Mar 01, 2014 at 03:12 AM
What if you change if (hit != null) to "`if (hit.collider.gameObject)`", does it ever hit, and does the error go away?
I have never used SendMessageUpwards, so I don't really know its peculiarities. But I regard SendMessage as a sketchy hack. The best solution would be to figure out what failure of design has made the use of a SendMessageUpwards call necessary, and fix that so that you already know exactly what script you are calling "HitMe" on.
Or is "damage" null? That could also be your problem.
Your answer