I’m new to Unity and I’m struggling to understand how dimension/size relates to scale.
If I’ve understood it right, default scale is 1 unit equals 1 meter.
If I add a Cube to the scene its scale is 1,1,1 and it it is 1,1,1 on the scene.
But if I add a Cylinder, it looks like 2 long and diameter of 1. It’s scale is 1,1,1.
And adding a Plane with scale 1,1,1 takes up 10 by 10 in size.
I don’t really get how it relates. If want a cylinder to be 1 long, is the right way to do it changing the Y scale to 0.5? Or a plane to be 8.5 x 6.5, I calculate the scale?
Unity uses “Unity units” for distance. Though 1 unit = 1 meter is common, and a few settings which depend on that are set to it as default, you’re in no way required to keep to 1 unit = 1 meter.
But on the actual question, you’re thinking about this wrong. Scale doesn’t tell you how large a model’s size is. It is a multiple of that size (on each specific dimension individually), regardless of what it actually is. So you have a model that is 10x7x27 and the scale is set to 1,1,1, it will actually appear as 10x7x27 in the scene. You change the scale to 2,1,2 and it will appear as 20x7x54 in the scene.
The cube primitive just happens to have dimensions of 1x1x1, so coincidentally whatever multiple you set for scale is the actual size in units (1 x anything == anything), but that is only the case for the cube.
Typically these built in primitives are only really used for some quick and dirty prototyping. You rarely use them otherwise, so don’t get hung up on them. Typically you create your models in an external modeling program and import them into Unity. If they were scaled incorrectly in the external program, you can then adjust their scale in Unity with the scale setting you are already playing with. But since scale also stretches their textures, you usually want to keep to a uniform scale when possible instead of using scale to stretch them into different shapes.