public bool WheelScrolled(Vector2 delta, bool shift, bool alt, bool ctrl)
    {
        m_bWheelScrolledSinceLastKeyPress = true;
        switch (viewModel.CurrentTool)
        {
        case GNBlockMapEditorVM.Tool.PAINT:
            if (IsKeyDown(KeyCode.Y) || IsKeyDown(KeyCode.Z))
            {
                viewModel.BrowseLayer(Mathf.Sign(delta.y) > 0);
                return(true);
            }
            else if (IsKeyDown(KeyCode.J))
            {
                viewModel.OrientPrefab(Vector3.right, Mathf.Sign(delta.y) > 0);
                return(true);
            }
            else if (IsKeyDown(KeyCode.K))
            {
                viewModel.OrientPrefab(Vector3.up, Mathf.Sign(delta.y) > 0);
                return(true);
            }
            else if (ctrl || IsKeyDown(KeyCode.L))
            {
                viewModel.OrientPrefab(Vector3.forward, Mathf.Sign(delta.y) > 0);
                return(true);
            }
            else if (IsKeyDown(KeyCode.U))
            {
                viewModel.BrowsePrefabs(delta.y > 0, true);
                return(true);
            }
            else if (IsKeyDown(KeyCode.I))
            {
                viewModel.BrowsePrefabs(delta.y > 0, false);
                // viewModel.BrowseLayer(Mathf.Sign(delta.y) > 0);
                return(true);
            }
            else if (IsKeyDown(KeyCode.G))
            {
                viewModel.BrowseCellSize(Mathf.Sign(delta.y) > 0);
                return(true);
            }
            return(false);

            // case GNBlockMapEditorVM.Tool.ERASE:
            //     if (IsKeyDown(KeyCode.Y))
            //     {
            //         viewModel.BrowseLayer(Mathf.Sign(delta.y) > 0);
            //         return true;
            //     }
            //     return false;
        }
        return(false);
    }
    private void DrawBrushSetup()
    {
        GUILayout.BeginHorizontal();
        GUILayout.Label("Brush: ", EditorStyles.whiteBoldLabel);
        GUILayout.BeginVertical();
        GUILayout.BeginHorizontal();
        string folder = viewModel.CurrentPrefabFolder;
        string substr = folder != null && folder.Length > 24 ? folder.Substring(folder.Length - 24) : folder;

        EditorGUILayout.TextField(folder != null ? substr : "NONE");
        Object newPrefab;

        if (viewModel.CurrentPrefab != (newPrefab = EditorGUILayout.ObjectField(viewModel.CurrentPrefab, typeof(GameObject), false)) && newPrefab != null)
        {
            viewModel.SelectPrefab((GameObject)newPrefab);
        }
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Rx: " + viewModel.PrefabOrientation.x.ToString("000")))
        {
            viewModel.OrientPrefab(Vector3.right, true);
        }
        if (GUILayout.Button("Ry: " + viewModel.PrefabOrientation.y.ToString("000")))
        {
            viewModel.OrientPrefab(Vector3.up, true);
        }
        if (GUILayout.Button("Rz: " + viewModel.PrefabOrientation.z.ToString("000")))
        {
            viewModel.OrientPrefab(Vector3.forward, true);
        }
        if (GUILayout.Button("Fx: " + viewModel.PrefabFlip.x.ToString("0")))
        {
            viewModel.FlipPrefab(Vector3.right);
        }
        if (GUILayout.Button("Fy: " + viewModel.PrefabFlip.y.ToString("0")))
        {
            viewModel.FlipPrefab(Vector3.up);
        }
        if (GUILayout.Button("Fz: " + viewModel.PrefabFlip.z.ToString("0")))
        {
            viewModel.FlipPrefab(Vector3.forward);
        }
        // Editor
        // EditorGUILayout.Vector3Field("Rot", Vector3.zero);
        // EditorGUILayout.Vector3Field("Scale", Vector3.zero);
        GUILayout.EndHorizontal();
        GUILayout.EndVertical();
        GUILayout.EndHorizontal();
    }