Mkadmii
September 4, 2016, 3:37pm
1
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);
}
Cynikal
September 4, 2016, 5:28pm
2
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
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);
}