Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Null en Noviembre 08, 2016, 09:23:53 PM

Título: [Duda] KeyCode
Publicado por: Null en Noviembre 08, 2016, 09:23:53 PM
Duda rápida...
 
Qué es más conveniente? 

Usar:
 

if (Input.GetKey(KeyCode.A)) {
 
}

 
o usar:
 

if (Input.GetKey("A")) {
}

 
?

Existe alguna diferencia más allá de la sintaxis?

Por cierto, hola!
Título: [Duda] KeyCode
Publicado por: iRobb en Noviembre 08, 2016, 11:34:17 PM
En el caso de "A" no veo diferencia. En el caso de códigos no alfanuméricos (símbolos y teclas especiales) sería más complicado como código en string debido a las conversiones. Por tanto yo creo que tienen incorporado todo el apartado alfanumérico por coherencia al tener el resto de símbolos.
Título: [Duda] KeyCode
Publicado por: KevinLastra en Noviembre 10, 2016, 09:14:46 PM
osea para algo basico alfabatico como letra de teclado sirve el segundo pero al momento de hacer algo mas complejo o de usar numeros ya no te sirve el segundo si no mas el primero.
Título: [Duda] KeyCode
Publicado por: pioj en Noviembre 10, 2016, 09:41:11 PM
Lo más conveniente es usar botones y ejes previamente definidos desde el Input Manager, para organizarse mejor. 
 
Siempre he considerado una práctica errónea el poner valores literalmente, dentro de código...
Título: [Duda] KeyCode
Publicado por: lightbug en Noviembre 14, 2016, 09:55:16 PM
A mi entender es como dice Pioj, cuando recien arrancas uno tiende a definir al boleo que usa, pero si terminas un juego y queres que el jugador elija sus entradas te conviene determinar todo lo que vas a usar en las opciones del proyecto (Input). Por ejemplo los ejes del mouse ya estan ingresados en Input, el famoso Fire1 que creo que es el click izq, Jump y demas.
 
Pd: yo uso el "KeyCode.A" de las opciones que pusiste
 
 
Título: [Duda] KeyCode
Publicado por: kingtrase en Noviembre 14, 2016, 10:45:47 PM
haz lo que @pioj dice, pero si lo quieres hacer a tu manera lo mas eficiente es 'KeyCode.A' ya que es un Enum dentro del namespace UnityEngine, y sera compilado, si lo haces por el segundo metodo lo estas haciendo via string ->
 

if (Input.GetKey("A"))

 
, y eso genera gasto en memoria, seria todavia mejor usarlo via char->
 

if (Input.GetKey('A')) //use comillas simples

 
Un Saludo.
Título: [Duda] KeyCode
Publicado por: Null en Noviembre 15, 2016, 06:33:21 PM
Muchas gracias a todos!

Tendré en cuenta usar KeyCode.