void OnDrawGizmosSelected() { var plane1 = new UnityEngine.Plane(new Vector3(1f, 0f, 0f), new Vector3(-0.79f, -0.68f, 0.85f)); Gizmos.color = Color.blue; var n = 5; for (var i = -n; i < n; i++) { for (var j = -n; j < n; j++) { for (var k = -n; k < n; k++) { var projection = plane1.ClosestPointOnPlane(new Vector3(i, j, k)); Gizmos.DrawLine(plane1.ClosestPointOnPlane(new Vector3(0, 0, 0)), projection); } } } }
public bool IsLineOnPlane(Line l) { // check the angle between plane normal and line direction if (Vector3.Angle(l.Direction, normal) > maxOrientationDifference) { return(false); } // check distance between plane and line origin if (Vector3.Distance(plane.ClosestPointOnPlane(l.Origin), l.Origin) > maxDistanceToPlane) { return(false); } return(true); }