Exemplo n.º 1
0
    private TipoColision DetectarPersonajeADistancia(Vector2 direccion, int distanciaRayoEnNumeroDeCasillas = 0)
    {
        float distanciaRayoFinal = Ajustes.Instancia.tamanioCasilla;

        if (distanciaRayoEnNumeroDeCasillas > 1)
        {
            distanciaRayoFinal = Ajustes.Instancia.tamanioCasilla * distanciaRayoEnNumeroDeCasillas;
        }

        RaycastHit2D[] colisiones = Physics2D.RaycastAll(transform.position, direccion, distanciaRayoFinal);
        if (colisiones != null && colisiones.Length > 0)
        {
            for (int i = 0; i < colisiones.Length; i++)
            {
                if (colisiones[i].collider.gameObject != gameObject)
                {
                    if (Herramientas.LayerSonIguales(colisiones[i].collider.gameObject.layer, Ajustes.Instancia.layerColision))
                    {
                        return(TipoColision.ObjetoColision);
                    }
                    else if (colisiones[i].collider.gameObject.CompareTag(Ajustes.Instancia.tagPersonaje))
                    {
                        return(TipoColision.Personaje);
                    }
                }
            }
        }
        return(TipoColision.NINGUNO);
    }
Exemplo n.º 2
0
    public TipoColision DetectarColisionesEnfrente(Vector2 direccion)
    {
        Vector2 origenAreaDeteccion = (Vector2)transform.position + (direccion * Ajustes.Instancia.tamanioCasilla);

        Collider2D[] objetoDelante = Physics2D.OverlapBoxAll(origenAreaDeteccion, Ajustes.Instancia.TamanioAreaColisiones, 0);

        if (objetoDelante != null && objetoDelante.Length > 0)
        {
            for (int i = 0; i < objetoDelante.Length; i++)
            {
                if (Herramientas.LayerSonIguales(objetoDelante[i].gameObject.layer, Ajustes.Instancia.layerColision))
                {
                    return(TipoColision.ObjetoColision);
                }
                else if (objetoDelante[i].gameObject.CompareTag(Ajustes.Instancia.tagPersonaje))
                {
                    return(TipoColision.Personaje);
                }
            }
        }
        return(TipoColision.NINGUNO);
    }