{Newbie Here} How to make my gameObject move using Get.Axis("Horizontal")?

I’ve tried EVERYTHING, seriously, but Unity keeps showing me errors. I originally had it move using the Get.Key method, but I want to use Get.Axis since it’s more efficient.

Here’s the code:

float moveX = Input.GetAxis("Horizontal");

void Update () {

	//Ship Movement

	transform.Translate = new Vector3 (moveX * d, 0f, 0f);

	
}

float xPos = Input.GetAxis(“Horizontal”) * MoveSpeed;

transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x + xPos, transform.position.y, transform.position.z));

Give that a go.

hi @Mkadmii,

if you want an example of an input.GetAxis code to move your player via the horizontal en vertical axis
key’s then here you go

public class 2DMovement: MonoBehaviour
{
    public float speed;
    Vector3 movement;

    void Update()
    {
        float moveHorizontal = Input.GetAxisRaw("Horizontal");
        float moveVertical = Input.GetAxisRaw("Vertical");

        movement = new Vector3(moveHorizontal, moveVertical, 0f );

        movement = movement * speed * Time.deltaTime;

        transform.position += movement;
    }
}

do know that this code only works in a 2D game so if you want 3D Movement then try this:

public class 3DMovement: MonoBehaviour   
{
 public float Speed;
 Vector3 movement;

    void Update()
    {
        //movement

        float moveHorizontal = Input.GetAxisRaw("Horizontal");

        float moveVertical = Input.GetAxisRaw("Vertical");

        movement = new Vector3(moveHorizontal, 0f, moveVertical);

        movement = movement * Speed * Time.deltaTime;
     }
}

i hope this helps :slight_smile:

Hi,

Here’s how I did my code:

Vector3 playerMovement;
Rigidbody playerRB;
public float moveSpeed;

private void Awake()
{
    playerRB = GetComponent<Rigidbody>();
}

void FixedUpdate ()
{
    float h = Input.GetAxisRaw("Horizontal");

    playerMovement.Set(h, 0f, 0f);
    playerMovement = playerMovement * moveSpeed * Time.deltaTime;

    playerRB.MovePosition(transform.position + playerMovement);
}