private void OnSceneGUI() { var area = new Rect(_areaController.transform.position.x - Mover.PositionOffset.x - _areaController.LeftDistance, _areaController.transform.position.y - Mover.PositionOffset.y - _areaController.DownDistance, 1 + _areaController.RightDistance + _areaController.LeftDistance, 1 + _areaController.UpDistance + _areaController.DownDistance); Handles.DrawSolidRectangleWithOutline(area, new Color(0.0f, 1.0f, 1.0f, 0.1f), Color.cyan); var bounds = HandleHelper.ScaleHandles(area, Vector2.one, Color.white, Color.white); using (new UndoScope(serializedObject)) { _left.intValue -= Mathf.RoundToInt(bounds.xMin - area.xMin); _right.intValue += Mathf.RoundToInt(bounds.xMax - area.xMax); _up.intValue += Mathf.RoundToInt(bounds.yMax - area.yMax); _down.intValue -= Mathf.RoundToInt(bounds.yMin - area.yMin); Validate(); } }