Jump to content
offsetmicrobe43

ayuda con codigo

Recommended Posts

soy novato y no entiendo bien, quiero asignar 2 funciones diferentes a una misma tecla.

ya puse que el "space" sea para saltar pero,como hago que al mantenerla pulsada te haga otra funcion?

 la tengo puesta por ahora con ctrl.

 

y perdonen si no me explique bien

Edited by offsetmicrobe43

Share this post


Link to post
Share on other sites

Si no me equivoco, esa lógica no es muy acertada, a no ser que quieras saltar cada vez que mantengas presionada la tecla "space".

Quiero decir, si quieres realizar la segunda función de la tecla "space" (la que se activa cuando la mantienes pulsada) sin saltar será imposible.

En el caso de que así sea la mecánica de tu juego (salto y luego segunda función de la tecla "space") me parece correcto, sólo te lo decía por si no habías contemplado la posibilidad.

 

Respecto a cómo hacerlo en código, nunca he hecho algo así, pero imagino que una de las formas de hacerlo es crear un cronómetro (lo puedes buscar como StartTime en la documentación de Unity) cuándo pulsas la tecla "space", cuándo el cronómetro llegue al valor que tú quieras entonces podrá entrar en la segunda función. No olvides poner el cronómetro a 0 una vez que hayas realizado la segunda función, sino nunca volverá a entrar. 

 

Share this post


Link to post
Share on other sites
1 hour ago, Bydark said:

Si no me equivoco, esa lógica no es muy acertada, a no ser que quieras saltar cada vez que mantengas presionada la tecla "space".

Quiero decir, si quieres realizar la segunda función de la tecla "space" (la que se activa cuando la mantienes pulsada) sin saltar será imposible.

En el caso de que así sea la mecánica de tu juego (salto y luego segunda función de la tecla "space") me parece correcto, sólo te lo decía por si no habías contemplado la posibilidad.

 

Respecto a cómo hacerlo en código, nunca he hecho algo así, pero imagino que una de las formas de hacerlo es crear un cronómetro (lo puedes buscar como StartTime en la documentación de Unity) cuándo pulsas la tecla "space", cuándo el cronómetro llegue al valor que tú quieras entonces podrá entrar en la segunda función. No olvides poner el cronómetro a 0 una vez que hayas realizado la segunda función, sino nunca volverá a entrar. 

 

lo que quiero hacer es que presiones para saltar, pero si mantienes pulsado espacio comienzes a elevarte.

Share this post


Link to post
Share on other sites
29 minutes ago, offsetmicrobe43 said:

lo que quiero hacer es que presiones para saltar, pero si mantienes pulsado espacio comienzes a elevarte.

Sin ver cómo tienes montado tu código es un poco jugar a la lotería, pero te sugiero que pruebes con Input.GetKey, este te devuelve True mientras la tecla esté pulsada, si estás usando Input.GetKeyDown prueba a cambiarlo por lo que te digo, y si puedes, enséñanos tu código y será más fácil.

  • Thanks 1

Share this post


Link to post
Share on other sites

puedes usar un float para contar el tiempo que mantubiste la tecla pulsada, y si estubo pulsada menos de 0.25f segundos, saltas, pero si estubo pulsada mas, pues haces la orra accion.

tendrias que contar el tiempe entre el "down" y el "up" de la tecla

Edited by Igor
  • Thanks 1

Share this post


Link to post
Share on other sites

Buenas.

No sé si te valdrá...yo para los controles hago uso de los ejes virtuales de Unity.

Dichos ejes se mueven entre valores -1 y 1 y poseen dos parámetros que puedes ajustar y que indican cuan lento o rápido pasas de 0-1 o de 1-0 (y con el negativo).

Podrías controlar con un IF si el valor llega a 1. En ese caso (según el ajuste que tengas) ya llevarás un tiempo pulsada la tecla y podrías poner el código que quisieras en ese caso.

Te paso un enlace del manual que he hecho para Unity por si te sirve de algo: https://wiki.cifprodolfoucha.es/index.php?title=Unity_Gestión_Dispositivos_de_Entrada#Entrada_est.C3.A1ndar

La propiedad es Sensitivity y ya tienes un eje llamado Jump configurado para hacer uso de la barra espaciadora.

  • Thanks 1

Share this post


Link to post
Share on other sites

Buen día señores,

Aplique una solución a otro problema pero creo q podría ser útil aquí, (para que tengas de donde escoger) 

Cuando se presione la tecla puedes empezar a acumular time.deltatime en una variable, y cuando el tiempo que quieras se cumpla entonces entras con un "if" a la función que quieras que se ejecute.

 

Saludos a todos.

  • Thanks 1

Share this post


Link to post
Share on other sites

×
×
  • Create New...