在鼠标移动时绘制线条并检测Unity2D和Unity3D中的线路碰撞

时间:2014-12-15 07:06:57

标签: android unity3d collision-detection

我使用来自http://www.theappguruz.com/tutorial/draw-line-mouse-move-detect-line-collision-unity2d-unity3d/的线路碰撞代码,它正常工作。它会检测线路何时与自身发生碰撞,但我需要检查与其他物体的碰撞(比方说平台)。我在脚本中添加了这个函数:

private bool isLineCollidedWithOtherObject()
{
    RaycastHit hit;
    Ray ray = Camera.main.ScreenPointToRay(Camera.main.WorldToScreenPoint(pointsList[pointsList.Count-1]));
    if(Physics.Raycast(ray,out hit))
    {
          if(hit.collider)
          return true;
    }
    return false;
}

并在检查碰撞时添加

if(isLineCollide() && isLineCollidedWithOtherObject());

但它不起作用。我将Box2dcollider添加到平台(播放器)。我做错了什么?

1 个答案:

答案 0 :(得分:0)

看看这个帖子,特别是开发者关于在二维精灵游戏中从三维空间中的摄像头进行光线投射的链接帖子:

http://forum.unity3d.com/threads/unity-2d-raycast-from-mouse-to-screen.211708/#post-1424457

上述功能的文档在这里:http://docs.unity3d.com/ScriptReference/Physics2D.GetRayIntersection.html