Velocity with (unit vector) * (value) problem

I have a problem when trying to normalize a vector to use its direction along with the speed I want the object to have. Something like:

u = ||u|| * û

With u being the vector velocity, ||u|| the speed (magnitude of the vector) and û the unit vector that defines the direction I want the object to take.

Another thing I do is find the space between two objects and normalize the vector to find its direction (û), to make the first to move towards the other. This is where I think I’m probably making a mistake.

When I do this in Unity (using Javascript), and then test it I find that everything is alright until I get close to the place where the object spawns. The first object (bullet) reduces its speed as if the previously normalized vector were changing its lenght, therefore reducing its magnitude (speed). So here’s part of the code:

var bulletclone : Transform;
bulletclone = Instantiate(halbullet,attackcoord.position,Quaternion.identity);
var dir = ((player.position - bulletclone.position).normalized);
bulletclone.rigidbody2D.velocity = dir*5;

The last part of the code is like the first equation I quoted. I hope you can help me with this problem since I can’t see what I’m doing wrong. Excuse my bad english (just in case) since i’m not a native english speaker.

I had a similar problems a couple of days ago in a 2D app. Make sure the ‘z’ for both ‘player.position’ and ‘bulletclone.position’ are the same. If the ‘z’ is not the same, shorter vectors will have a larger ‘z’ component compared to the same direction and a longer distance. Rigidbody2D.velocity only uses x and y, so the ‘z’ is discarded. And this fits exactly with what you see.