Unity相机的位置向鼠标发射一个射线
时间: 2024-09-15 20:04:49 浏览: 61
Unity 拖动相机跟随鼠标(手指)移动(例如移动小地图)
5星 · 资源好评率100%
在Unity中,要让相机位置跟随鼠标并发射射线,通常会结合使用Camera.main(获取当前活跃相机)、Raycast函数以及MousePosition属性。以下是一个简单的步骤描述:
1. 创建一个新的C#脚本,将其附加到相机上。
2. 在Update()函数中,获取鼠标当前位置(World空间坐标),这可以通过`Vector3 mousePos = Camera.main.ScreenPointToRay(Input.mousePosition)`获得。
3. 使用Raycast函数,传入鼠标位置和一个合适的层mask,来检查是否有障碍物或目标,例如` RaycastHit hit;`。
4. 检查是否找到碰撞,如果`Physics.Raycast(mousePos, Vector3.forward, out hit)`返回true,说明有碰撞。
示例代码:
```csharp
void Update()
{
Vector3 mousePos = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(mousePos, Vector3.forward, out hit))
{
// 根据hit信息做出相应反应,比如显示提示或者触发事件
Debug.Log("Clicked at position: " + hit.point);
}
}
```
阅读全文