Input.GetAxis() dosen't work in User-defined functions

Script: Vector3 Direction() {

    Direction_MoveDirection = new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));</p>
    **Debug.Log(Input.GetAxis("Horizontal"));**

    Direction_MoveDirection = transform.TransformDirection(Direction_MoveDirection);

    return Direction_MoveDirection;

}

When I use Direction() in Update( ) the "Input.GetAxis("Horizontal") " is always "0",but the follow script is ok:

void Update () {

  Debug.Log(Input.GetAxis("Horizontal"));
}

anyone can tell why?thx!

What do you wanna do?