Set Default spacing between lines when using GUILayout

How can I get my GUILayout function calls to automatically draw with NO vertical spacing between controls?

I’m obviously not doing this correctly; these changes help but it’s certainly not producing zero vertical spacing: (I’m also not sure how to set ALL those GUI.Skin styles at once- seems wrong to do em all individually like that; think I’m missing some…)

GUI.skin.label.fontSize = 8;
GUI.skin.textField.fontSize = 8;
GUI.skin.textArea.fontSize = 8;
GUI.skin.box.fontSize = 8;
GUI.skin.button.fontSize = 8;
GUI.skin.toggle.fontSize = 8;
GUI.skin.window.fontSize = 8;

GUI.skin.label.margin = new RectOffset(0, 0, 0, 0);
GUI.skin.textField.margin = new RectOffset(0, 0, 0, 0);
GUI.skin.textArea.margin = new RectOffset(0, 0, 0, 0);
GUI.skin.box.margin = new RectOffset(0, 0, 0, 0);
GUI.skin.button.margin = new RectOffset(0, 0, 0, 0);
GUI.skin.toggle.margin = new RectOffset(0, 0, 0, 0);
GUI.skin.window.margin = new RectOffset(0, 0, 0, 0);

My Monobehvior objects do stuff like this to draw the GUI:

GUILayout.BeginHorizontal();
expanded=GUILayout.Toggle(expanded, GUIContent.none);
GUILayout.TextField(partType.PartName);
GUILayout.EndHorizontal();
activated=GUILayout.Toggle(activated, "active");
GUILayout.Label("HitPoints");
 //.... etc...

Had to adjust the “padding” field in addition to the margin. (My bad for only looking at the API section of the docs, not the manual section Unity - Manual: GUI Style (IMGUI System))

GUI.skin.label.padding = new RectOffset(GUI.skin.label.padding.left, GUI.skin.label.padding.left, 0, 0);
        GUI.skin.textField.padding = new RectOffset(GUI.skin.textField.padding.left, GUI.skin.textField.padding.left, 0, 0);
        GUI.skin.textArea.padding = new RectOffset(GUI.skin.textArea.padding.left, GUI.skin.textArea.padding.left, 0, 0);
        GUI.skin.box.padding = new RectOffset(GUI.skin.box.padding.left, GUI.skin.box.padding.left, 0, 0);
        GUI.skin.button.padding = new RectOffset(GUI.skin.button.padding.left, GUI.skin.button.padding.left, 0, 0);
        GUI.skin.toggle.padding = new RectOffset(GUI.skin.toggle.padding.left, GUI.skin.toggle.padding.left, 0, 0);
        GUI.skin.window.padding = new RectOffset(GUI.skin.window.padding.left, GUI.skin.window.padding.left, 0, 0);

Edit: I’ve learned that Directly modifying the GUI.skin values will SAVE these settings (which makes it a bit confusing to see what effect your changes are having). To avoid this, I created a new instance of a skin, using MySkin=Object.Instantiate<GUISkin>(GUI.skin);
Then modify the values of THAT skin:

MySkin.label.padding = new RectOffset(MySkin.label.padding.left, MySkin.label.padding.left, 0, 0);

Then, finally assign this new instance to the GUI.skin.

  GUI.skin=MySkin;