2D movement not working

I have been trying to get the movement for the beginning of my game done for the past few hours and no matter what I do or how many tutorials I watch on yt I cant get it to work. From what I understand when I drag the script into the character asset I am supposed to be able to see a character movement speed controller in the drop down of the script but I cant see it no matter what I do and I am unable to even start creating my game because of this. What can I do to fix this?

This is the code that I have for my character movement:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
[SerializeField] private float moveSpeed = 1f;

private PlayerControls playerControls;
private Vector2 movement;
private Rigidbody2D rb;

private void Awake() {
playerControls = new PlayerControls();
rb = GetComponent();
}

private void OnEnable() {
playerControls.Enable();
}

private void Update() {
PlayerInput();
}

private void FixedUpdate() {
Move();
}

private void PlayerInput() {
movement = playerControls.Movement.Move.ReadValue();
}

private void Move() {
rb.MovePosition(rb.position + movement * (moveSpeed * Time.fixedDeltaTime));
}
}

and this is what I can see in my inspect window:

9873375--1423377--image_2024-06-04_184317271.png

Do you see any errors in your console? If the script does not compile, then you will not see any of the [SerializeField] or public parameters in the inspector.

What is playerControls?