public Vector3 GetMousePosOnGrid()
{
projectionPlane.SetNormalAndPosition(Vector3.up, HexGridAssembler.singleton.transform.position);
Vector3 mousePosInWorld = cam.ScreenToWorldPoint(Input.mousePosition);
mouseRay.origin = mousePosInWorld;
mouseRay.direction = cam.transform.forward;
float mouseRayDist;
projectionPlane.Raycast(mouseRay, out mouseRayDist);
Vector3 camPoint = mouseRay.GetPoint(mouseRayDist);
//Vector3.ProjectOnPlane()
/*
float mouseY = mousePosInWorld.y - HexGridAssembler.singleton.transform.position.y;
Vector3 camToHitPointDirec = (cam.transform.forward / Mathf.Abs(cam.transform.forward.y)) * mouseY;
Vector3 camPoint = cam.transform.position + camToHitPointDirec;
*/
return camPoint;
}