I am wondering how I can move objects within the editor in very, VERY small increments, Holding CTRL moves the object in Huge incrememnts, but am unable to figure if there is a hotkey to move object very precisely, in the GIF below I have shown that a new feature of the moving of the camera can be increased and decreased, but why does this not seem the case for moving objects?
I am making a model from scratch (please dont bother telling me I should never make models in unity, I know this, but have no intention of learning modeling and this is the best I can do easily and the blocky look that unity modeling provides is what I am aiming for with my game) and am trying to fill in a gap, but am unable to get it in the correct spot using either the drag option in the Transform component aswell as the X,Y,Z arrows in the scene and moving the object by typing the postition and increasing/decreasing by 0.0001 each time is just getting so frustrating.
Please tell me there is a way that you can slow down and speed up the movement of obejcts with a hotkey or setting, even if I have to go through unity settings and change something that makes objects move slower I would rather them move slower than zooming off screen just by moving the mouse a quarter of an inch…
Just an additional tip FYI- If moving/rotating/scaling a transform via its Inspector fields with your mouse, if you hold down the ALT key while dragging the mouse, it slows down the movement potentially allowing you more control.
Well the speed depends entirely on your zoom factor since the movement of the mouse is always a minimum of one pixel. When you hold CTRL you just activate the snap settings which you can change from the snap menu. In addition you can use CTRL+SHIFT to snap to the surface of the collider (surface snapping). You can also do vertex snapping by holding down “V”. That way you can grab a vertex from one mesh and snap it to another vertex of another mesh.
However if you want to freely position objects precisely you have several options. First and foremost you should align your camera view with the axis you want to move. If you look at an angle at the axis you loose precision (simple fact from projection). In your gif you look at an angle of over 45° so you loose at least 33% of precision.
Next is to increase the overall precision you have to get relatively closer to the object you want to move. There are essentially three ways I can think of:
- Either just make the object you’re creating bigger and scale it down once you’re done by parenting all the objects to an empty gameobject and change the scale on that parent. That way all distances appear to be larger and can adjusted more precisely.
- You can use a custom camera constrol script like the one I wrote over here. Once enabled it replaced the default camera controls with a custom one where you can adjust the movement speed to extremely low values. Note that this script is very old. I can’t assure you that it still works. What I can see right of the bat is that “SceneView.onSceneGUIDelegate” is obsolete and has been replaced by two different callbacks. The right replacement would probably be SceneView.duringSceneGui though I can’t test it right now. Also keep in mind that some camera features you might be familiar with might not work while the custom controls are enabled.
- As last option you could write your own editor script which might not adjust the camera but instead create some custom input methods to reduce the pixel-to-unit ratio from the mouse input
ps: Have you heard about the pro builder editor extension? It allows you to create actual meshes inside Unity. I have never worked with it (I’m a programmer, not an artist) but it seems to be quite flexible.
There is a setting.
In the Scene tab, click on the grid arrow.
Click on the three dots on the top right of the grid axis box.
Click on edit grid and snap settings.
You change it at move in the increment snap heading.