как отобразить луч рейкаста в юнити 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;
}
}