示例#1
0
 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));
     }
 }
示例#2
0
    // 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();
        }
    }