public calculateLayerDepthForChild ( float zIndexMin, float zIndexMax, |
||
zIndexMin | float | |
zIndexMax | float | |
child | Child. | |
zIndexMaxChild | float | Z index max child. |
return | float |
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 ) );
}
/// <summary> /// helper to translate zIndex to layerDepth. zIndexMax should be at least equal to the highest zIndex /// </summary> /// <returns>The depth.</returns> /// <param name="zIndexMax">Z index max.</param> public float calculateLayerDepth( float zIndexMin, float zIndexMax, CompositeItemVO compositeItem ) { if( compositeItem != null ) return compositeItem.calculateLayerDepthForChild( zIndexMin, zIndexMax, this ); return Mathf.map01( (float)zIndex, zIndexMin, zIndexMax ); }