offsetmicrobe43 0 Report post Posted Tuesday at 07:42 PM (edited) 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 Tuesday at 07:46 PM by offsetmicrobe43 Share this post Link to post Share on other sites
Bydark 10 Report post Posted Wednesday at 12:00 AM 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
offsetmicrobe43 0 Report post Posted Wednesday at 01:48 AM 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
Bydark 10 Report post Posted Wednesday at 02:19 AM 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. 1 Share this post Link to post Share on other sites
Igor 340 Report post Posted Wednesday at 08:43 AM (edited) 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 Wednesday at 08:43 AM by Igor 1 Share this post Link to post Share on other sites
AngelFG 15 Report post Posted Wednesday at 09:37 PM 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. Share this post Link to post Share on other sites