0
你好我正在Unity游戏引擎中做一个小游戏,现在我不能完成它只是为了让我的鼠标的y位置转换到世界y位置。 (请在C#中编程)统一鼠标位置到世界的位置,但只是Y pos
你好我正在Unity游戏引擎中做一个小游戏,现在我不能完成它只是为了让我的鼠标的y位置转换到世界y位置。 (请在C#中编程)统一鼠标位置到世界的位置,但只是Y pos
请记住,鼠标位置是一个2D点,但是你投射到一个3D世界。因此,鼠标的Y坐标取决于世界中位置的Z坐标。换句话说,根据世界空间中的点的深度,高度会有所不同。如果你想在某个深度的位置,你可以这样做:
Vector3 mousePos = Input.mousePosition;
mousePos.z = <depth>;
float y = Camera.main.ScreenToWorldPoint(mousePos).y;
或者你也可以投射出Ray走向世界和使用的第一件事就是它命中的深度采样位置:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
float y = hit.point.y;
}
请注意,这种方法假设Ray会碰到什么东西。