void PreviewMode()
{
#if UNITY_EDITOR
if(generatedMesh == null) {
Debug.Log("Mesh was not generated");
previewMode = false;
DestroyPreviewObject();
return;
}
Ray r = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
Vector2 mousePos = r.origin;
float selectDistance = HandleUtility.GetHandleSize(mousePos) * baseSelectDistance;
#region Draw vertex handles
Handles.color = vertexColor;
for(int i = 0; i < meshVertices.Length; i++) {
meshVertices[i] = Handles.FreeMoveHandle(
meshVertices[i],
Quaternion.identity,
selectDistance,
Vector3.zero,
Handles.CircleCap
);
generatedMesh.vertices[i] = spriteRenderer.transform.InverseTransformPoint(meshVertices[i]);
}
#endregion
generatedMesh.vertices = meshVertices.Select(x => spriteRenderer.transform.InverseTransformPoint(x)).ToArray();
previewMF.sharedMesh = generatedMesh;
meshDirty = true;
SceneView.currentDrawingSceneView.Repaint();
EditorUtility.SetDirty(previewObject);
#endif
}