each View prefab contains more than one UIPanel, when I insert a new ViewC between ViewB and ViewD, all UIPanel depth need to be updated as follows, the easier method is traverse the hierarchy in order.

ViewA (PanelA [depth = 0], PanelB [depth = 1])

ViewB (PanelC [depth = 0], PanelD [depth = 1])

ViewC (PanelE [depth = 0], PanelF [depth = 1])

ViewD (PanelG [depth = 0], PanelH [depth = 1])

step 1:

ViewA (PanelA [depth = 1], PanelB [depth = 2])

|-ViewB (PanelC [depth = 3], PanelD [depth = 4])

|-ViewD (PanelG [depth = 5], PanelH [depth = 6])

step 2:

ViewA (PanelA [depth = 1], PanelB [depth = 2])

|-ViewB (PanelC [depth = 3], PanelD [depth = 4])

|-ViewC (PanelE [depth = 5], PanelF [depth = 6])

|-ViewD (PanelG [depth = 7], PanelH [depth = 8])