So I’ve been using Unity for many years, but I haven’t come across this issue before. I guess it’s because non-uniform scaling isn’t something I’ve been using that much.
Anyway.
When parenting an object to another object that has non-uniform scaling, weird things start to happen:
The only way I’ve found so far to prevent this from happening, is to create a child object that “undoes” the scaling of the parent object, and then use that as parent for the object you want as a child:
I’ve tried doing the same thing in Unreal Engine, Godot Engine and Blender, and none behaves the same way as Unity. In them, when you make an object child of a parent with non-uniform scaling, the scale is preserved and no distortion occurs.
Which brings me to my questions -
Why this unorthodox behavior?
What could possibly be the benefit of Unity behaving in this manner?
What causes it to happen in the first place?