[ProGrids Bug] ProGrids breaks camera movement in scene view.

Once you install ProGrids via the Package Manager, it instantly hinders camera movement in the scene view. While holding the the right mouse button and using WASD to move around the world, you can no longer strafe the camera right or move backwards.

Unity Version 2018.1.0f2
ProGrids Version 3.0.1 - preview via Package Manager

Reproduction

  • New project, new scene. Flying the camera with right mouse + WASD works fine.
  • Install ProGrids via Package Manager, restart Unity if ProGrids does not load after installing.
  • Fly camera again, notice the behavior described above.

I like the idea of packages. Every repo I have has a copy of ProBuilder, ProGrids, TextMeshPro, and the Post Processing stack. I can finally start making some of those repos public since I don't have to share code that's not mine. TextMesh Pro seems to be working just fine in its package iteration. I have not tried the Post Processing stack. ProBuilder and ProGrids are unfortunately having some issues.

1 Like

Dang, that makes two- sorry! Thanks again for the detailed info, ticketed and on the list :)

Packages are great! According to Karl, it's reduced the build-release time from hours to minutes. Great for making quick fixes ;)

1 Like

Sweet. Are they on the public issue tracker or just tracked internally?

I have the same issue. What was confusing was that those hotkeys were not added to ProGrid's preferences.

Made a quick fix for this one, all in ProGridsEditor.cs. The issue is that the hotkeys for TempDisable and AxisConstrain are marking the KeyDown event as used. To fix it, I check if the right mouse button is down before running the HandleKey code.

First I added a field to track to if the right mouse button is down.

const KeyCode k_AxisConstraintKey = KeyCode.S;
const KeyCode k_TempDisableKey = KeyCode.D;
bool m_RightMouseButtonDown = false;  //<--- new line

Then I created a method to called HandleMouseClicks

void HandleMouseClicks(Event currentEvent)
{
    if(currentEvent.type == EventType.MouseDown && currentEvent.button == 1)
        m_RightMouseButtonDown = true;
    else if(currentEvent.type == EventType.MouseUp && currentEvent.button == 1)
        m_RightMouseButtonDown = false;
}

I call HandleMouseClicks right before the HandleKeys method.

HandleMouseClicks(currentEvent); //<--- new line
HandleKeys(currentEvent);

Then in the HandleKeys method, I check if the right mouse button is down

void HandleKeys(Event currentEvent)
{
    // Make sure current event is a keyboard event and that
    // the right mouse button is not down
    if (!currentEvent.isKey || m_RightMouseButtonDown)
        return;
    ...
}
2 Likes

Where is 'ProGridsEditor.cs' located? I searched for it and it's not found.

In your Solution explorer in VS, there is a project called Unity.ProGrids.Editor. Alternatively you can press Ctrl + , and type ProGridsEditor. This is all found in Visual Studio, not Unity.

Edit:
Put the correct shortcut for 'Go To All', I have a custom one.

Edit 2:
If your're looking for it on disk it's in %appdata%\Local\Unity\cache\packages\packages.unity.com\com.unity.progrids@3.0.1-preview\

DANKS DUDE

Your fix works like a charm, it's mystifying to me why this post is from almost a year ago and this fix hasn't been implemented into the main code base.

I'll try to flag the dev down to get this in there

Amazing, this was driving me crazy! Just downloaded 3.0.0 and this was still not there, I cannot live without my right mouse button + wasd. THANKS!