99. CLASE INPUT (I)




Es la interfaz que controla todo el sistema de entradas (inputs) de Unity. Esta clase se usa, por ejemplo, para leer la configuración de ejes en el input Manager.

Para leer un eje usaríamos Input.GetAxis con uno de los ejes por defecto: “Horizontal” y “Vertical” están configurados para joystick, así como A,W,S,D, y las teclas de flecha. “MouseX” y “Mouse Y” están configurados para el movimiento del ratón. Por su parte “Fire1", "Fire2" y "Fire3" están configurados para Ctrl, Alt y tres botones de ratón o joystick. Pueden añadirse nuevos ejes de entrada en el Input Manager.

Si hemos se usar inputs para cualquier tipo de comportamiento que entrañe movimiento, es aconsejable usar Input.GetAxis. Esto nos dará una entrada más suave y configurable que puede servir para teclado, joystick o mouse. En cambio es mejor usar Input.GetButton para acciones como eventos, mejor que para movimientos.

Las llamadas a inputs se deben hacer dentro de la función update.


VARIABLES DE CLASE:

mousePosition:

static var mousePosition : Vector3


Variable de sólo lectura que indica la posición actual del ratón en coordenadas de píxeles, donde la esquina inferior izquierda de la pantalla o ventana está en (0, 0) y la superior derecha en (Screen.width, Screen.height).

Podemos probarlo con un ejemplo sencillo, para el cual eliminamos el script vinculado a la esfera, y reeditamos MiPrimerScript como sigue:


function Update(){
var apunten : Vector3 = Input.mousePosition;
Debug.Log(apunten);
}


Salvamos y arrastramos hasta PortaScripts. Meramente se nos imprimirá en pantalla la posición exacta en píxeles de nuestro cursor. Podemos observar que la esquina inferior izquierda se mueve en parámetros del 0,0.


anyKey:

static var anyKey : boolean


Booleano de sólo lectura que comprueba si hay alguna tecla o botón del ratón apretada en ese momento.

Podemos modificar nuestro script anterior para ilustrar esta variable:


function Update(){
if(Input.anyKey){
Debug.Log("Se ha pulsado una tecla o botón");
}
}


No tenemos más que apretar cualquier tecla o botón del ratón para ver el mensaje impreso.


anyKeyDown:

static var anyKeyDown : boolean


Variable de sólo lectura que devuelve true el primer frame en que el usuario golpea cualquier tecla o botón del ratón. Debemos colocar esta variable dentro de la función update, ya que el estado de la misma se resetea cada frame. No devolverá true de nuevo hasta que el usuario libere todas las teclas/botones y presione alguna tecla/botón otra vez.

Para entender gráficamente la diferencia entre la variable anterior y la siguiente vamos a hacer una cosa: volvemos a darle al play (sigue en vigor el ejemplo anterior) y hacemos un click con un botón del ratón. Automáticamente nos aparece el mensaje impreso bajo la ventana del juego. Hacemos un click ahora sobre dicho mensaje, para que nos aparezca el popup de la consola, tal como muestra la captura:



Vale. Ahora, sin retirar dicho popup, presionamos sin soltar el botón del mouse sobre la ventana Game. Vemos que se imprime de manera continuada el mensaje (una por cada frame que mantenemos pulsado el botón del ratón).

Y ahora sustituimos en el script la variable "anyKey" por "anyKeyDown", y repetimos los pasos anteriorer. Comprobaremos que aunque mantengamos el botón del ratón presionado, el mensaje sólo se imprime el primer frame que lo pulsamos, y no se vuelve a imprimir hasta que lo soltamos y lo volvemos a apretar.


inputString:

static var inputString : String


Variable de sólo lectura que devuelve la entrada de teclado introducida este frame. La misma sólo puede contener caracteres ASCII o un par de caracteres especiales que deben ser manejados: el carácter “\b” significa retroceso y “\n” representa return o enter.


acceleration:

static var acceleration : Vector3


Ultima medicion de aceleración lineal de un dispositimo en espacio tridimensional. Sólo lectura

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

Leave a Reply

Con la tecnología de Blogger.