Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d RaycastHit2D并不总是检测到命中_Unity3d_Raycasting - Fatal编程技术网

Unity3d RaycastHit2D并不总是检测到命中

Unity3d RaycastHit2D并不总是检测到命中,unity3d,raycasting,Unity3d,Raycasting,我正在学习Unity游戏开发,我无法正确修复敌人的AI。我的游戏是一个简单的自上而下的射击游戏,我不希望我的敌人互相重叠。我决定在敌人面前投射一道光线,检查是否有障碍物(另一个敌人) 敌人有一个刚体和盒子对撞机。它们在正确的方向上投射光线(由Debug.Drawray()检查),但它们在站在相同的位置之前不会检测到任何命中。(即,他们正在移动到我的位置,一旦他们停止,就会检测到击中) 我想知道我做错了什么,在过去的几天里我不能让它正常工作。也许有人知道什么地方可能出了问题 来自单个敌方管理者的代

我正在学习Unity游戏开发,我无法正确修复敌人的AI。我的游戏是一个简单的自上而下的射击游戏,我不希望我的敌人互相重叠。我决定在敌人面前投射一道光线,检查是否有障碍物(另一个敌人)

敌人有一个刚体和盒子对撞机。它们在正确的方向上投射光线(由Debug.Drawray()检查),但它们在站在相同的位置之前不会检测到任何命中。(即,他们正在移动到我的位置,一旦他们停止,就会检测到击中)

我想知道我做错了什么,在过去的几天里我不能让它正常工作。也许有人知道什么地方可能出了问题

来自单个敌方管理者的代码:

        Vector2 startPos = transform.position;
    Vector2 endPos = transform.right * 10; // transform right as they are rotated by 90 degrees to the right. 
    Debug.DrawRay(startPos, endPos);
    RaycastHit2D hit = Physics2D.Raycast(startPos, endPos, 10f);
    if (hit && hit.collider.gameObject != gameObject)
    {
        Debug.Log(hit.transform.name + " was hit");
    }

更新

只需在项目设置“查询在碰撞器中启动”中取消选中即可找到解决方案

转到编辑->项目设置->物理2D->取消选中“在碰撞器中开始查询”