public float calculateLayerDepthForChild( float zIndexMin, float zIndexMax, MainItemVO child, float zIndexMaxChild = 100 )
{
if( zIndexMaxChild < zIndexMax )
zIndexMaxChild = zIndexMax * 10;
if( child.zIndex < zIndex )
child.zIndex = zIndex + 1;
var ourLayerDepth = calculateLayerDepth( zIndexMin, zIndexMax, null );
var childLayerDepth = child.calculateLayerDepth( zIndexMin, zIndexMax, null );
return Mathf.clamp01( ourLayerDepth + childLayerDepth );
//return calculateLayerDepth( zIndexMin, zIndexMax, null ) - ( 1 - child.calculateLayerDepth( zIndexMin, zIndexMax, null ) );
}