Bird
Raised Fist0
Unityframework~5 mins

Touch input basics in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Touch in Unity?
A Touch represents a single finger touching the screen. It contains information like position, phase (start, move, end), and finger ID.
Click to reveal answer
beginner
How do you check if the screen is being touched in Unity?
Use Input.touchCount. If it is greater than zero, the screen has one or more touches.
Click to reveal answer
beginner
What does TouchPhase.Began mean?
It means a finger just touched the screen this frame. It's the start of a touch.
Click to reveal answer
beginner
How can you get the position of a touch on the screen?
Use touch.position, which gives the x and y coordinates in pixels from the bottom-left corner.
Click to reveal answer
intermediate
Why is fingerId important in touch input?
fingerId helps track individual fingers across frames, so you know which touch is which when multiple fingers are on the screen.
Click to reveal answer
Which property tells you how many fingers are currently touching the screen?
AInput.touchCount
BInput.touchPosition
CTouch.fingerId
DTouch.phase
What does TouchPhase.Moved indicate?
AA finger just touched the screen
BA finger moved on the screen
CA finger was lifted off the screen
DNo finger is touching the screen
How do you access the position of the first touch on the screen?
AInput.touchCount.position
BInput.touchPosition[0]
CTouch.position[0]
DInput.GetTouch(0).position
What is the purpose of fingerId in a Touch object?
ATo identify the finger across frames
BTo get the finger's pressure
CTo get the finger's speed
DTo get the finger's color
Which TouchPhase means the finger was lifted off the screen this frame?
ATouchPhase.Began
BTouchPhase.Stationary
CTouchPhase.Ended
DTouchPhase.Canceled
Explain how you would detect a single tap on the screen using Unity's touch input.
Think about checking if a finger just touched the screen and where.
You got /4 concepts.
    Describe the role of the TouchPhase property and list its main states.
    TouchPhase tells you what is happening with a finger each frame.
    You got /6 concepts.

      Practice

      (1/5)
      1. Which Unity property tells you how many fingers are currently touching the screen?
      easy
      A. Input.touchPhase
      B. Input.touchCount
      C. Input.GetTouchCount()
      D. Input.touchPosition

      Solution

      1. Step 1: Understand the purpose of Input.touchCount

        This property returns the number of fingers currently touching the screen in Unity.
      2. Step 2: Compare with other options

        Input.touchPhase is not a property but an enum for touch state; Input.GetTouchCount() does not exist; Input.touchPosition gives position, not count.
      3. Final Answer:

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

        Number of touches = Input.touchCount [OK]
      Hint: Remember: touchCount counts fingers on screen [OK]
      Common Mistakes:
      • Confusing touchCount with touchPhase
      • Using non-existent methods like GetTouchCount()
      • Mixing position with count
      2. Which of the following is the correct way to get the first touch input in Unity?
      easy
      A. Input.touch(0)
      B. Input.GetTouchCount(0)
      C. Input.GetTouch(0)
      D. Input.touchCount(0)

      Solution

      1. Step 1: Recall the method to access touches

        Unity uses Input.GetTouch(index) to get a touch at a specific index.
      2. Step 2: Check syntax correctness

        Input.touch(0) and Input.touchCount(0) are invalid; GetTouchCount(0) does not exist.
      3. Final Answer:

        Input.GetTouch(0) -> Option C
      4. Quick Check:

        First touch = Input.GetTouch(0) [OK]
      Hint: Use GetTouch(index) to access specific touch [OK]
      Common Mistakes:
      • Using touch as a method instead of GetTouch
      • Trying to call touchCount as a method
      • Confusing method names
      3. What will be the output of this code snippet if the user just started touching the screen?
      if (Input.touchCount > 0) {
          Touch touch = Input.GetTouch(0);
          if (touch.phase == TouchPhase.Began) {
              Debug.Log("Touch started");
          }
      }
      medium
      A. Touch ended
      B. Touch moved
      C. No output
      D. Touch started

      Solution

      1. Step 1: Understand the touch.phase check

        The code checks if the first touch's phase is TouchPhase.Began, which means the touch just started.
      2. Step 2: Match the condition with output

        If the user just started touching, the condition is true and "Touch started" is logged.
      3. Final Answer:

        Touch started -> Option D
      4. Quick Check:

        touch.phase == Began means "Touch started" [OK]
      Hint: TouchPhase.Began means finger just touched screen [OK]
      Common Mistakes:
      • Confusing Began with Moved or Ended
      • Ignoring touchCount check
      • Assuming output without touch
      4. Identify the error in this Unity C# code snippet for detecting a touch:
      if (Input.touchCount > 0) {
          Touch touch = Input.GetTouch(0);
          if (touch.phase = TouchPhase.Began) {
              Debug.Log("Touch started");
          }
      }
      medium
      A. Using assignment (=) instead of comparison (==) in if condition
      B. Incorrect method name GetTouch instead of GetTouches
      C. Missing check for touchCount == 1
      D. TouchPhase.Began is not a valid enum

      Solution

      1. Step 1: Check the if condition syntax

        The condition uses a single equals sign (=), which assigns instead of compares.
      2. Step 2: Understand correct comparison operator

        To compare values, double equals (==) must be used in C#.
      3. Final Answer:

        Using assignment (=) instead of comparison (==) in if condition -> Option A
      4. Quick Check:

        Use == to compare, not = [OK]
      Hint: Use == for comparison, = is assignment [OK]
      Common Mistakes:
      • Using = instead of == in conditions
      • Thinking GetTouch is wrong method
      • Unnecessary touchCount == 1 check
      • Misunderstanding TouchPhase enum
      5. You want to detect when the user moves their finger on the screen and print the new position. Which code snippet correctly does this inside Update()?
      hard
      A.
      if (Input.touchCount > 0) {
          Touch touch = Input.GetTouch(0);
          if (touch.phase == TouchPhase.Moved) {
              Debug.Log($"Moved to: {touch.position}");
          }
      }
      B.
      if (Input.touchCount > 0) {
          Touch touch = Input.GetTouch(0);
          if (touch.phase == TouchPhase.Ended) {
              Debug.Log($"Moved to: {touch.position}");
          }
      }
      C.
      if (Input.touchCount == 0) {
          Touch touch = Input.GetTouch(0);
          Debug.Log($"Moved to: {touch.position}");
      }
      D.
      Touch touch = Input.GetTouch(0);
      if (touch.phase == TouchPhase.Moved) {
          Debug.Log($"Moved to: {touch.position}");
      }

      Solution

      1. Step 1: Check for active touches

        We must ensure Input.touchCount > 0 before accessing touches to avoid errors.
      2. Step 2: Detect the move phase and print position

        Using touch.phase == TouchPhase.Moved correctly detects finger movement and prints the position.
      3. Final Answer:

        Code snippet D correctly detects movement and prints position -> Option A
      4. Quick Check:

        Check touchCount > 0 and phase == Moved [OK]
      Hint: Always check touchCount > 0 before GetTouch [OK]
      Common Mistakes:
      • Checking phase == Ended instead of Moved
      • Accessing GetTouch(0) when touchCount == 0
      • Not checking touchCount before GetTouch
      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