Beispiel #1
0
        public void Update(float deltaTime)
        {
            // Residual clicking handling.
            if (isMouseDown && Parent.Manager.IsClickReleased)
            {
                _handle_up(Parent.Manager);
            }
            // Hover management.
            var IsHovered = Parent.Manager.GetHover() == Parent;

            if (IsHovered == false && WasHoveredLastFrame == true)
            {
                OnUnhover?.Invoke(Parent);
            }
            else if (IsHovered == true && WasHoveredLastFrame == false)
            {
                OnHover?.Invoke(Parent);
            }

            WasHoveredLastFrame = IsHovered;

            if (double_click_timer > 0f)
            {
                double_click_timer -= deltaTime;
                if (double_click_timer <= 0f)
                {
                    OnClick?.Invoke(Parent);
                    OnEndClicking?.Invoke(Parent);
                    has_clicked = false;
                }
            }

            // Clicking related input.
            if (Parent.Manager.GetHover() == Parent)
            {
                _update(Parent.Manager, deltaTime);
            }
        }
Beispiel #2
0
 public virtual void Unhover()
 {
     OnUnhover?.Invoke();
 }