Converting Vector3

Does anyone have a useful interpretation of this message?

BCE0022: Cannot convert ‘function(UnityEngine.Vector3): UnityEngine.Vector3’ to ‘UnityEngine.Vector3’.

I get this error when I try the following

terraino is a terrain game object visible from the maincamera.

    var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    var hit : RaycastHit;
    if (terraino.collider.Raycast (ray, hit, 10000.0)) {
        Debug.DrawLine (ray.origin, hit.point);
    }
	if(Input.GetMouseButtonDown(1)){
		var Apoint: Vector3 = hit.point;
		var Bpoint: Vector3 = ray.origin;
		var direction: Vector3 = (Apoint - Bpoint).Normalize;
	}

So I figure that this is a particularly easy error but everything I do results with this.

The message doesn’t really help me get to the bottom of this. I read this as a failure in converting a Vector3 output, of a function that takes a Vector3 as it’s input, to a Vector3. You can imagine how confused I am.

At the end of this I want the direction between the point where the ray hit and the ray’s origin.

Vector3.Normalize is a function of Vector3 which doesn’t return a value. You don’t even call the function (you don’t put brackets () behind it), you pass the function itself which can for sure not be converted into a Vector3.

I guess you want the property Vector3.normalized which returns the normalized vector.

So you either do

var direction: Vector3 = (Apoint - Bpoint).normalized;

or

var direction: Vector3 = Apoint - Bpoint;
direction.Normalize();