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
C# 为什么Unity中的raycast没有';靠近物体时不工作?_C#_Unity3d_Raycasting - Fatal编程技术网

C# 为什么Unity中的raycast没有';靠近物体时不工作?

C# 为什么Unity中的raycast没有';靠近物体时不工作?,c#,unity3d,raycasting,C#,Unity3d,Raycasting,我想知道是什么导致了这种情况。我正在从相机(在我用鼠标移动的对象上)向托盘进行光线投射。当托盘足够靠近时,光线变成红色,这意味着它们击中了什么东西。我的任务是检查相机和托盘之间是否有东西。请给我解释一下它是如何工作的 我的部分代码: bool[] hits = new bool[aug_pts.Count]; for (int i = 0; i < aug_pts.Count; i++) { RaycastHit hitInfo;

我想知道是什么导致了这种情况。我正在从相机(在我用鼠标移动的对象上)向托盘进行光线投射。当托盘足够靠近时,光线变成红色,这意味着它们击中了什么东西。我的任务是检查相机和托盘之间是否有东西。请给我解释一下它是如何工作的

我的部分代码:

bool[] hits = new bool[aug_pts.Count];
        for (int i = 0; i < aug_pts.Count; i++)
        {
            RaycastHit hitInfo;
            bool hit;
            float distance = Vector3.Distance(this.transform.position, aug_pts[i]);

            Vector3 direction = aug_pts[i] - this.transform.position;
            hit = Physics.Raycast(this.transform.position, direction, out hitInfo, distance);

            if (hit && hitInfo.collider.name != "wood_pal") 
            {
                Debug.DrawLine(this.transform.position, aug_pts[i], Color.red);
                hits[i] = true;
            }
            else
            {
                hits[i] = false;
                Debug.DrawLine(this.transform.position, aug_pts[i], Color.green);
            }
        }
bool[]hits=新bool[aug_pts.Count];
对于(int i=0;i

谢谢。我发现了一个问题。我的问题将结束。光线击中了一个物体,这是用相机拍摄的。需要纠正的是:

if(hit && hitInfo.collider.name != "wood_pal" && hitInfo.collider.name != "my_object")
{
...
}