This function is used for UI buttons mostly but sometimes we need it in game specs. It is implemented easily with mouse enter-exit listeners. We can change color of an object with renderers. Create a cube object and attach this script to it.
At first, define 2 colors for standard and mouse over situations.
1 2 |
private Color basicColor = Color.green; private Color hoverColor = Color.red; |
Next, we need a renderer.
1 2 3 4 5 |
private Renderer renderer; void Start() { renderer = GetComponent<Renderer>(); } |
Set the colour of cube object in start function.
1 |
renderer.material.color = basicColor; |
Now we can write mouse over and mouse exit functions.
1 2 3 4 5 6 7 |
void OnMouseEnter() { renderer.material.color = hoverColor; } void OnMouseExit() { renderer.material.color = basicColor; } |
These 2 functions say that when you take mouse over the cube, make it hoverColor(red) and when you take off the mouse, make the cube gets its original color(green). Also you can add sounds instead of color.
Full code is below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class MouseOver : MonoBehaviour { private Color basicColor = Color.green; private Color hoverColor = Color.red; private Renderer renderer; void Start() { renderer = GetComponent<Renderer>(); renderer.material.color = basicColor; } void OnMouseEnter() { renderer.material.color = hoverColor; } void OnMouseExit() { renderer.material.color = basicColor; } } |
©Coffee Break Codes – Change Color on Hover (Mouseover) – Unity3D (C#)
Pingback: Рецепт: Изменение цвета при наведении курсора мыши (Unity C#)
I have no renderer on my UI Button…