Unity 从屏幕发射一条射线
时间: 2023-08-22 16:03:34 浏览: 326
NatCorder1.8.0.zip
在Unity中,可以使用Camera类的ScreenPointToRay方法从屏幕发射一条射线。
示例代码如下:
```csharp
// 获取相机对象
Camera mainCamera = Camera.main;
// 获取鼠标在屏幕上的位置
Vector3 mousePosition = Input.mousePosition;
// 将屏幕坐标转换为射线
Ray ray = mainCamera.ScreenPointToRay(mousePosition);
```
其中,`Input.mousePosition`表示获取当前鼠标在屏幕上的位置,`Camera.main`表示获取主摄像机对象。转换之后,`ray`即为从屏幕发射出的射线。在实际应用中,可以使用Physics.Raycast方法来检测射线与物体的碰撞情况,例如:
```csharp
if (Physics.Raycast(ray, out RaycastHit hitInfo))
{
// 碰撞到物体了
Debug.Log("Hit object: " + hitInfo.collider.name);
}
```
其中,`Physics.Raycast`方法表示发射射线并检测碰撞情况,`out RaycastHit hitInfo`表示输出碰撞信息,如果返回值为true,则表示射线与物体发生了碰撞。在这个例子中,我们输出了碰撞到的物体的名称。
阅读全文