I am not sure why, but Unity does not provide an out-of-the-box solution for grouping objects in the scene — you cannot just select multiple GameObjects, right click on them and press Group. Luckily, there is a great asset that solves this problem with a self-explanatory name Grouping Tool (duh).
The installation is simple, nothing is required besides just adding the asset to Unity. After that you can just select items in Hierarchy panel:
Then right-click an select “Group Selected” or just press Cmd+G on Mac or Ctrl+G on Windows
Voilà! The objects are now grouped and all the nested structures are preserved:
Everything is grouped under a new empty GameObject. If you would like to group everything under custom GameObject, you can do that too! Just open asset preferences by selecting Window > Grouping Tool > Group Template
Then drag an object from a library that you would like to use as a Grouping Template Object:
Now you can group objects with this template using “Group With Template” or pressing Cmd+Shift+G on Mac or Ctrl+Shift+G on Windows.
You can find Grouping Tool in the Unity Asset Store.