JavaScript: ``Unknown Identifier``

It`s saying (Unknown Identifier : distance) lines 14 & 15. Help?!

#pragma strict

var hit : int = 25;
var Distance : float;
var maxDistance : float = 1.5;

function Update()
{
	if(Input.GetButtonDown("Fire1"))
	{
		var hit : RaycastHit;
		if(Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit))
	{
		distance = hit.distance;
		if(distance < maxDistance)
		{
			hit.transform.SendMessage("ItemDrop", hit, SendMessageOptions.DontRequireReceiver);
		}
	 }
   }
}

Most languages are case sensitive, so case matters when you’re using variables and functions and such.

You’ve declared your distance variable as:

var Distance : float;

But you’re using it with a lower case d

distance = hit.distance;

So either declare the variable with a lower case d

var distance : float;

Or use the upper case D when setting it (and all other cases where you’re using it)…

Distance = hit.distance;

Note that hit.distance is still using lower case because that property is declared with a lower case d. But any reference to your declared Distance variable would need to use the upper case d.

The error tells you exactly what is wrong, even what lines.

It’s saying that there is an unknown identifier (it doesn’t know what it is). It even tells you that it doesn’t know what “distance” is. Beyond that it’s telling you that it doesn’t know what “distance” is on line 14 and line 15.

The reason for this is because on line 4 you declare a float variable named Distance. Distance does not equal distance.

Distance != distance
Distance == Distance
distance == distance

“Distance” and “distance” are not the same. However, all variables should be declared inside functions unless they need to be shared between different functions or between frames (and they should also use lowercase), so remove the Distance and hit global variables. Also you don’t even need the distance variable; just do “if (hit.distance < maxDistance)”.