Object placement in a grid on player.transform.position

Hey,
I found this Object placement in a grid Tutorial on youtube:

In the comment answers the author has posted the project download link.

The Script is working fine, the grid box highlight is based on mousePosition:

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

I need to have the object placement instead of mousePosition on my Player.position (Im using a Third Person Controller).
So the grid box is always highlighted on the grid the player is standing.
My try so far, I added my Player to a Layermask and im using this modified code inside DragObjectPlace.cs:

private GameObject networkPlayer;
private Vector3 networkPlayerVector;

    void Start()
    {
        networkPlayer = GameObject.FindGameObjectWithTag("Player");
    }

    void Update()
    {
        networkPlayerVector = networkPlayer.transform.position;
        Vector3 fwd = networkPlayer.transform.TransformDirection(Vector3.forward);

        // Bit shift the index of the layer (8) to get a bit mask
        int layerMask = ~(1 << 9);

        Ray ray = new Ray(networkPlayerVector, fwd);

        if (Physics.Raycast(ray, out hitInfor, 10, layerMask))
        { ....... and so on

This is working fine, but the grid is placed on Vector3.forward, so always 1 grid away from the players view direction. How can I get the grid placed on Player position?
I thought its this code, but this doesn’t Raycast anything at all:

Ray ray = new Ray(networkPlayerVector, networkPlayerVector);

Here is the full unmodified code from youtube:

PlaceBehaviour.cs

using UnityEngine;
using System.Collections;

public class PlaceBehaviour : MonoBehaviour
{

    public GameObject currentObject;

}

DragObjectPlace.cs

using UnityEngine;
using System.Collections;

public class DragObjectPlace : MonoBehaviour
{

    [System.Serializable]
    public class PlaceSelect
    {
        public Color32 selectColor;
        public Color32 busyColor;

        public void Select(PlaceBehaviour place)
        {
            MeshRenderer mesh = place.GetComponent<MeshRenderer>();
            mesh.enabled = true;

            if (place.currentObject == null)
                mesh.material.color = selectColor;
            else
                mesh.material.color = busyColor;

        }

        public void Deselect(PlaceBehaviour place)
        {
            place.GetComponent<MeshRenderer>().enabled = false;
        }
    }

    public GameObject objectInDrag;
    public Vector3 offset;
    public PlaceSelect placeSelect;

    private PlaceBehaviour lastPlaceSelected;

    void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfor;

        if (Physics.Raycast(ray, out hitInfor))
        {
            objectInDrag.SetActive(true);

            if (hitInfor.collider.GetComponent<PlaceBehaviour>() != null)
            {
                    if (lastPlaceSelected != null)
                        placeSelect.Deselect(lastPlaceSelected);

                    lastPlaceSelected = hitInfor.collider.GetComponent<PlaceBehaviour>();
                    placeSelect.Select(lastPlaceSelected);

                    if (Input.GetMouseButtonDown(0))
                    {
                        if (lastPlaceSelected.currentObject != null)
                            return;

                        GameObject objectInPlace = Instantiate(objectInDrag) as GameObject;
                        objectInPlace.transform.position = objectInDrag.transform.position;
                        lastPlaceSelected.currentObject = objectInPlace;
                        objectInPlace.transform.parent = lastPlaceSelected.transform;
                    }
            }

            Vector3 pos = new Vector3(hitInfor.collider.transform.position.x, offset.y, hitInfor.collider.transform.position.z);
            objectInDrag.transform.position = pos;

        }
        else
        {
            objectInDrag.SetActive(false);
        }
    }
}

PlaceObject.cs

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

public class PlaceObject : MonoBehaviour
{

    public int sizeGridX;
    public int sizeGridZ;
    public Transform baseGrid;
    public GameObject place;

    private Vector3 sizePlace = Vector3.zero;
    private Vector3 gridPosition = Vector3.zero;
    private Vector3 startGridPosition = Vector3.zero;

    void Start()
    {
        FillGrid();
    }

    private void Values()
    {
        sizePlace.x = baseGrid.transform.localScale.x / sizeGridX;
        sizePlace.z = baseGrid.transform.localScale.z / sizeGridZ;
        sizePlace.y = 0.25f;

        gridPosition.x = (baseGrid.transform.localScale.x / 2) - (sizePlace.x / 2);
        gridPosition.z = (baseGrid.transform.localScale.z / 2) - (sizePlace.z / 2);
        gridPosition.y = 0.5f;

        startGridPosition = gridPosition;
    }

    public void FillGrid()
    {
        Values();

        for (int x = 0; x < sizeGridX; x++)
        {
            for (int z = 0; z < sizeGridZ; z++)
            {
                GameObject newPlace = Instantiate(place) as GameObject;
                newPlace.transform.localScale = sizePlace;
                newPlace.transform.position = gridPosition;

                if (z >= (sizeGridZ - 1))
                    gridPosition.z = startGridPosition.z;
                else
                    gridPosition.z -= sizePlace.z;

                newPlace.transform.parent = transform;
                newPlace.SetActive(true);
            }
            gridPosition.x -= sizePlace.x;
        }
    }

    public void Destroy()
    {
        PlaceBehaviour[] places = GetComponentsInChildren<PlaceBehaviour>();

        for (int i = 0; i < places.Length; i++)
        {
            Destroy(places*.gameObject);*

}
}
}

The author just answered me and his suggestion was this code which is working fine:

public Transform raycastPoint;

void Update() {

	RaycastHit hitInfor;

		if (Physics.Raycast(raycastPoint.position, Vector3.down, out hitInfor)) { 
    		//do thing 
	} 
}

The only problem now, the cube is flashing sometimes it collides with the player. I made a gif to demonstrate: https://uploadix.de/images/2018/06/26/ani.gif