transform.foward returns transform.zero?

Hi! I was searching for an answer before asking but I didn’t find anything working for me, sorry.
I’m trying to make a 3D Space Shooter and I’m having an issue using raycasting to detect objects in front of me. I use “if (Physics.Raycast(transform.position, transform.forward, hit, range))” and it doesn’t work well. It detects objects in front depending on from where I’m looking at them. I draw a line to visualize the raycast “Debug.DrawLine(transform.position, transform.forward, Color.red, 1)” and the line starts at my position but doesn’t looks forward, it alwas aim to origin point ((0,0,0) or Vector3.zero). I also told my lasers to shot to transform.forward and they also aim always to 0,0,0, no mather where I move or look. If I try other objects transform, as MainCamera, Player, etc to use it’s forward information the result is always the same, I always have a Vector3.zero when asking for a Vector3.forward. Any idea?
Some users told pasting existing code in new scripts or creating a new scene/project and importing the assets will solve the problem. I did both and the same problem persists.
Thanks in advance!
PS: I’m using Unity 3.5 Public Beta Release

Phyisics.Raycast(transform.position, transform.forward,…) should work fine, but Debug.DrawLine is wrong: you should use Debug.DrawRay(transform.position, range * transform.forward, …) - Debug.DrawLine draws a line between two points, what makes this “line-to-origin” effect (transform.forward “looks” like a point near to zero).

I suspect your Raycast problem may be caused by a rotated model - imported models often have different axis orientation, and we usually rotate them to the Unity axes. The model looks ok, but its forward direction points the wrong axis (it should be Z, but may be pointing in Y or X axes).

Change Debug.DrawLine to Debug.DrawRay and check in which direction exactly Raycast is going.