Customizing your buttons with code in Unity

Thomas Steffen
2 min readApr 20, 2023

--

Unity has an easy to use built-in Button interface in the Canvas UI. But with many easy to use things, they come with limitations. For instance, if we wanted a method to run when a button is highlighted, we wouldn’t be able to do this unless it is written in some type of code.

In my example, I want an icon to appear next to a button when the user highlights it. We can use the UnityEngine.EventSystems to make the changes we need.

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class Button : MonoBehaviour, ISelectHandler, IPointerEnterHandler, IPointerExitHandler, IDeselectHandler

We can derive our class from the above parent classes and then use the following methods:

    // When highlighted with mouse.
public void OnPointerEnter(PointerEventData eventData)
{
// Do something.
}
// When no longer highlighted with mouse.
public void OnPointerExit(PointerEventData eventData)
{
// Do something.
}
// When selected.
public void OnSelect(BaseEventData eventData)
{
// Do something.
}
//when deselected
public void OnDeselect(BaseEventData eventData)
{
// Do something.
}

There are other useful methods we can use with our buttons located within the Unity API here.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Thomas Steffen
Thomas Steffen

Written by Thomas Steffen

I am Virtual Reality Developer, UI Systems, and general programmer with a passion for Unity software development.

No responses yet

Write a response