как отобразить луч рейкаста в юнити 2д

есть у меня такой код на движения персонажа, очень хороший но с 1 изъяном.

я не знаю как правильно отобразить мой блок рейкаст (чтобы он еще менял цвет если сработало условие), а также периодически срабатывает баг, что я могу прыгнуть от стенки когда лечу на нее

{
    private Rigidbody2D rb;
    private BoxCollider2D bc;

    private float X;
    [Range(0, 100)]
    public float speed = 10;
    [Range(0, 100)]
    public float jumpForce = 20;
    public LayerMask Ground;

    private void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
        bc = GetComponent<BoxCollider2D>();
    }

    public void Update()
    {
        // движение влево/вправо
        X = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(X*speed,rb.velocity.y);

        // повороты персонажа
        if (X > .01f)
            transform.localScale = Vector3.one;
        else if (X < -.01f)
            transform.localScale = new Vector3(-1, 1, 1);

        // прыжок
        if (Input.GetKey(KeyCode.Space) && IsGrounded())
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
    
        
    }

    public bool IsGrounded()
    { 
        RaycastHit2D raycastHit = Physics2D.BoxCast(bc.bounds.center - new Vector3(0, bc.bounds.size.y / 2, 0), new Vector2(bc.bounds.size.x - .25f, 1.25f), 0, Vector2.down, 0.1f, Ground);
        return raycastHit.collider != null;
    }
}

Ответы (0 шт):