Physics2D.Raycast的问题

时间:2015-03-08 10:13:20

标签: c# unity3d

在制作2D平台游戏的基础教程中,我得到了一些代码:

if (Physics2D.Raycast(ray, out hit, Mathf.Infinity, collisionMask))

但是Unity说你需要Vector2而不是Rayout hit。有没有办法可以用Vector代替相同的值并产生相同的效果?

如果您需要,请点击ray代码:

ray = new Ray2D(new Vector2(x,y), new Vector2(x,dir));

代码现在正在编译,但它实际上没有工作(它应该模拟重力,所以角色会一直掉到地面上)但它只是落地了。

PlayerPhysics.cs
PlayerController.cs

在Unity中,角色有一个Box Collider 2D,它正确设置并且脚本都已连接,并且平台正确设置了Box Collider 2D。

1 个答案:

答案 0 :(得分:1)

您的ray来源方向组件(两者都是向量),请尝试以下操作:

var hit = Physics2D.Raycast(ray.origin, ray.direction, Mathf.Infinity, collisionMask));