private void Select(ISelectable selectable) { if (!Selections.Contains(selectable)) { ISelectionHandler handler = selectable.GetSelectionHandler(); ISelectionVisualizer visualizer = selectable.GetSelectionVisualizer(); handler.Selectable = selectable; visualizer.Visualized = selectable; handler.Controller = this; Selections.Add(selectable); Handlers.Add(handler); Visualizers.Add(visualizer); Begin(handler, visualizer); } }
private void UpdateHover(ISelectable selectable) { if (_hoveringVisualizer != null) { _hoveringVisualizer.EndHover(); _hoveringVisualizer.End(); _hoveringVisualizer = null; } _currentHover = selectable; if (selectable != null) { _hoveringVisualizer = _currentHover.GetSelectionVisualizer(); _hoveringVisualizer.Visualized = selectable; _hoveringVisualizer.BeginHover(); _hoveringVisualizer.Begin(); } }
private void End(ISelectionHandler handler, ISelectionVisualizer visualizer) { handler.End(); visualizer.End(); }
void Tick(ISelectionHandler handler, ISelectionVisualizer visualizer, float deltaTime) { handler.Tick(deltaTime); visualizer.Tick(deltaTime); _hoveringVisualizer?.Tick(deltaTime); }
private void Begin(ISelectionHandler handler, ISelectionVisualizer visualizer) { handler.Begin(); visualizer.Begin(); }