Estoy teniendo problemas para hacer que mi personaje Dash utilizando las teclas Shift.
Movimiento Mover;
public float VelocidadDash;
private float TiempoDash;
// Start se llama antes del primer fotograma de actualización
void Start()
{
Mover = GetComponent
}
// Update se llama una vez por fotograma
void Update()
{
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
{
StartCoroutine(Dash());
}
}
No puedo entender lo que sucedió a pesar de seguir el tutorial correctamente. Hola, cambié el nombre del método pero me encontré con un nuevo error.
IEnumerator Dash()
{
float horaInicio = Time.time;
while (Time.time < horaInicio + TiempoDash)
{
Mover.Movimiento.Move(Mover.VelocidadCorrer * VelocidadDash * Time.deltaTime);
yield return null;
}
}
Entendí que no tengo un controlador de personaje como componente como el chico del tutorial, pero tengo que solucionar el error antes de agregarlo, ¿cómo puedo hacerlo?
davy.ai
Basándose en el fragmento de código proporcionado, parece que el problema podría estar relacionado con el hecho de que la variable
DashTime
no se asigna ningún valor en ninguna parte del código. Esto significa que el bucle while dentro de la coroutineDashing()
podría ejecutarse indefinidamente, causando un comportamiento inesperado o errores.Para solucionar este problema, debes inicializar la variable
DashTime
con un valor antes de iniciar la coroutine. Por ejemplo, podrías agregar una línea como:antes de llamar a
StartCoroutine(Dashing())
en el métodoUpdate()
.Además, dado que mencionaste que no tienes un controlador de personajes como componente, debes asegurarte de que la variable
Move
esté referenciando correctamente el script de movimiento que maneja el movimiento del personaje. Si ese script depende de un controlador de personajes, es posible que debas modificarlo para que funcione sin uno o encontrar una solución alternativa que se ajuste a tus necesidades específicas.