Bird
Raised Fist0
Unityframework~5 mins

Mouse input (GetMouseButton, position) in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does Input.GetMouseButton(0) check in Unity?
It checks if the left mouse button is currently being pressed down.
Click to reveal answer
beginner
How do you get the current position of the mouse cursor in Unity?
Use Input.mousePosition, which returns the mouse position in pixel coordinates relative to the bottom-left corner of the screen.
Click to reveal answer
intermediate
What is the difference between Input.GetMouseButtonDown(0) and Input.GetMouseButton(0)?
GetMouseButtonDown(0) returns true only during the frame the left mouse button is pressed. GetMouseButton(0) returns true as long as the button is held down.
Click to reveal answer
beginner
If you want to detect a right mouse button click, which parameter do you use with GetMouseButton?
Use Input.GetMouseButton(1) to detect the right mouse button.
Click to reveal answer
intermediate
How can you convert Input.mousePosition to a world position in Unity?
Use Camera.main.ScreenToWorldPoint(Input.mousePosition) to convert the screen pixel position of the mouse to a position in the game world.
Click to reveal answer
What does Input.GetMouseButton(0) return when the left mouse button is not pressed?
ATrue
BNull
CFalse
DThrows an error
Which method returns true only on the exact frame the mouse button is pressed?
AInput.GetMouseButtonDown(0)
BInput.GetMouseButtonUp(0)
CInput.GetMouseButton(0)
DInput.mousePosition
What type of value does Input.mousePosition return?
AVector2 with world coordinates
BInteger
CBoolean
DVector3 with screen pixel coordinates
How do you detect a right mouse button press in Unity?
AInput.GetMouseButton(0)
BInput.GetMouseButton(1)
CInput.GetMouseButton(2)
DInput.GetMouseButtonDown(0)
Which function converts mouse screen position to world position?
ACamera.main.ScreenToWorldPoint()
BInput.GetMouseButton()
CInput.mousePosition.ToWorld()
DCamera.main.WorldToScreenPoint()
Explain how to detect when the left mouse button is pressed and get the mouse position in Unity.
Think about checking the button press and reading the position separately.
You got /3 concepts.
    Describe how to convert the mouse position from screen space to world space in Unity.
    Remember the camera translates screen pixels to game world.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does Input.GetMouseButton(0) check in Unity?
      easy
      A. If the left mouse button is currently held down
      B. If the right mouse button was clicked once
      C. If the middle mouse button is released
      D. If any mouse button is pressed

      Solution

      1. Step 1: Understand the parameter in GetMouseButton

        The number 0 in Input.GetMouseButton(0) refers to the left mouse button in Unity.
      2. Step 2: Understand what GetMouseButton returns

        This function returns true while the specified mouse button is held down, not just clicked or released.
      3. Final Answer:

        If the left mouse button is currently held down -> Option A
      4. Quick Check:

        GetMouseButton(0) = left button held [OK]
      Hint: Remember 0 = left button, 1 = right, 2 = middle [OK]
      Common Mistakes:
      • Confusing GetMouseButton with GetMouseButtonDown
      • Mixing up button numbers
      • Thinking it detects clicks only
      2. Which of the following is the correct syntax to get the current mouse position in Unity?
      easy
      A. Input.MousePosition
      B. Input.mousePosition
      C. Input.getMousePosition()
      D. Input.Mouse.position

      Solution

      1. Step 1: Recall the exact property name for mouse position

        Unity uses Input.mousePosition with a lowercase 'm' and 'P' capitalized as a property to get the current mouse position.
      2. Step 2: Check other options for syntax errors

        Options A, C, and D use incorrect casing or method calls that do not exist in Unity's Input class.
      3. Final Answer:

        Input.mousePosition -> Option B
      4. Quick Check:

        mousePosition is a property, not a method [OK]
      Hint: mousePosition is a property, not a method, and lowercase 'm' [OK]
      Common Mistakes:
      • Using uppercase 'M' in MousePosition
      • Calling mousePosition as a method
      • Using incorrect property names
      3. What will the following Unity C# code print if the left mouse button is held down and the mouse is at position (150, 200, 0)?
      if (Input.GetMouseButton(0)) {
          Vector3 pos = Input.mousePosition;
          Debug.Log($"Mouse at: {pos.x}, {pos.y}");
      } else {
          Debug.Log("No click");
      }
      medium
      A. Error: Cannot access mousePosition
      B. No click
      C. Mouse at: 0, 0
      D. Mouse at: 150, 200

      Solution

      1. Step 1: Check the mouse button condition

        The code checks if the left mouse button (button 0) is held down. The question states it is held down, so the if condition is true.
      2. Step 2: Understand mousePosition usage

        The code reads Input.mousePosition which returns the current mouse position as a Vector3. The question states the position is (150, 200, 0).
      3. Step 3: Output the position

        The Debug.Log prints the x and y values of the mouse position, so it will print "Mouse at: 150, 200".
      4. Final Answer:

        Mouse at: 150, 200 -> Option D
      5. Quick Check:

        Button held + mousePosition = printed coordinates [OK]
      Hint: If button held, mousePosition prints current coordinates [OK]
      Common Mistakes:
      • Assuming GetMouseButton checks clicks only
      • Confusing mousePosition with screen coordinates
      • Ignoring the else branch
      4. Identify the error in this Unity C# code snippet:
      void Update() {
          if (Input.GetMouseButtonDown(1)) {
              Vector3 mousePos = Input.mouseposition;
              Debug.Log(mousePos);
          }
      }
      medium
      A. Debug.Log cannot print Vector3 directly
      B. GetMouseButtonDown should be GetMouseButton
      C. mouseposition should be mousePosition (case sensitive)
      D. Missing semicolon after Debug.Log

      Solution

      1. Step 1: Check property name spelling and casing

        The code uses Input.mouseposition with a lowercase 'p', but the correct property is Input.mousePosition with a capital 'P'. C# is case sensitive.
      2. Step 2: Verify other parts of the code

        GetMouseButtonDown(1) is valid for right mouse button click detection, and Debug.Log can print Vector3 objects directly. Semicolons are correctly placed.
      3. Final Answer:

        mouseposition should be mousePosition (case sensitive) -> Option C
      4. Quick Check:

        Property names are case sensitive in C# [OK]
      Hint: Check exact casing of properties in Unity API [OK]
      Common Mistakes:
      • Ignoring case sensitivity in property names
      • Confusing GetMouseButton and GetMouseButtonDown
      • Thinking Debug.Log can't print Vector3
      5. You want to create a Unity script that prints the mouse position only while the right mouse button is held down, but only if the mouse is inside the screen bounds (0 <= x < Screen.width and 0 <= y < Screen.height). Which code snippet correctly implements this?
      hard
      A. if (Input.GetMouseButton(1)) { Vector3 pos = Input.mousePosition; if (pos.x >= 0 && pos.x < Screen.width && pos.y >= 0 && pos.y < Screen.height) { Debug.Log($"Mouse inside screen at: {pos.x}, {pos.y}"); } }
      B. if (Input.GetMouseButtonDown(1)) { Vector3 pos = Input.mousePosition; if (pos.x > 0 && pos.x <= Screen.width && pos.y > 0 && pos.y <= Screen.height) { Debug.Log($"Mouse inside screen at: {pos.x}, {pos.y}"); } }
      C. if (Input.GetMouseButton(1)) { Vector3 pos = Input.mousePosition; if (pos.x > 0 && pos.x <= Screen.width && pos.y > 0 && pos.y <= Screen.height) { Debug.Log($"Mouse inside screen at: {pos.x}, {pos.y}"); } }
      D. if (Input.GetMouseButtonDown(1)) { Vector3 pos = Input.mousePosition; if (pos.x >= 0 && pos.x < Screen.width && pos.y >= 0 && pos.y < Screen.height) { Debug.Log($"Mouse inside screen at: {pos.x}, {pos.y}"); } }

      Solution

      1. Step 1: Check mouse button method for 'held down'

        To detect if the right mouse button is held down continuously, use Input.GetMouseButton(1). GetMouseButtonDown detects only the frame the button was pressed.
      2. Step 2: Verify screen bounds conditions

        The mouse position must be inside the screen including zero and less than Screen.width and Screen.height, so conditions use >= 0 and < Screen.width/height.
      3. Step 3: Match conditions and method

        if (Input.GetMouseButton(1)) { Vector3 pos = Input.mousePosition; if (pos.x >= 0 && pos.x < Screen.width && pos.y >= 0 && pos.y < Screen.height) { Debug.Log($"Mouse inside screen at: {pos.x}, {pos.y}"); } } uses GetMouseButton(1) and correct bounds with >= 0 and < Screen.width/height, so it is correct.
      4. Final Answer:

        Option A code snippet correctly implements the requirement -> Option A
      5. Quick Check:

        Held down = GetMouseButton, bounds include zero, exclude max [OK]
      Hint: Use GetMouseButton for held, check bounds with >=0 and < max [OK]
      Common Mistakes:
      • Using GetMouseButtonDown instead of GetMouseButton for held state
      • Using > 0 instead of >= 0 for screen bounds
      • Including Screen.width in bounds check (should be less than)
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard