using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed;
public float rotationSpeed;
private Rigidbody rb;
private float moveInput;
private float rotationInput;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Inverted vertical input so W = forward
moveInput = -Input.GetAxis("Vertical");
// Left/right rotation input (A/D or Left/Right)
rotationInput = Input.GetAxis("Horizontal");
}
void FixedUpdate()
{
// Move forward/backward
Vector3 move = transform.forward * moveInput * moveSpeed * Time.fixedDeltaTime;
rb.MovePosition(rb.position + move);
// Rotate left/right
float rotation = rotationInput * rotationSpeed * Time.fixedDeltaTime;
Quaternion turn = Quaternion.Euler(0f, rotation, 0f);
rb.MoveRotation(rb.rotation * turn);
}
}