Search Unity

New editor camera controls in 2019.1 are great, but...

Discussion in 'Editor & General Support' started by Fewes, Apr 19, 2019.

  1. Fewes

    Fewes

    Joined:
    Jul 1, 2014
    Posts:
    130
    Please, make the scroll wheel change the speed exponentially, let us turn off acceleration, and remove the arbitrary speed cap at 99x. Even though 99 seems high, some of us work in huge scenes and need to quickly zoom around them.

    An example of why the linear change in speed is a problem is that when I have it set to 0.5x, one scroll tick will take me up to 3.5x, a 600% increase, but when I'm at 66x, it will take me to 68x, which is only a ~3% change! This means that if I tweak something at a small level and want to move to another area of my scene, I have to scroll like crazy to go from 0.5x to 99x. On the other end, if I have the speed set high and I'm approaching an area I would like to work in, the camera will grind to a complete stop because it is impossible to know how many scroll ticks will bring it down to a reasonable "local" speed.
    To further complicate things, the acceleration kicks in halfway and makes it very hard to end up where I want.
    Now, I understand the idea behind the acceleration, but it is much better to allow the user to control the speed themselves, and set up the multipliers to fit their game type.
    I previously used an editor script I had created myself which did exactly this, but the new update to the scene camera broke it. From testing I can tell you that multiplying the camera speed with 1.5 for up and 0.75 for down feels very easy to control.

    This stuff is so rudimentary to implement, yet it has a huge impact on editor workflow. If you don't want to confuse the user with too many variables, please hide it in the editor preferences.
    Also please note that when I say acceleration, I am not talking about the "camera easing" feature. I am talking about the hidden acceleration that kicks in after you've moved the camera for a few seconds.
    I also noticed that there is a SceneView.CameraSettings class. Unfortunately the variables don't seem to be exposed to script, which is a shame.

    Big props to the Unity team for finally getting on this, but it still has ways to go.
     
    Last edited: Apr 19, 2019
  2. frarf

    frarf

    Joined:
    Nov 23, 2017
    Posts:
    16
    Please. Camera acceleration is so annoying, I thought 2019.1 would be the update to fix this (with "camera easing") but I was seriously wrong. At least have it as a toggle.
     
    awesomedata and JonPQ like this.
  3. Hunter_Bobeck

    Hunter_Bobeck

    Joined:
    Dec 9, 2015
    Posts:
    4
    The more options the better.
     
  4. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    1,927
    I'm not sure whether it helps, but when I'm zooming in/out significantly in the scene view, I almost always use alt-rmb + drag for quick movement. I believe it's still based on the same increment as the scroll wheel, but I always feel like it moves much faster than I can get with the mouse wheel.
     
  5. JonPQ

    JonPQ

    Joined:
    Aug 10, 2016
    Posts:
    68
    Is there a way to turn off the acceleration and/or momentum in the 2019 editor camera controls? There must be an option somewhere ?
    for every editor camera move, I now have to wait... and re adjust position after it moves too far or not far enough.... I would really like to just turn this off please. It wastes my time.
     
  6. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    1,927
    Did you try adjusting the stuff in this menu? Maybe you want to turn off Easing.

    upload_2019-7-25_15-4-56.png
     
  7. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    811
    I actually am the creator of an asset, Snapcam: NAVIGATION STUDIO which aims to fix scene camera controls with its View Navigator.

    The pre-2019 version of my asset did a great job of this, however Unity's bizarre acceleration has always been an issue, and is a particular pain point in 2019.1 since it requires me to rewrite Unity's entire scene camera controller (AGAIN) to fix just a few issues.


    These issues include:

    • Acceleration -- It sucks because there is no maximum speed your camera can accelerate before it stops -- I have to stop, then move forward again (slowwwly) until the speed becomes too fast/unbearable to be useful again.

    • Orbiting -- Doing this around a selected object sucks because Alt+RMB doesn't orbit the center of the selected object. Also, it should be SHIFT+RMB as the shortcut (but THIS should be configurable!!)

    • Zooming -- This still sucks because I can't zoom forever forward (at a steady pace I can set) for straight movement, while also zooming into the current object's center when a gameobject is selected (and I am holding a modifier key because SOMETIMES I don't want to zoom into the object's center).


    If Unity would just be willing to allow me to override all of their scene camera controller's functionality (or just let me make my own), I would fix these issues myself!

    I could then tweak it to my (and my users') needs. I wouldn't need to jump through hoops with crazy reflection magic just to get a usable UI / UX experience with the scene camera controller!!

    Any chance of this happening, @willgoldstone?


    Like you guys, I thought 2019.1 had finally fixed scene camera controls. I was clearly wrong.
     
    Last edited: Jul 28, 2019
    joshcamas likes this.
  8. JonPQ

    JonPQ

    Joined:
    Aug 10, 2016
    Posts:
    68
    Thanks much ! will give that a try :)
    Yeah the momentum is terrible, camera keeps moving after I let go.. and if I tap to move forwards a little at a time... it moves different speeds. not useful.
    Cheers ! this should help.

    Update:-
    Yep, its much more precise with the easing turned off. Thanks

    It should maybe have 2 check-boxes... one for ease-in (acceleration) and one for ease-out (deceleration, when you let go of input) and a different float tweak value for each.
     
    Last edited: Aug 1, 2019
  9. Peter77

    Peter77

    Joined:
    Jun 12, 2013
    Posts:
    4,010
    Unity 2019.3 comes with settings to adjust camera acceleration and deceleration. It can be turned off too. Perhaps it was even 2019.2, can't remember exactly.
     
  10. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    811
    Looks like this is present in 2019.2 -- yay! :)


    I still want to use IShortcutToolContext in my shortcuts like Unity is able to. :/

    It's not possible to add any interactive scene controls without this.
    For example, if I want to add my own camera orbit behavior or a gradual position/rotation modifier via keystrokes for a gameobject -- I can't.
    Lots of cool tools will never be possible to create thanks to the new shortcut system without access to this feature.
     
  11. willgoldstone

    willgoldstone

    Unity Technologies

    Joined:
    Oct 2, 2006
    Posts:
    712
    Hey @awesomedata did you try 19.3 to see if it resolves what you need ?
     
  12. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    811
    Sorry for the delay, @willgoldstone, but I'm still digging into 2019.3 to try to understand which issues you're referring to.


    I still see the flythrough camera controller and all related controls/methods are internal and none of the methods or classes are able to be overridden, interfaced with, or added onto (or even disabled so one can write their own camera controller with better orbit). Also none of the orbit/zoom issues mentioned above are fixed in 2019.3b3 either.

    Also the IShortcutToolContext is also still internal, so I still see no way to handle global shortcuts that can be both assigned via the ShortcutManager that also activate independent of the keyboard repeat rate. For example, holding R or G keys to gradually update a value (or to tweak the camera orbit method to orbit around an object in the SceneView) all without waiting for the Windows repeat rate to kick in since I want it to happen instantaneously (while also using the shortcut manager to let the tool user assign their keys to the method being executed so that I don't have to program my own shortcut system for Unity to handle tools like scene camera controls.)



    The more you give users freedom to deal with realtime input to manage things in the editor itself, the more innovative and useful tools you'll find being created. And realtime tools are all the rage right now (as you're probably finding with the Terrain Editor), so it'd be a great time for it.
     
    Last edited: Sep 11, 2019
  13. yasirkula

    yasirkula

    Joined:
    Aug 1, 2011
    Posts:
    1,056
    I guess I'm in the minority here but I was very used to zooming with the mouse wheel while holding the right mouse button for quick navigation around an object (I rotate the camera with right mouse button and in the meantime, zoom in/zoom out as necessary with the mouse wheel). Now the mouse wheel changes the movement speed which is not what I am used to.

    Is it possible to restore the old behaviour with a simple toggle or should I write an editor script for it?

    P.S. I know that I can zoom in/zoom out by simply releasing the right mouse button or use ALT+Left mouse button to orbit around an object, I was just used to the old behaviour of
    right mouse button+mouse wheel
    combination, so please don't recommend me to just get used to the new behaviour.