private void OnMouseUp(object sender, MouseButtonsEventArgs evArgs)
    {
        if (!_traceMouse)
        {
            return;
        }

        if (evArgs != null)
        {
            if (evArgs.Button == KeyCode.Mouse0)
            {
                switch (EditorMode)
                {
                case EditorModes.Add:
                {
                    GameObject lastCube;
                    _grid.CreateCubeAt(_markerPosition, out lastCube);
                    break;
                }

                case EditorModes.Delete:
                {
                    _grid.DeleteCubeAt(_markerPosition);
                    break;
                }

                case EditorModes.Move:
                case EditorModes.Connect:
                {
                    _selectedObject = _grid.GetCubeAt(_markerPosition);
                    if (_selectedObject)
                    {
                        EditorMode = EditorModes.Target;
                    }
                    break;
                }

                case EditorModes.Target:
                {
                    ProcessTargetClick();
                    break;
                }
                }
            }
            else if (evArgs.Button == KeyCode.Mouse1)
            {
                switch (EditorMode)
                {
                case EditorModes.Target:
                {
                    EditorMode = PreviousEditorMode;
                    break;
                }
                }
            }
        }
    }
    private void OnMouseDown(object sender, MouseButtonsEventArgs evArgs)
    {
        if (!_traceMouse)
        {
            return;
        }

        if (evArgs != null)
        {
        }
    }