I find it absurdly annoying that some of the primitive shapes in unity have non-normalised sizes. And especially the inability to set things at an absolute size because of that.
it has a feature, “Set as unit” which sets an object’s scale to 1,1,1 while keeping its current absolute dimensions. I’m not entirely sure how that works.
unfortunately the source code is closed, so i can’t peek into it or modify it. What exactly is it doing?
In any case, a major flaw is that the Set as unit thing doesn’t stick. close and reopen the editor, and things just jump back to their original size. That’s a problem It’s still useful for setting the absolute dimensions of an object though (by acting as an abstraction for the scale values) but i can’t use it to fix primitives, which is what i wanted.
is it possible to have this kind of functionality work properly?
That ‘Set as unit’ works by rescaling all the verts of the select objects mesh. It doesn’t work with primitives (and maybe imported meshes) because the meshes are not editable, once it reloads, and reads the mesh from disk, it’s back to its normal properties.
Using custom mesh assets probably gets around this problem
umm, what other kinds of meshes are there besides imported meshes? how can i get a mesh into the engine without importing it?
using my own plane mesh and such is certainly an option, but is there any way to put my own meshes in the GameObject > Create Other > list of primitives section?
i’m using the default plane for now because of the convenience of it being there, i wanted to solve this problem without changing my workflow.
Is there a reason you want 1,1,1 scale in the inspector? Unity 5 doesn’t mind what scale an object is, performance wise. In any case, to perform this, you can either change the importer model scale from 0.01 to whatever or you can scale the actual verts of the mesh (which is how an asset processor would work), which retains transform of 1,1,1.
I don’t. I want a scale of whatever the object’s actual world-relative size is, in unity units. (at least for unparented objects, or those with no non-default scaling in the heirarchy above them)
I get the purpose of the scale field, but i think it’s dumb to only have that, and it’s no good for me. I’m currently doing a project involving recreating lots of real-life objects and i need them to be exactly correctly sized to their real world equivilants
and also because, to my mind, this is the most technically correct way to do it. I see no reason why unity’s built in plane couldn’t have been a 1x1 panel with a default scale of 10x10. That would have harmed nothing and would not have been so pointlessly obtuse.
instead, it’s a 10x10 panel with a default scale of 1x1, and it’s actual size isn’t visible anywhere as far as i’m aware