​ 采用三射线的方法,即在角色的左右和中间添加三个射线,判断是否接触到地面

​ 三条射线只要有一条返回true即isGround = true

public Transform[] groundChecks = new Transform[3];
private void GroundCheck()
{
for (int i = 0; i < 3; ++i)
{
RaycastHit2D checkResult = Physics2D.Linecast(transform.position, groundChecks[i].position
, groundLayer);
isOnGround = checkResult;
if (isOnGround) break;
}
}

​ 需要在player上添加三个空object以获取射线的终点,接着分别判断从transform.position到三个点的中途是否触碰到了地面图层,如有一个返回true则break