Yet another NullReferenceException question.

Edit: I figured out this problem, but I have a new problem I stated at bottom of post

Ok, its my first time programming a game and I’m following a tutorial, but changing the scripts I made following it around to match my game.

I’m trying to script a melee attack, and while I get no errors and can press play and the particles from the melee script are instantiated, no damage is actually done, and the log gets spammed with

NullReferenceException: Object
reference not set to an instance of an
object AbilitySystem.checkFireValues
() (at Assets/Custom
AbilitySystem.Update () (at

I have tried changing it around it seems a hundred times, so I came here to see for some advice. Any help is very much appreciated! :slight_smile:

scripts - >


var countdown : int = 2;
var playerAttackRange : int = 2;
var particle : GameObject;
var player : GameObject;

function Start () {


function Update () {
	var particleClone = particle;
	if(countdown > 0){
		countdown -= Time.deltaTime;
	if(countdown <= 0){
		countdown = 2;
		particleClone = Instantiate(particle,

Destroy(particleClone, 1);


function attack(){

== true) {

	var hit : RaycastHit;
	var fwd = transform.TransformDirection


	if(Physics.RayCast (transform.position, fwd, hit,

if(hit.collider.gameObject == null){
Debug.Log(“collided with “” which has no
if(hit.collider.gameObject.tag == “Enemy”) {
-= AbilitySystem.fireElement.swordDamage;


#pragma strict

function Start () {


class fireElementClass {
	var equippedFire : boolean = true;
	var fireLevel : int = (swordLevel + plummetLevel + meteorLevel)/3;
	var swordLevel : int = 1;
	var plummetLevel : int = 1;
	var meteorLevel : int = 1;
	var swordDamage : int = 1;

static var fireElement : fireElementClass;

function Update () {



function checkFireValues(){

	fireElement.swordDamage *= Statistics.levelModifier *

((fireElement.fireLevel *


I wanted to figure it out myself… but I concede defeat >_>

Edit: OK, well I figured that part out, now when I use my melee attack, apparently there is some error with the Physics.Raycast

MissingMethodException: Method not found: ‘UnityEngine.Physics.RayCast’.
Boo.Lang.Runtime.DynamicDispatching.MethodDispatcherFactory.ProduceExtensionDispatcher ()
Boo.Lang.Runtime.DynamicDispatching.MethodDispatcherFactory.Create ()
Boo.Lang.Runtime.RuntimeServices.DoCreateMethodDispatcher (System.Object target, System.Type targetType, System.String name, System.Object[] args)
Boo.Lang.Runtime.RuntimeServices.CreateMethodDispatcher (System.Object target, System.String name, System.Object[] args)
Boo.Lang.Runtime.RuntimeServices+c__AnonStorey12.<>m__6 ()
Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.Invoke (System.Object target, System.String name, System.Object[] args)
MeleeAttack.attack () (at Assets/Custom Assets/Scripts/Player/MeleeAttack.js:35)
MeleeAttack.Update () (at Assets/Custom Assets/Scripts/Player/MeleeAttack.js:24)

I believe the problem is that you don’t appear to be declaring a class variable Statistics anywhere, and therefore the compiler is unable to find values for Statistics.levelModifier and throws a NullReferenceException.

That’s from what I can see anyway … is Statistics a static var in another script?

Hope that helps, Klep

I might be wrong about this since I use C#, not JS, but you don’t appear to be instantiating fireElement with a new anywhere in AbilitySystem.js so the static will always be null.