在Unity中使用光线投射进行碰撞检测



这个问题听起来很简单。在2D Unity游戏中,我尝试使用光线投射来确定玩家是否在地面上。我的代码是:

RaycastHit2D hit = Physics2D.Raycast(transform.position, -Vector2.up, 40, World);
if (hit.collider != null)
{
print("touching");
}

我在上面也有一个public LayerMask World;和图层"World"设置在我想要检测碰撞的对象上。我对这个很陌生,所以我不确定为什么光线投射不工作。

取消勾选"查询从collider"在设置中解决了这个问题。