我正在 Unity 2D 中进行一个非常基本的测试。我遇到的问题是,当我的精灵与地面碰撞时,它会不断检查事件,几乎太频繁了,所以精灵一直处于不确定状态。它没有机会离开地面,因为当它进行检查时,它会告诉它转身,导致它快速上下移动。如下图所示:
https://m.youtube.com/watch?v=gPmmLjGe9iQ
我想要的是当接触时精灵需要改变它的 Y 轴方向。请在下面查看我的代码。
void Update () {
hitWall = Physics2D.OverlapCircle(wallCheckUp.position, wallCheckRadius, whatIsWall);
if (hitWall)
{
moveUp = !moveUp;
}
if (moveUp)
{
transform.localScale = new Vector3(-1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2(speed, GetComponent<Rigidbody2D>().velocity.x);
}
else
{
transform.localScale = new Vector3(1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2(-speed, GetComponent<Rigidbody2D>().velocity.x);
}
}
如果需要更多信息,请告诉我。
编辑
为了让我更清楚,请查看我的精灵设置。