Cómo cambiar la imagen del CURSOR en Unity

Introducción

En este artículo vamos a ver cómo se puede hacer para cambiar la imagen que muestra el cursor al parar el puntero sobre un botón en Unity. Además se provee un paquete de descarga donde vienen los scripts, sprites y la escena con todos los elementos montados.

Paquete de Unity para descargar

🟢VÍDEO: Cómo cambiar el CURSOR al pasar el MOUSE sobre un elemento de la interfaz gráfica en Unity


Fig. 1: Visualización de la escena en el paquete de Unity, cursor sobre la pantalla, sprite de flecha.
Fig. 2: Visualización de la escena en el paquete de Unity, cursor sobre un botón, sprite de mano con dedo.

Configuración del Cursor por defecto en Unity

Esto es algo que se puede hacer dentro de alguna función Start, pero si nuestro juego o aplicación tendrá un cursor con una imagen por defecto, por ejemplo una flecha personalizada, es cómodo definirlo dentro de los parámetros del proyecto, yendo a Edit > Project Settings, se despliega la ventana que se observa en la figura 3, allí podemos asignar el Sprite del cursor por defecto, así como también sus coordenadas de Hotspot.

cambiar sprite por defecto para el cursor en unity
Fig. 3: Configuración del cursor por defecto en Unity.

Determinar el hotspot de un cursor personalizado en Unity

El hotspot es el offset medido desde la esquina superior izquierda del Sprite hacia el punto en donde se considera que está la punta del cursor. El script que viene en el paquete tiene campos definidos para asignar el Sprite de dos cursores así como también los vectores de sus respectivos Hotspots, como se observa en el inspector en la figura 4.

Para determinar los Hotspots hay que entrar en el modo juego e ir probando distintos valores hasta que Unity tome correctamente el cursor, otra forma sería conocer exactamente a cuántos píxeles en horizantal y vertical se encuentra la punto del cursor.

script para cambiar el cursor en unity
Fig. 4: Inspector del script Cursor Manager que viene dentro del paquete, asignación de Sprites y configuración de Hot Spot.

Cómo cambiar la IMAGEN del cursor en Unity

Para cambiar la imagen que muestra el cursor basta con ejecutar las instrucciones mostradas en la figura 5, en las líneas 31 y 37, el método SetCursor dentro de la clase Cursor, pasando como parámetro el sprite que queremos mostrar, el Vector2 con la posición del Hotspot y el modo de cursor. (aquí dejo un buen vídeo sobre métodos en programación y parámetros).

funciones para cambiar la imagen del cursor en unity
Fig. 5: Funciones para cambiar el sprite del cursor en Unity.

Cuándo cambiar el sprite del cursor en Unity

En este caso en particular nos interesa mostrar constantemente un cursor por defecto hasta que el puntero se posiciones encima de un botón, en ese momento queremos mostrar otro cursor distinto para dar feedback de que el usuario puede interactuar con ese elemento. Entonces tenemos que ser capaces de detectar exactanebte cuándo es que ocurren estos eventos y para eso a cada botón le asigno un componente tipo «Event Trigger», definiendo los eventos «On Pointer Enter» y «On Pointer Exit» que se activan cuando el cursor entra en el Target Graphic del GameObject.

A ambos eventos les asignamos el GameObject que tiene el Script con las funciones que queremos ejecutar (estas funciones deben estar definidas como públicas) y luego utilizando el menú desplegable elegimos las funciones a ejecutar en cada evento.

cambiar imagen del cursor al colocar el puntero sobre un boton en unity
Fig. 6: Asignación de las funciones definidas en el Script a los Event Trigger que fueron agregados a los botones.

Scroll al inicio
Secured By miniOrange