Offset and position of the player on the board fields

Hello everybody,

I am working on a board game project. I have one player and 26 fields to move the player around in the game.

I could make the player move with the Vector3.movetowards method but the problem is that the player moves around inside the fields. How can I raise up the position of the player to stay on the fields while moving?

So the code I have for it:

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

public class playerControl : MonoBehaviour
{
public Transform fieldsArray;

int arrayIndex = 0;

public float speed = 20;

int numberOfMoves = 6;

private void Start()
{
    transform.position = fieldsArray[arrayIndex].transform.position);
}

void playerMove()
{
        transform.position = Vector3.MoveTowards(transform.position, fieldsArray[numberOfMoves].transform.position, speed * Time.deltaTime);  
        if(transform.position == fieldsArray[arrayIndex].transform.position)
        {
            arrayIndex++;
        }
        if(arrayIndex == fieldsArray.Length)
        {
            arrayIndex = 0;
        }
    
}

// Update is called once per frame
void Update()
{
    playerMove();
}

}

You have to adjust the Y position of the player. for example if your player’s height is 10, you must add Y position by 10/2 = 5

  transform.position = Vector3.MoveTowards(transform.position, fieldsArray[numberOfMoves].transform.position + new Vector3(0,playerHeight/2,0), speed * Time.deltaTime);

@mamad_m

This solution does not work properly because when the player moves, its position goes up with the measure of y vector, so it looks like it is going up in an angle.

I was also thinking about another solution to make the player move to the fields, for example with hidden waypoints placed on the fields. What about this?

Thank you for the response