void OnSceneGUI() { Triangle2D tri = (Triangle2D)target; Undo.RecordObject(tri, "Move Triangle Point"); // Handle manual vertex movement by user. for (int i = 0; i < 3; ++i) { Vector3 oldPoint = tri.transform.TransformPoint(tri.GetVertex(i)); Vector3 newPoint = Handles.FreeMoveHandle(oldPoint, Quaternion.identity, VertexSnapper.VERTEX_HANDLE_SIZE, Vector3.one * 0.1f, Handles.DotCap); if (tri.snapVertexPositions) { VertexSnapper.SnapTo(tri.snapValue, ref newPoint); } if (oldPoint != newPoint) { tri.UpdateVertex(i, tri.transform.InverseTransformPoint(newPoint)); tri.UpdateMesh(); } } }
void OnSceneGUI() { Quad2D quad = (Quad2D)target; Undo.RecordObject(quad, "Move Quad Point"); // Handle manual vertex movement by user. for (int i = 0; i < 4; ++i) { Vector3 oldPoint = quad.transform.TransformPoint(quad.GetVertex(i)); Vector3 newPoint = Handles.FreeMoveHandle(oldPoint, Quaternion.identity, VertexSnapper.VERTEX_HANDLE_SIZE, Vector3.one * 0.1f, Handles.DotCap); if (quad.snapVertexPositions) { VertexSnapper.SnapTo(quad.snapValue, ref newPoint); } if (oldPoint != newPoint) { quad.UpdateVertex(i, quad.transform.InverseTransformPoint(newPoint)); quad.UpdateMesh(); } } }