So, I have found this article about bezier curves, which helped me a lot.
This is code I wrote, hope it'll useful for someone
public static Vector3[] GetQuadraticBezierPoints(Vector3 startpoint, Vector3 endPoint, float curveHeigh) {
Vector3 heighPoint = startpoint + (endPoint - startpoint) / 2 + Vector3.up * curveHeigh;
Vector3[] res = new Vector3[100];
int maxT = 1;
int index = 0;
for (float t = 0; t <= maxT; t += 0.01f) {
Vector3 newPoint = (Mathf.Pow(1 - t, 2) * startpoint) + (2 * (1 - t) * t * heighPoint) + (t * t * endPoint);
try {
res[index++] = newPoint;
}
catch {
break;
}
}
return res;
}
This script creates 100 points, shaping curve, based on curveHeigh value, which also helps to create heigPoint variable, which is a 'control point'