help with my game please

Good, I am developing a project for the university and I am not very good at programming. I’m doing a top down mobile game and I need the character to move with buttons but I don’t want to lose the movement in a grid, could you please help me? I’m desperate

this code;

Please, post your code here, using code tags, thank you.

There is no way your script will work if the code is translated…

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum Direction
{
    up, down, right, left
}
public class Movement : MonoBehaviour
{
    Animator anim;
    Vector2 targetPosition;
    Direction direction;
    public float speed = 5f;
    public LayerMask obstacle;
    private void Start()
    {
        anim = GetComponent<Animator>();
        targetPosition = transform.position;
        direction = Direction.down;
    }
    void Update()
    {
        Vector2 axisDirection = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
        anim.SetInteger("Direccion", (int)direction);
        if (axisDirection != Vector2.zero && targetPosition == (Vector2)transform.position)
        {
            if (Mathf.Abs(axisDirection.x) > Mathf.Abs(axisDirection.y))
            {
                if (axisDirection.x > 0)
                {
                    direction = Direction.right;
                    if (!CheckCollision)
                        targetPosition += Vector2.right;
                }
                else
                {
                    direction = Direction.left;
                    if (!CheckCollision)
                        targetPosition -= Vector2.right;
                }
            }
            else
            {
                if (axisDirection.y > 0)
                {
                    direction = Direction.up;
                    if (!CheckCollision)
                        targetPosition += Vector2.up;
                }
                else
                {
                    direction = Direction.down;
                    if (!CheckCollision)
                        targetPosition -= Vector2.up;
                }
            }
        }
        transform.position = Vector2.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
    }
    bool CheckCollision
    {
        get
        {
            bool col = true;
            RaycastHit2D rh;
            Vector2 dir = Vector2.zero;
            if (direction == Direction.down)
                dir = Vector2.down;
            if (direction == Direction.up)
                dir = Vector2.up;
            if (direction == Direction.left)
                dir = Vector2.left;
            if (direction == Direction.right)
                dir = Vector2.right;
            rh = Physics2D.Raycast(transform.position, dir, 1, obstacle);
            return rh.collider != null;
            return col;
        }
    }
}

sorry