void OnFrameSelectionUpdate(FrameSelecting selecting) { Assert.AreEqual(_frameSelecting, selecting); SelectionFrame.gameObject.SetActive(true); SelectionFrame.anchoredPosition = selecting.Min; SelectionFrame.sizeDelta = selecting.Max - selecting.Min; }
void OnFrameSelectionEnd(FrameSelecting selecting) { Assert.AreEqual(_frameSelecting, selecting); SetSelection(FindSelectables(selecting)); SelectionFrame.gameObject.SetActive(false); _frameSelecting = null; }
IEnumerable <Selectable> FindSelectables(FrameSelecting selecting) { var p1 = WorldRaycaster.RaycastGround(selecting.Min); var p2 = WorldRaycaster.RaycastGround(selecting.Max); var size = p2 - p1; size.y = 10; var b = new Bounds((p1 + p2) / 2, size); return(WorldRaycaster.OverlapBox <Selectable>(b)); }
public IFrameSelecting BeginFrameSelection(Vector2 startPoint) { if (_frameSelecting != null) { _frameSelecting.OnUpdate -= OnFrameSelectionUpdate; _frameSelecting.OnEnd -= OnFrameSelectionEnd; _frameSelecting.End(); } _frameSelecting = new FrameSelecting(startPoint); _frameSelecting.OnUpdate += OnFrameSelectionUpdate; _frameSelecting.OnEnd += OnFrameSelectionEnd; return(_frameSelecting); }