Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of the Button component in Unity?
The Button component allows users to interact with the UI by clicking or tapping, triggering actions or events in the game.
Click to reveal answer
beginner
How do you assign a function to a Button's click event in Unity?
You select the Button in the Inspector, go to the OnClick() section, click the '+' to add a new event, drag the GameObject with the script into the slot, and select the function to call from the dropdown.
Click to reveal answer
beginner
What is the signature of a method that can be assigned to a Button's OnClick event?
It must be a public method with no parameters and void return type, for example: public void OnButtonClick() {}
Click to reveal answer
intermediate
How can you add a click event listener to a Button via script in Unity?
You get a reference to the Button component and use button.onClick.AddListener(YourFunction); to add the listener.
Click to reveal answer
beginner
Why is it important to use Unity's UI Button component instead of detecting clicks manually on UI elements?
Because the Button component handles user input, visual feedback, and accessibility automatically, making it easier and more reliable to create interactive UI.
Click to reveal answer
Which Unity component do you use to create a clickable button in the UI?
ACollider
BButton
CRigidbody
DAnimator
✗ Incorrect
The Button component is designed for clickable UI elements.
How do you add a function to a Button's OnClick event in the Unity Editor?
AAdd a Rigidbody component
BWrite code in Update() method
CUse the Animator window
DDrag the GameObject with the script to OnClick and select the function
✗ Incorrect
You assign functions to OnClick events by dragging the GameObject and selecting the method.
What must be true about a method to be assigned to a Button's OnClick event?
AIt must be public and have no parameters
BIt must return an int
CIt must be private
DIt must take a string parameter
✗ Incorrect
OnClick methods must be public and parameterless.
Which code snippet correctly adds a click listener to a Button in script?
Abutton.onClick.AddListener(() => MyFunction());
Bbutton.AddClickListener(MyFunction);
Cbutton.Click += MyFunction;
Dbutton.onClick = MyFunction();
✗ Incorrect
Use AddListener with a lambda or method reference to add click events.
Why use Unity's Button component instead of detecting clicks manually?
AIt runs faster
BIt requires less memory
CIt handles input and visual feedback automatically
DIt disables physics
✗ Incorrect
The Button component simplifies input handling and UI feedback.
Explain how to set up a Button in Unity to call a function when clicked.
Think about the Inspector and the OnClick event section.
You got /3 concepts.
Describe how to add a click event listener to a Button using C# script in Unity.
Remember the syntax for adding listeners in Unity.
You got /3 concepts.
Practice
(1/5)
1. What does the onClick property of a Unity Button component do?
easy
A. It lets you specify what happens when the button is clicked.
B. It changes the button's color automatically.
C. It disables the button permanently.
D. It moves the button to a new position.
Solution
Step 1: Identify the purpose of the onClick property and match options
The onClick property holds actions that execute when the button is clicked. Only "It lets you specify what happens when the button is clicked." correctly describes this; other options refer to disabling, color changes, or movement.
Final Answer:
It lets you specify what happens when the button is clicked. -> Option A
Quick Check:
Button onClick triggers actions on click [OK]
Hint: Remember: onClick runs code when button is pressed [OK]
Common Mistakes:
Thinking onClick changes button appearance
Confusing onClick with button position or state
Assuming onClick disables the button
2. Which of the following is the correct way to add a click event listener to a Button in Unity using C#?
easy
A. button.onClick.AddListener = Debug.Log("Clicked!");
B. button.onClick.AddListener(() => Debug.Log("Clicked!"));
C. button.onClick.Add(() => Debug.Log("Clicked!"));
D. button.Click.AddListener(() => Debug.Log("Clicked!"));
Solution
Step 1: Verify syntax for Button onClick.AddListener and check options
The correct syntax uses onClick.AddListener with a lambda: button.onClick.AddListener(() => Debug.Log("Clicked!")). B uses invalid assignment (=), C calls wrong method Add(), D uses nonexistent Click.
Final Answer:
button.onClick.AddListener(() => Debug.Log("Clicked!")); -> Option B
Quick Check:
Use onClick.AddListener with lambda [OK]
Hint: Use AddListener with a lambda or method reference [OK]
Common Mistakes:
Using assignment (=) instead of AddListener method
Misspelling onClick or AddListener
Using wrong event names like Click or Add
3. Consider this C# code attached to a Unity Button:
What will happen when the button is clicked during play?
medium
A. The message "Button Pressed" will be printed to the Console.
B. Nothing will happen because the listener is not assigned.
C. The game will crash with an error.
D. The button will become invisible.
Solution
Step 1: Trace code execution and predict button click outcome
The code adds a listener in Start() that executes Debug.Log("Button Pressed") on click, printing to Console. No errors, crashes, or visual changes occur.
Final Answer:
The message "Button Pressed" will be printed to the Console. -> Option A
Quick Check:
Click triggers Debug.Log message [OK]
Hint: Click runs listeners added with AddListener [OK]
Common Mistakes:
Assuming no effect without explicit call
Expecting visual changes without code
Confusing runtime errors with correct code
4. What is wrong with this code snippet for adding a click event to a Button?
A. The listener must be added in Update(), not Start().
B. The Debug.Log statement is missing parentheses.
C. The Button variable must be private, not public.
D. You cannot assign a lambda directly to onClick; use AddListener instead.
Solution
Step 1: Detect the invalid assignment to onClick UnityEvent
Direct lambda assignment to myButton.onClick fails because it is a UnityEvent requiring AddListener(). Other options misidentify unrelated issues like timing, syntax, or access modifiers.
Final Answer:
You cannot assign a lambda directly to onClick; use AddListener instead. -> Option D
Quick Check:
Use AddListener, not direct assignment [OK]
Hint: Add listeners with AddListener, never assign onClick directly [OK]
Common Mistakes:
Assigning lambda directly to onClick
Confusing event assignment with method call
Adding listeners in wrong Unity method
5. You want to create a Unity Button that, when clicked, disables itself so it cannot be clicked again. Which code snippet correctly achieves this behavior?
hard
A. myButton.onClick.AddListener(() => myButton.gameObject.enabled = false);
B. myButton.onClick = () => myButton.enabled = false;
C. myButton.onClick.AddListener(() => myButton.interactable = false);
D. myButton.onClick.AddListener(() => myButton.SetActive(false));
Solution
Step 1: Identify correct method to disable Button interaction and validate options
Set interactable = false using onClick.AddListener prevents further clicks. B uses invalid direct assignment. C references nonexistent gameObject.enabled (compile error). D calls nonexistent SetActive on Button (compile error).
Final Answer:
myButton.onClick.AddListener(() => myButton.interactable = false); -> Option C
Quick Check:
Disable button by setting interactable false [OK]
Hint: Set button.interactable = false inside AddListener to disable [OK]