private void CheckClick() { int buttonNumber = 0; if (Input.GetMouseButtonDown(0)) { buttonNumber = -1; } else if (Input.GetMouseButtonDown(1)) { buttonNumber = 1; } if (buttonNumber != 0) { RaycastHit2D hit = Physics2D.Raycast(cam.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, clickRayDistance, ~ignoreMask ); Debug.Log(hit.collider); if (hit.collider != null) { if (hit.collider.TryGetComponent <ClickCommandObject>(out ClickCommandObject commandObject)) { if (buttonNumber > 0) { commandObject.OnRightClickCommand(hit.point); return; } else { commandObject.OnLeftCkickCommand(hit.point); return; } } } EmptyClickEvent?.Invoke(); } }
/// <summary> /// Команда, которая будет выполнена при клике левой кнопкой мыши. /// В данном случае - закрытие контекстного меню /// </summary> /// <param name="clickPosition">позиция клика, которую можно использовать в команде</param> public override void OnLeftCkickCommand(Vector2 clickPosition) { ReturnToDefaultState(); EmptyClickEvent?.Invoke(); }