Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas en C# (videojuego en Unity)

Iniciado por lcb, 05 de Diciembre de 2024, 04:42:25 PM

« anterior - próximo »

lcb

Hola, estoy trabajando en un videojuego en Unity por primera vez, todo funcionaba correctamente hasta que de la nada comenzaron a saltar muchos errores. El juego es una carrera de obstáculos, un runner, hasta que en ciertos puntos hay muros que, para atravesarlos se debe completar una secuencia de pasos (syncro). Para avanzar en la pista, debes presionar repetidas veces la tecla W (no se puede avanzar al mantenerla apretada), lo cual va incrementado la velocidad de forma progresiva. Al colisionar con obstáculos, estos deben disminuir tu velocidad al igual que al dejar de presionar la tecla "W". El movimiento del personaje debe ser fluido, sin saltos aunque se esté presionando repetidas veces una tecla.

Siempre que parece que avanzo y está todo funcionando, la consola me notifica de errores en los scripts que controlan el sincro (SimonSaysController) y el movimiento del jugador en la pista (Runner). Necesito por favor ayuda para resolverlo antes del sabado, muchas graciasss.

Comparto mi Discord y mi IG para que me puedan contactar. Discord: anitapaz_93843 Instagram: anapazpari

Tambien el link a mi repositorio (el editor que estoy usando de Unity es 6.21f1) https://github.com/anapazparietti/TEP

tawaycultivat

#1
Cita de: lcb en 05 de Diciembre de 2024, 04:42:25 PMHola, estoy trabajando en un videojuego en Unity por primera vez, todo funcionaba correctamente hasta que de la nada comenzaron a saltar muchos errores. El juego es una carrera de obstáculos, un runner, hasta que en ciertos puntos hay muros que, para atravesarlos se debe completar una secuencia de pasos (syncro). In Escape Road, a delightful mix of racing and puzzle elements, players' goal is to remain alive in their automobiles for an extended period of time. Para avanzar en la pista, debes presionar repetidas veces la tecla W (no se puede avanzar al mantenerla apretada), lo cual va incrementado la velocidad de forma progresiva. Al colisionar con obstáculos, estos deben disminuir tu velocidad al igual que al dejar de presionar la tecla "W". El movimiento del personaje debe ser fluido, sin saltos aunque se esté presionando repetidas veces una tecla.

Siempre que parece que avanzo y está todo funcionando, la consola me notifica de errores en los scripts que controlan el sincro (SimonSaysController) y el movimiento del jugador en la pista (Runner). Necesito por favor ayuda para resolverlo antes del sabado, muchas graciasss.

Comparto mi Discord y mi IG para que me puedan contactar. Discord: anitapaz_93843 Instagram: anapazpari

Tambien el link a mi repositorio (el editor que estoy usando de Unity es 6.21f1) https://github.com/anapazparietti/TEP Escape Road
¡Hola! Entiendo la frustración que puede generar encontrar errores inesperados, especialmente en un proyecto nuevo. Te sugiero revisar bien la lógica de las colisiones y el manejo de la velocidad en el script de movimiento, podría haber un conflicto entre las entradas de teclado y las interacciones con los obstáculos. Seguro que con algunos ajustes en el control de los eventos de colisión y el manejo de las teclas se soluciona el problema. ¡Ánimo y suerte!

williamwill009

¡Hola Anita! Estuve mirando tu repo por encima y lo primero que te diría es que revises bien el script de SimonSaysController, parece que ahí es donde empiezan los errores de sincronización. A veces Unity se queja si hay corutinas mal cerradas o llamadas fuera de fase. También en el Runner.cs, fijate si estás aplicando la fuerza en Update() en lugar de FixedUpdate() — eso suele causar movimiento a saltos.

Otra cosa: si estás usando Input.GetKeyDown("W") para avanzar, tal vez te convenga un sistema de cooldown mínimo entre pulsaciones para suavizar el input y evitar bugs cuando se presiona muy rápido.

Suerte con el proyecto, ¡se ve muy original!