A prefab is basically a prototype of GameObject (potentially a hierarchy of GameObjects ), with attached Components and their relatives sets of serialized properties .
When you put a Prefab instance in the scene hierarchy, we can say that you have a prefix instance in the scene (or a GameObject related to the assembly ). This is very useful because if you modify the compilation file itself, all modifications apply to related collections in all scenes.
Now, for your specific question: Unity does not support nested prefabs natively. Prefabs are atomic objects in such a way that you cannot specify hierarchical relationships between them.
For example, if you have 2 prefab A and B and you create a third prefab C file that has A and B as children, Unity will consider C as a completely separate collection, so if you change A or B , modifications will not be actually distributed on prefab C
Heisenbug
source share