Unity使用Ray Raycasting 2D

时间:2017-12-13 14:19:37

标签: c# unity3d 2d raycasting

我想要施放一个简单的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已定义

1 个答案:

答案 0 :(得分:1)

您没有为Debug.DrawRay()和Raycast()提供正确的输入。请查看DrawRay documentationRaycast() 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);