Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Ratón y panel

Iniciado por Siam, Diciembre 23, 2016, 05:44:03 PM

Tema anterior - Siguiente tema
Tengo una dudilla ¿ se podria saber si el raton esta dentro de un panel o fuera ?. No me refiero a si es hijo o no, si no en el espacio que ocupa si esta sobre el.
 
En este caso no me valdria en event trigger de pointer entery pointer exit, lo que quiero es usarlo de condicion en un if.

Si sacas el Rect de dicho panel y luego utilizas la propiedad Contains creo q te puede servir...
https://docs.unity3d.com/ScriptReference/Rect.Contains.html

Diciembre 24, 2016, 01:32:17 PM #2 Ultima modificación: Diciembre 24, 2016, 03:16:12 PM por Siam
Funciona bien aunque me coge mal las dimensiones. Estando fuera del panel me detecta como si estuviera dentro.
 

Rect rect = new Rect (panelContenedor.GetComponent<RectTransform>().rect.position, panelContenedor.GetComponent<RectTransform>().rect.size);
      if (rect.Contains(Input.mousePosition))
      {
      }

 
Habra que tener en cuenta el tamaño de la pantalla ?

Diciembre 24, 2016, 09:49:27 PM #3 Ultima modificación: Diciembre 24, 2016, 09:54:10 PM por kalua66
Mirate esos videos, tiene un script de drag, que imagino detectara si estas dentro de la ventana, igual te sirve...
https://unity3d.com/es/learn/tutorials/modules/intermediate/live-training-archive/panels-panes-windows

RectTransformUtility.ScreenPointToLocalPointInRectangle

Si estas en OnGUI te conviene no usar Input.mousePosition y usar lo siguiente:
 

if(rect.Contains(Event.current.mousePosition))
...

 
 

Ya funciona perfectamente

Etiquetas: