Challenge 4: UI button
- Game Development course
- Intermediate
- Lesson 82/83
- 5 min
Write a UI script that calls Debug.Log when a button is clicked.
UI Button and onClick Event
In the Unity UI system, the Button component captures user interaction. Methods to invoke upon clicking are dynamically attached using button.onClick.AddListener(Task). This keeps UI code clean and decoupled.
Button button = GetComponent<Button>();
button.onClick.AddListener(StartGame);Practice Attach Button Listener
Attach the listener using buton.onClick.AddListener(Tiklandi); and trigger it with buton.Click();.
Starter code
using System;
public class Button
{
public Action onClickAction;
public void AddListener(Action action) { onClickAction += action; }
public void Click() { onClickAction?.Invoke(); }
public Button onClick => this;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Tiklandi()
{
Debug.Log("Butona basildi");
}
public static void Main()
{
Button buton = new Button();
// Dinleyici bagla ve tiklama metodunu cagir
}
}Sample solution
using System;
public class Button
{
public Action onClickAction;
public void AddListener(Action action) { onClickAction += action; }
public void Click() { onClickAction?.Invoke(); }
public Button onClick => this;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Tiklandi()
{
Debug.Log("Butona basildi");
}
public static void Main()
{
Button buton = new Button();
buton.onClick.AddListener(Tiklandi);
buton.Click();
}
}Expected output
Butona basildi
Practice Start Game via Button
Assign baslatButonu.action = () => Debug.Log("Oyun Basladi"); and trigger the action with baslatButonu.Click();.
Starter code
using System;
public class Button
{
public Action action;
public void Click() { action?.Invoke(); }
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
Button baslatButonu = new Button();
// Buton aksiyonunu tanimla ve tiklama cagir
}
}Sample solution
using System;
public class Button
{
public Action action;
public void Click() { action?.Invoke(); }
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
Button baslatButonu = new Button();
baslatButonu.action = () => Debug.Log("Oyun Basladi");
baslatButonu.Click();
}
}Expected output
Oyun Basladi
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 Which syntax is used in Unity through code to attach a listener method to a UI Button click event?
- button.onClick.AddListener(Dinleyici); Correct answer
- button.AddTrigger(Dinleyici);
- button.onPress += Dinleyici;
- button.ClickEvent.Subscribe(Dinleyici);
Explanation: In Unity, onClick.AddListener() is used to register listeners to a UI button's UnityEvent.
2 Button Click Listener
baslatButonu.onClick.____(OyunuBaslat);
baslatButonu.onClick.AddListener(OyunuBaslat);
Explanation: The AddListener function is called to bind a method to the click event.
3 UI Interaction Terminology
| Term | Meaning |
|---|---|
Button |
UI component detecting user clicks |
onClick |
UnityEvent triggered on button click |
AddListener |
Registers method to run on event |
RemoveListener |
Removes previously added listener |