es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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 coroutine Dashing() 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:

    DashTime = 1.0f; // o cualquier otro valor que desees para la duración del dash
    

    antes de llamar a StartCoroutine(Dashing()) en el método Update().

    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.

Comments are closed.