我使用来自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
添加到平台(播放器)。我做错了什么?
答案 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