void OnGUI() { if (_isSelected) { // Create a rect from both mouse positions var rect = JobControllerUtil.GetScreenRect(_startDrag, Input.mousePosition); JobControllerUtil.DrawScreenRect(rect, new Color(0.8f, 0.8f, 0.95f, 0.25f)); JobControllerUtil.DrawScreenRectBorder(rect, 2, new Color(0.8f, 0.8f, 0.95f)); } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { _isSelected = true; _startDrag = Input.mousePosition; } if (Input.GetMouseButtonUp(0) && _isSelected) { _isSelected = false; _jobs = null; foreach (var entity in EntityRegistry.Registered) { var endDrag = Input.mousePosition; if (!JobControllerUtil.IsWithinSelectionBounds(_startDrag, endDrag, entity)) { continue; } _jobs = entity.GetComponent <IJobSystem>(); if (_jobs != null) { break; } } } if (Input.GetKeyDown(KeyCode.A)) { _mode = JobControllerMode.AttackMove; } else if (Input.GetKeyDown(KeyCode.S)) { _mode = JobControllerMode.Move; } if (_jobs != null && Input.GetMouseButtonDown(1)) { ApplyJob(); } }