Documentation index for AI agents (llms.txt) A Markdown version of every page is available: request the page's source under /docs/, follow the "alternate" link in this page's head, or start from /llms.txt.
Visual Script logo Manual

Is Mouse Pressed#

Input / Is Mouse Pressed

  • Can Read

  • Cannot Write

Description#

Returns true if the specified Mouse button is being held down

Code#

using System;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using UnityEngine.InputSystem.LowLevel;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Get]
    
    [Inline(nameof(m_Button))]
    
    [Title("Is Mouse Pressed")]
    [Category("Input/Is Mouse Pressed")]
    
    [Description("Returns true if the specified Mouse button is being held down")]
    [Image(typeof(IconMouse), ColorTheme.Type.Blue)]
    
    [Keywords("Left", "Right", "Middle", "Cursor", "Down")]
    
    [Serializable]
    public class TypeBoolInputMousePress : TypeBool
    {
        private enum ClickCount
        {
            Single,
            Double,
            Triple
        }
        
        [SerializeField] private MouseButton m_Button = MouseButton.Left;
        [SerializeField] private ClickCount m_Clicks = ClickCount.Single;

        public override bool Get(Args args)
        {
            ButtonControl button = this.m_Button switch
            {
                MouseButton.Left => Mouse.current.leftButton,
                MouseButton.Right => Mouse.current.rightButton,
                MouseButton.Middle => Mouse.current.middleButton,
                MouseButton.Forward => Mouse.current.forwardButton,
                MouseButton.Back => Mouse.current.backButton,
                _ => throw new ArgumentOutOfRangeException()
            };

            if (button.isPressed)
            {
                int clickCount = Mouse.current.clickCount.ReadValue();
                
                switch (this.m_Clicks)
                {
                    case ClickCount.Single: return clickCount == 1;
                    case ClickCount.Double: return clickCount == 2;
                    case ClickCount.Triple: return clickCount == 3;
                    default: throw new ArgumentOutOfRangeException();
                }
            }

            return false;
        }

        public override string ToString()
        {
            return this.m_Clicks switch
            {
                ClickCount.Single => $"Pressing Mouse {this.m_Button}",
                ClickCount.Double => $"Double Pressing Mouse {this.m_Button}",
                ClickCount.Triple => $"Triple Pressing Mouse {this.m_Button}",
                _ => throw new ArgumentOutOfRangeException()
            };
        }
        
        protected override SubscriptionMode Subscription => SubscriptionMode.OnChange;
    }
}
Visual Script logoVisual Script © Catsoft Works 2026. All rights reserved.