Pacman project problem

Im trying to make a pacman clone off of this tutorial: noobtuts - Unity 2D Pac-Man Tutorial
However, I’m not able to get Pacman to move. Whenever I start the project, he just starts going left on his own, and I cant do anything. I’ve tried anything I can think of. Heres the script to move him:

 using UnityEngine;
 using System.Collections;
    
    public class PacmanMove : MonoBehaviour
    {
        public float speed = 0.4f;
        Vector2 dest = Vector2.zero;
    
        void Start()
        {
            dest = transform.position;
        }
    
        void FixedUpdate()
        {
            // Move closer to Destination
            Vector2 p = Vector2.MoveTowards(transform.position, dest, speed);
            GetComponent<Rigidbody2D>().MovePosition(p);
    
            // Check for Input if not moving
            if ((Vector2)transform.position == dest)
            {
                if (Input.GetKey(KeyCode.UpArrow) && valid(Vector2.up))
                    dest = (Vector2)transform.position + Vector2.up;
                if (Input.GetKey(KeyCode.RightArrow) && valid(Vector2.right))
                    dest = (Vector2)transform.position + Vector2.right;
                if (Input.GetKey(KeyCode.DownArrow) && valid(-Vector2.up))
                    dest = (Vector2)transform.position - Vector2.up;
                if (Input.GetKey(KeyCode.LeftArrow) && valid(-Vector2.right))
                    dest = (Vector2)transform.position - Vector2.right;
            }
    
            bool valid(Vector2 dir)
            {
                // Cast Line from 'next to Pac-Man' to 'Pac-Man'
                Vector2 pos = transform.position;
                RaycastHit2D hit = Physics2D.Linecast(pos + dir, pos);
                return (hit.collider == GetComponent<Collider2D>());
            }
        }
    }

How do I fix this?

Yeah, it didn’t work for me either. So what I did is modified the code to actually work and also be more like the actual game. Here’s my finished script:

private Rigidbody2D rb;
    private Animator anim;
    public float speed;
    Vector2 currenDirection;

    public bool cantGoUp;
    public bool cantGoDown;
    public bool cantGoLeft;
    public bool cantGoRight;
    public Transform UpSensor;
    public Transform DownSensor;
    public Transform LeftSensor;
    public Transform RightSensor;
    public LayerMask whatIsWall;
    public float checkRadius;  

    private void Start()
    {
        rb = this.GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
    }

    private void Update()
    {
        PlayerInput();
    }

    private void FixedUpdate()
    {
        MazeCheck();
        MovePlayer(currenDirection);
        AnimationHandling();
    }

    public void PlayerInput()
    {
        if (Input.GetKey(KeyCode.W) && !cantGoUp)
            currenDirection = Vector2.up;
        if (Input.GetKey(KeyCode.A) && !cantGoLeft)
            currenDirection = Vector2.left;
        if (Input.GetKey(KeyCode.S) && !cantGoDown)
            currenDirection = Vector2.down;
        if (Input.GetKey(KeyCode.D) && !cantGoRight)
            currenDirection = Vector2.right;
    }

    public void MazeCheck()
    {
        cantGoUp = Physics2D.OverlapCircle(UpSensor.position, checkRadius, whatIsWall);
        cantGoDown = Physics2D.OverlapCircle(DownSensor.position, checkRadius, whatIsWall);
        cantGoLeft = Physics2D.OverlapCircle(LeftSensor.position, checkRadius, whatIsWall);
        cantGoRight = Physics2D.OverlapCircle(RightSensor.position, checkRadius, whatIsWall);
    }

    public void MovePlayer(Vector2 direction)
    {
        rb.velocity = direction * speed * Time.deltaTime;
    }

    public void AnimationHandling()
    {
        anim.SetFloat("DirX", currenDirection.x);
        anim.SetFloat("DirY", currenDirection.y);
    }

It uses OverlapCircles instead of raycasting to detect walls. Just make four empty gamobjects underneath your main pacman object, place them on the top, bottom, right and left edges of your pacman, and drag those into their corresponding transform variables in the Inspector. Select whatever object you have that have maze colliders and assign them to a Wall layer that you will create. Set checkRadius to 0.6. Set whatIsWall to Wall. That should work.