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.

¿Existe alguna manera de agregar 2 comprobaciones de tierra?

¿Hay alguna manera de agregar 2 transformaciones de verificación de suelo que funcionen juntas? Tengo mi verificación de suelo original en el pie delantero del jugador, ya que esto mejora la capacidad de ayudar a saltar sobre plataformas si el jugador solo atrapa el borde de esta. Sin embargo, descubrí que debido a la posición de esta verificación de suelo, si el jugador hace un salto de último minuto de una plataforma a la otra, la verificación de suelo se sale de la plataforma actual y ahora isGrounded = falso y el jugador no puede saltar. Estoy usando:

isGrounded = Physics2D.Linecast(transform.position, groundCheck.position, whatIsGround);

Esta declaración permite 5 sobrecargas, pero no estoy seguro de cómo hacerlo. Pensé en simplemente agregar esta declaración nuevamente al código con una verificación de suelo diferente. Sin embargo, si es posible, me gustaría mantenerlas juntas. No pude encontrar ningún documento que describa cómo hacer esto o cómo se vería añadir una sobrecarga.

¡Gracias de antemano y disfruta el resto de tus vacaciones!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible agregar 2 transformadas de verificación de suelo que funcionen juntas. Una forma de hacer esto es crear un objeto vacío como padre y adjuntar ambas transformadas de verificación de suelo como objetos secundarios debajo del objeto padre. Luego, puedes usar la transformación transform.position del objeto padre como punto de origen para la línea de colisión en lugar de usar las posiciones individuales de las transformadas de verificación de suelo.

    El código se vería así:

    isGrounded = Physics2D.Linecast(parentTransform.position, parentTransform.TransformPoint(groundCheck1.localPosition), whatIsGround) || Physics2D.Linecast(parentTransform.position, parentTransform.TransformPoint(groundCheck2.localPosition), whatIsGround);

    Aquí, parentTransform es una referencia a la transformación del objeto padre, groundCheck1 y groundCheck2 son referencias a las dos transformadas de verificación de suelo secundarias, y whatIsGround es la máscara de capa para los objetos de suelo. Al usar TransformPoint, podemos convertir las posiciones locales de las transformadas de suelo secundarias a posiciones globales relativas al objeto padre.

    De esta manera, ambas transformadas de verificación de suelo se verificarán en busca de contacto con el suelo y el jugador podrá saltar incluso si hace un salto de último minuto de una plataforma a la otra.

Comments are closed.