public bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) { if (!enabled) { return(true); } Vector2 local; RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, screenPoint, eventCamera, out local); Rect rect = rectTransform.rect; // Convert top left corner as reference origin point. local.x += rectTransform.pivot.x * rect.width; local.y -= rectTransform.pivot.y * rect.height; local.x = local.x / (_currentDevicePixelRatio / canvas.scaleFactor); local.y = -local.y / (_currentDevicePixelRatio / canvas.scaleFactor); return(!RaycastManager.CheckCastThrough(windowHashCode, local)); }
public override void mainEntry() { base.mainEntry(); windowHashCode = wrapper.isolate.GetHashCode(); RaycastManager.NewWindow(windowHashCode); }
protected override void OnRectTransformDimensionsChange() { base.OnRectTransformDimensionsChange(); RaycastManager.OnScreenSizeChanged(windowHashCode); }
protected override void OnDisable() { base.OnDisable(); RaycastManager.DisposeWindow(windowHashCode); }
public override void unmount() { RaycastManager.RemoveFromList(widgetHashCode, windowHashCode); base.unmount(); }
public override void update(Widget newWidget) { RaycastManager.MarkDirty(widgetHashCode, windowHashCode); base.update(newWidget); }
public override void mount(Element parent, object newSlot) { widgetHashCode = widget.GetHashCode(); RaycastManager.AddToList(widgetHashCode, windowHashCode); base.mount(parent, newSlot); }
public override void paint(PaintingContext context, Offset offset) { RaycastManager.UpdateSizeOffset(widgetHashCode, windowHashCode, size, offset); base.paint(context, offset); }