Unity Raycasting 2D 与光线

Unity Raycasting 2D with Ray

我想投射一个简单的 Ray,但是如果我把我的 Ray 投射到 Raycast 函数中,Unity 一直坚持使用 Vector2 作为原点接受光线的来源和方向。所以在代码中演示:

void Start()
{
    RayUp = new Ray2D(transform.position, Vector2.up);
}


void Update()
{
    Physics2D.Raycast(RayUp, out WallUp, distance, WallFilter);
    Debug.DrawRay(RayUp);
}

我错过了什么吗? WallUp、distance 和 WallFilter 已定义

您没有为 Debug.DrawRay() 和 Raycast() 提供正确的输入。请看一下DrawRay documentation and Raycast() documentation。 您至少可以做到:

Physics2D.Raycast(transform.position, Vector2.up); Debug.DrawRay(transform.position, Vector2.up);

如果您想保持原始 RayUp 变量的一致性,您可以这样做:

Physics2D.Raycast(RayUp.origin, RayUp.direction); Debug.DrawRay(RayUp.origin, RayUp.direction);