the code work bat is not push the ball but with speed of the character ?

the code work but is not push the ball with speed of the character ?

The example Video

using UnityEngine;
using System.Collections;

public class PlayerControllerP1 : MonoBehaviour {

	public float moveSpeed;
    private Vector3 moveDirection;
   // public float gravity = 20.0F;
    void Update()
    {
        moveDirection = new Vector3(Input.GetAxisRaw("p1 Horizontal"), 0, Input.GetAxisRaw("p1 Vertical")).normalized;

}
	void FixedUpdate () 
	{
		GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + transform.TransformDirection(moveDirection) * moveSpeed * Time.deltaTime);
	}
}

Is “p1 Horizontal” defined in the input manager? Make sure it is otherwise Unity won’t recognize it.
Same goes for p1 Vertical.

I found the problem