I mean, it helps in that I understand what your design goals are, and that thing are not going to change. I fundamentally disagree with your desired workflow. It requires extra clicks, which is bad, and it requires users to learn that there’s a button to click, which is also bad.
For the use case I have, there’s a single, correct, comfortable way to modify the GameObjects. I want the level designers to select the object, and then get the correct UI immediately without having to learn or remember a button.
In particular, this is a set of objects that have a start and an end point, and a middle section that is a mesh that’s automatically modified to stretch from the start to the end with the correct UVs and other settings. When either the start or end points are moved, the center point is automatically updated to move with them. Think straight pipes or conveyor belts or wires or whatever.
The best workflow would probably be to have an EditorToolContext that would be automatically selected when an object of that type was selected, and then be able to switch back to the default mode in the corner cases where that’s actually what they need.
Don’t get me wrong, I do think it’s good that you’re opinionated about how the overall workflow of the scene view should work. That has helped you improve quite a few tools. The problem is that in this case your opinion is wrong!
This is a rather small tool that will be relevant in some of the levels of our games. This means that for some of the level designers, there will be several weeks or even months between each time they use the tool. So if we have a workflow where I teach them “hey this auto line thing has it’s own button over the move tool that you can press to use it correctly”, they will do that now, and then some of them will naturally forget that the button exists by the next time they interact with those objects.
It’s much, much better if the correct tool context was the default one as they pressed the object, because then the scene view would inform them automatically that “hey, there’s a better way to interact with this object”.
For now, I can use OnSceneGUI, Handles and Tools.visible = false, but the downside with that is that I don’t automatically get things like grid snapping and whatnot. It would be much better if I could just set the EditorToolContext from code and have that work at any point, or if an EditorToolContext could be marked as default instead of optional.