107. CLASE EVENT (I)



Tipos de teclas modificadores que pueden estar activos durante un proceso de pulsación de tecla.

Los eventos pueden corresponder a entradas de usuario (teclas presionadas, acción de ratón) o bien ser distribuciones (layers) de unityGUI o eventos de renderizado. Asi como OnGUI es potencialmente llamado multiples veces por frame. Event.current corresponde al actual evento dentro de la llamada a OnGUI.


VARIABLES:

type:

var type : EventType


Variable que indica el tipo de evento. Es de tipo EventType, que es una enumeración que permite los siguientes valores:


MouseDown Un botón del ratón ha sido presionado.
MouseUp Un botón del ratón ha sido liberado.
MouseMove El ratón se ha movido (sólo en vista de edición).
MouseDrag El ratón fue arrastrado.
KeyDown Una tecla del teclado fue presionada.
KeyUp Una tecla del teclado fue liberada.
ScrollWheel La rueda del ratón se movió.
Repaint Un evento de repintado. Se envía uno cada frame.
Layout Un evento de distribución.
DragUpdated Solo en editor: operación de drag & drop actualizada.
DragPerform Sólo en editor: operación de drag & drop realizada.
DragExited Sólo en editor: operacion de drag & drop finalizada.
Ignore el evento debe ser ignorado.
Used Evento ya procesado.
ValidateCommand Valida un comando especial (p.ej. copy & paste)
ExecuteCommand Ejecuta un comando especial (p.ej. copy & paste)
ContextClick El usuario ha hecho click con el botón derecho.


Pongamos un breve ejemplo:


function OnGUI () {
Debug.Log("Current event detected: " + Event.current.type);
}



Este script meramente imprime el evento que está teniendo lugar cada frame. Prueba, tras pulsar play, a hacer click con diferentes botones del ratón, pulsa distintas teclas, mueve el ratón, etc. Luego detén el reproductor y haz click sobre el último mensaje de la consola para que te aparezca el pop up. Verás una lista enorme de eventos que han tenido lugar, la mayoría de repintado y distribución, pero entre ellos estarán los que hayas provocado durante ese tiempo.


mousePosition:

var mousePosition : Vector2


La posición del ratón. Variable usada en los eventos EventType.MouseMove y EventType.MouseDrag.


delta:

var delta : Vector2


El movimiento relativo del ratón comparado con el último evento.


button:

var button : int


Qué botón del ratón ha sido presionado.

Apliquemos un ejemplo:


function OnGUI() {
var miEvento : Event = Event.current;
if(miEvento.button == 0 && miEvento.isMouse){
Debug.Log("Botón izquierdo");
} else if(miEvento.button == 1) {
Debug.Log("Botón derecho");
} else if (miEvento.button == 2) {
Debug.Log("Botón del centro");
}
}


Creamos primero una instancia de la clase Event, que contendrá el evento actual. Si dicho evento es un evento de ratón (isMouse, que estudiaremos de aquí a un momento) y button vale cero (esto es, button vale cero pese a haber un evento de ratón, ya que si no hay evento de ratón button también vale cero, no sé si me estoy explicando)
se imprime un mensaje, y así sucesivamente (con valores de button en uno y dos no hace falta descartar la posibilidad de que no se esté produciendo un evento de ratón por lo anteriormente explicado.


modifiers:

var modifiers : EventModifiers

Qué tecla modificadora está siendo pulsada( ahift, ctrl, alt...)


function OnGUI() {
var miEvento : Event = Event.current;
Debug.Log(miEvento.modifiers);
}


Probad a pulsar las teclas modificadoras y las veréis impresas, a diferencia de las que no tienen esa condición.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

Leave a Reply

Con la tecnología de Blogger.