private static int raycastHitUIComparerFunc(RaycastHitUI lhs, RaycastHitUI rhs) { if (lhs.SortingLayer != rhs.SortingLayer) { // Uses the layer value to properly compare the relative order of the layers. var rid = SortingLayer.GetLayerValueFromID(rhs.SortingLayer); var lid = SortingLayer.GetLayerValueFromID(lhs.SortingLayer); return(rid.CompareTo(lid)); } if (lhs.SortingOrder != rhs.SortingOrder) { return(rhs.SortingOrder.CompareTo(lhs.SortingOrder)); } if (lhs.Depth != rhs.Depth) { return(rhs.Depth.CompareTo(lhs.Depth)); } if (!Mathf.Approximately(lhs.Distance, rhs.Distance)) { return(lhs.Distance.CompareTo(rhs.Distance)); } return(lhs.GraphicIndex.CompareTo(rhs.GraphicIndex)); }
private void convertRaycast(RaycastHitUI old, ref RaycastResult current) { current.module = old.Raycaster; current.gameObject = old.Target == null ? null : old.Target.gameObject; current.depth = old.Depth; current.index = old.GraphicIndex; current.sortingLayer = old.SortingLayer; current.sortingOrder = old.SortingOrder; }
private HitResult doHit(IPointer pointer, RaycastHitUI raycastHit, out HitData hit) { hit = new HitData(raycastHit, this, true); return(checkHitFilters(pointer, hit)); }