This is the popular choice of how to create a ray:
local ray = Ray.new(script.Parent.Position, (workspace.PART2.Position - script.Parent.Position).Unit*300)
And this is another way:
local ray = Ray.new(script.Parent.Position, (workspace.PART2.Position).Unit*300)
Could someone explain to me why the first one works while the second one does not? I really do not see why subtracting the origin position helps.