单击迷你地图相机以获取世界空间上的对象

时间:2016-04-22 05:18:17

标签: c# unity3d raycasting

我正在制作迷你地图使用渲染纹理将我的头部凸轮渲染到我的屏幕并使用NGUI 3.9绘制纹理每件事情都很好除了当我试图点击我的迷你地图并试图摧毁一个物体或者在我的游戏楼层上获取主摄像机Raycast渲染的我的世界空间上的点并没有达到一些我不知道我做错了什么 编辑: 我使用Ngui是因为我的游戏中的整个Gui都在Ngui所以我的需要

我已经将我的代码编辑到一个新的aproch,我可以将光线投射到我的地板上,但我的光线位置不准确

这是我的代码

 public void TestWithTextureCoords()
    {
        Camera main = UICamera.mainCamera;

        Camera mapCam = transform.GetComponent<Camera>();

        Ray firstRay = main.ScreenPointToRay(Input.mousePosition);
        Debug.DrawLine(firstRay.origin, firstRay.direction);
        RaycastHit textHit;

        if (Physics.Raycast(firstRay, out textHit, main.farClipPlane))
         {
            var hitPoint =  textHit.point;

            Ray scondRay =   mapCam.ViewportPointToRay(hitPoint);

            RaycastHit worldHit;
            if (Physics.Raycast(scondRay, out worldHit, mapCam.farClipPlane))
             {
                Debug.DrawLine(scondRay.origin, worldHit.point, Color.red);

               Debug.Log(" world hit point " + worldHit.point);
                Debug.Log(worldHit.transform.name, worldHit.transform);
             }
         }


}

请仔细研究一下,让我知道一个解决方法或如何做到这一点可能是我错过了一个小想想我不知道我尝试了不同的方法,但都徒劳无助! / p>

0 个答案:

没有答案