private void ShowDragSelect(Ferr2DPath aPath, Matrix4x4 aTransform) { if (!Ferr2DT_Menu.DragSelect) { return; } // manually make a move widget, since we have to override Unity's widget Vector3 center = Vector3.zero; if (Tools.pivotMode == PivotMode.Center) { center = PathUtil.Average(aPath.GetPathRaw()); } Vector3 newPos = Handles.DoPositionHandle(terrain.transform.position + center, Quaternion.identity) - center; if (newPos != terrain.transform.position) { Undo.RecordObject(terrain.transform, "Move Terrain Object"); terrain.transform.position = newPos; } // execute the drag-select code PathEditorUtil.DoDragSelect(aTransform, aPath, new Rect(0, EditorGUIUtility.singleLineHeight, Screen.width, Screen.height - EditorGUIUtility.singleLineHeight), visuals); }