0

我想用鼠标单击 3D 平面。当我这样做时,我希望它返回Vector3我单击的位置。当我使用:

Vector3 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);

然后,它给了我Vector3飞机中心的位置。不是我想要的。我希望它位于我点击的位置。

我正在尝试创建一个Ray( Camera.ScreenPointToRay) 并使用Physics.Raycast,但这只是返回 a bool,而不是它实际命中的位置。

我花了最后 3 个小时阅读其他人的问题......我在这里错过了什么?

4

2 回答 2

0

好吧,你快到了!你需要使用的是Plane.Raycast

编辑

Plane plane = blablabla;
Ray ray = blablabla;
float distance;
Vector3? intersectionPoint = null;
if (plane.Raycast(ray, out distance))
    intersectionPoint = ray.GetPoint(distance);
于 2014-05-16T05:20:17.393 回答
0

这应该对你有帮助……</p>

Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); //Convert mouse position to raycast
RaycastHit hit; //Create a RaycastHit variable to store the hit data into
Vector3 clickedPosition; //Create a vector3 variable to store the clicked position in

if (Input.GetMouseButtonDown (0) && Physics.Raycast (ray, out hit, 1000)) //If the user clicks the left mouse button and we hit an object with our raycast then
{
    clickedPosition = hit.point; //Store the hit position into the clicked position variable
}

就这么简单:)

于 2014-05-17T00:37:30.957 回答