Is it possible to create tooltips while hovering over a UI Button using an Event Trigger. I’ve looked around, but all the information I found was for older version of Unity and GUI.
This will display a tooltip with a Y offset, that will stay within the bounds of the screen if anyone else is interested in the best solution. Just attach to your tooltip object:
public class Tooltip : MonoBehaviour
{
public bool IsActive = true;
Camera cam;
Vector3 min, max;
RectTransform rect;
float offset = 10f;
// Start is called before the first frame update
void Start()
{
cam = Camera.main;
rect = GetComponent<RectTransform>();
min = new Vector3(0, 0, 0);
max = new Vector3(cam.pixelWidth, cam.pixelHeight, 0);
}
// Update is called once per frame
void Update()
{
if (IsActive)
{
//get the tooltip position with offset
Vector3 position = new Vector3(Input.mousePosition.x + rect.rect.width, Input.mousePosition.y - (rect.rect.height / 2 + offset), 0f);
//clamp it to the screen size so it doesn't go outside
transform.position = new Vector3(Mathf.Clamp(position.x, min.x + rect.rect.width/2, max.x - rect.rect.width/2), Mathf.Clamp(position.y, min.y + rect.rect.height / 2, max.y - rect.rect.height / 2), transform.position.z);
}
}
}
I’m digging up an old subject but I went through this post while I was looking for a way to add tooltip in unity but I didn’t find any answer so I tried mine, it works great so I thought I could share :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class SCR_21_ToolTips : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
public GameObject gmo_toolTip;
void Start()
{
// I added this in case I forgot to set the tooltip object
if (gmo_toolTip!= null)
{
gmo_toolTip.SetActive(false);
}
}
public void OnPointerEnter(PointerEventData eventData)
{
// Same here
if (gmo_toolTip!= null)
{
gmo_toolTip.SetActive(true);
}
}
public void OnPointerExit(PointerEventData eventData)
{
// and same here
if (gmo_toolTip!= null)
{
gmo_toolTip.SetActive(false);
}
}
}
Now all you have to do is make some text or whatever you want as tooltip, drag this script over your button and then set the “gmo_toolTip” value in the inspector :

I was lazy so I used buttons to make the tooltip boxes (goes fast with a shape, background and text inside).
Hope this could help someone ![]()
Hi, this tutorial should work in “new” Unity Ui system
If you want your tooltip to display next to the cursor add this behaviour to the TooltipText GameObject:
public Canvas myCanvas;
public Vector3 offset;
// Update is called once per frame
void Update () {
transform.position = Input.mousePosition + offset;
}
In the inspector set myCanvas and tweak the offset.
Hope that helps,
Bye