Unity UI Elements Not Clickable - Canvas and Event System Fix
Problem Statement
Your Unity UI buttons, toggles, and other interactive elements aren't responding to mouse clicks or touch input. This prevents players from interacting with menus, HUDs, and other interface elements, making your game unplayable.
This issue is typically caused by missing EventSystem, incorrect Canvas settings, or UI elements being blocked by other objects. The good news is that most causes have quick fixes.
Root Causes
UI elements not being clickable typically happens due to:
Missing EventSystem: No EventSystem GameObject in the scene to handle input events Canvas Settings: Canvas configured incorrectly (wrong render mode, blocked by other elements) Graphic Raycaster Missing: Canvas missing GraphicRaycaster component UI Blocking: Other UI elements or 3D objects blocking raycasts Canvas Group: Interactable or Blocks Raycasts settings disabled Layer Issues: UI elements on wrong layer or camera culling masks Scale Issues: UI elements scaled to zero or negative values
Solution 1: Check for EventSystem
The EventSystem is required for UI input to work. Unity usually creates it automatically, but it can be missing.
Step-by-Step Fix:
-
Check Hierarchy:
- Look for a GameObject named "EventSystem" in the Hierarchy
- If missing, create one: GameObject > UI > Event System
-
Verify EventSystem Components:
- Select the EventSystem GameObject
- In Inspector, verify it has:
- Event System component
- Standalone Input Module component (for keyboard/mouse)
- Touch Input Module component (for mobile, if needed)
-
Check for Multiple EventSystems:
- Only one EventSystem should exist per scene
- If multiple exist, delete extras (keep one)
Verification: EventSystem should be present in Hierarchy with required components.
Solution 2: Verify Canvas Settings
Canvas configuration issues can prevent UI interaction.
Fix Steps:
-
Select Canvas GameObject in Hierarchy
-
Check Render Mode:
- Screen Space - Overlay: Should work by default
- Screen Space - Camera: Ensure correct camera is assigned
- World Space: Verify camera can see the Canvas
-
Verify Graphic Raycaster:
- Canvas should have Graphic Raycaster component
- If missing, click Add Component > UI > Graphic Raycaster
-
Check Canvas Group (if present):
- Select Canvas or parent Canvas Group
- Ensure Interactable is checked
- Ensure Blocks Raycasts is checked (if you want interaction)
Verification: Canvas should have GraphicRaycaster and correct render mode settings.
Solution 3: Check UI Element Settings
Individual UI elements may have incorrect settings preventing interaction.
Fix Steps:
-
Select Non-Clickable UI Element (Button, Toggle, etc.)
-
Check Interactable Property:
- In Inspector, find Interactable checkbox
- Ensure it's checked (enabled)
-
Verify Raycast Target:
- For Image components used as backgrounds, check Raycast Target
- For interactive elements (Buttons), Raycast Target should be enabled
- For decorative elements, disable Raycast Target to prevent blocking
-
Check Canvas Group on Element:
- If element has Canvas Group component
- Ensure Interactable and Blocks Raycasts are enabled
Verification: UI elements should have Interactable enabled and proper Raycast Target settings.
Solution 4: Check for Blocking Elements
Other UI elements or 3D objects may be blocking raycasts to your buttons.
Fix Steps:
-
Check UI Element Order:
- UI elements render in Hierarchy order (top to bottom)
- Elements higher in list render on top
- Ensure your button isn't behind a full-screen image
-
Check for Overlapping Elements:
- Look for transparent or invisible UI elements covering your button
- Temporarily disable suspected elements to test
-
Check 3D Objects:
- 3D objects with colliders can block UI raycasts in World Space Canvas
- For Screen Space Canvas, 3D objects shouldn't interfere
-
Use Scene View:
- Enable 2D view mode in Scene view
- Check element positions and overlaps
- Verify elements are within Canvas bounds
Verification: No elements should be blocking your interactive UI elements.
Solution 5: Verify Camera Settings
For Screen Space - Camera Canvas, camera settings matter.
Fix Steps:
-
Select Canvas GameObject
-
Check Render Camera:
- If using Screen Space - Camera mode
- Verify Render Camera field has a camera assigned
- Ensure camera is active and rendering
-
Check Camera Culling Mask:
- Select the camera
- Verify Culling Mask includes UI layer
- UI layer should be visible
-
Check Camera Clear Flags:
- For Screen Space - Camera, camera should render UI properly
- Verify camera settings allow UI rendering
Verification: Camera should be properly configured for Canvas rendering.
Solution 6: Check Layer and Sorting Order
Layer and sorting order issues can prevent UI interaction.
Fix Steps:
-
Verify UI Layer:
- Select Canvas and UI elements
- Ensure they're on UI layer (default)
- Check Layer dropdown in Inspector
-
Check Sorting Order:
- For multiple Canvases, check Sort Order
- Higher Sort Order renders on top
- Ensure interactive Canvas has appropriate Sort Order
-
Check Canvas Scaler:
- Verify Canvas Scaler is configured correctly
- Incorrect scaling can position elements off-screen
Verification: UI elements should be on UI layer with correct sorting order.
Solution 7: Reset UI Element Transform
Corrupted transform values can prevent interaction.
Fix Steps:
-
Select Non-Clickable UI Element
-
Check RectTransform:
- Verify Width and Height are greater than 0
- Check Scale values (should be 1, 1, 1)
- Verify Position is within Canvas bounds
-
Reset Transform (if needed):
- Right-click RectTransform component
- Select Reset to restore default values
- Reconfigure size and position
Verification: UI elements should have valid transform values.
Solution 8: Check Input Module Settings
Input module configuration can affect UI interaction.
Fix Steps:
-
Select EventSystem GameObject
-
Check Standalone Input Module:
- Verify Standalone Input Module component exists
- Check Input Actions (if using new Input System)
- Verify Input System Package is installed if using new Input System
-
Switch Input Modules (if needed):
- If using new Input System, ensure Input System Package (New) is selected
- If using legacy, ensure Input Manager (Old) is selected
- Project Settings > Player > Active Input Handling
Verification: Input module should match your input system setup.
Solution 9: Recreate UI Element
If all else fails, recreate the problematic UI element.
Fix Steps:
-
Note Current Settings: Write down size, position, and component settings
-
Delete Problematic Element: Remove the non-clickable UI element
-
Create New Element:
- Right-click Canvas in Hierarchy
- Create new UI element (Button, Toggle, etc.)
- Reconfigure settings from your notes
-
Test Interaction: Verify new element responds to clicks
Verification: Newly created UI element should work correctly.
Solution 10: Check for Script Conflicts
Custom scripts may be interfering with UI interaction.
Fix Steps:
-
Temporarily Disable Scripts:
- Disable custom scripts on Canvas or UI elements
- Test if UI becomes clickable
-
Check for Event Handlers:
- Look for scripts that might be consuming input events
- Check for
OnPointerClick,OnButtonClickhandlers that might block events
-
Review Input Handling:
- Ensure scripts aren't using
Input.GetMouseButtonin ways that conflict with UI - Check for
EventSystem.current.IsPointerOverGameObject()usage
- Ensure scripts aren't using
Verification: UI should work with scripts disabled, helping identify conflicts.
Prevention Tips
Best Practices:
- Always ensure EventSystem exists when creating UI
- Keep UI elements organized in Hierarchy
- Use Canvas Groups for complex UI hierarchies
- Test UI on target platforms (mobile vs desktop)
- Document UI structure for team members
Common Mistakes to Avoid:
- Forgetting to enable Interactable on UI elements
- Having multiple EventSystems in scene
- Blocking UI elements with transparent images
- Using wrong Canvas render mode for your use case
- Not checking for script conflicts
Related Problems
If you're still experiencing issues, check these related help articles:
- Unity UI System Guide: Complete guide to Unity's UI system
- Unity Canvas Not Rendering: Solutions for Canvas display issues
- Unity Input System Not Working: Fixes for input handling problems
- Unity Event System Errors: Troubleshooting Event System issues
FAQ
Q: UI works in editor but not in build - why?
A: This is often a build settings issue. Check that UI layer is included in build, EventSystem is in scenes, and input modules are properly configured for your target platform.
Q: Can I have multiple Canvases with different EventSystems?
A: No, only one EventSystem should exist per scene. Multiple Canvases can share the same EventSystem.
Q: UI buttons work but toggles don't - same fix?
A: Similar fixes apply, but also check Toggle Group settings if toggles are grouped, and verify Toggle component Interactable property.
Q: Touch input works but mouse doesn't (or vice versa) - why?
A: Check Input Module components. Standalone Input Module handles mouse/keyboard, Touch Input Module handles touch. Ensure correct modules are enabled for your platform.
Q: UI was working yesterday but not today - what changed?
A: Check if EventSystem was accidentally deleted, Canvas settings changed, or new UI elements were added that might be blocking interaction.
Conclusion
UI elements not being clickable is frustrating but usually fixable. Start with the most common causes - missing EventSystem and incorrect Canvas settings. Most issues resolve with these quick checks.
If the problem persists, work through the solutions systematically. Blocking elements, transform issues, and input module configuration are common culprits that can be easily fixed.
Remember to test UI on your target platforms, keep EventSystem properly configured, and maintain clean UI hierarchies. These practices prevent most UI interaction issues.
Found this fix helpful? Bookmark this page for quick reference, and share it with other developers who might be experiencing the same issue. If you're still having problems, check our Unity UI guide for comprehensive UI system documentation.