/// <summary>
/// 当前视角的摄像机
/// </summary>
public Camera _camPlayer;
/// <summary>
/// 鼠标射线
/// </summary>
private Ray _ray;
/// <summary>
/// 射线碰撞的结构
/// </summary>
private RaycastHit _rayhit;
/// <summary>
/// 鼠标拾取的有效距离
/// </summary>
private float _fDistance = 20f;
void Update()
{
//检测鼠标左键的拾取
if (Input.GetMouseButtonDown(0)) {
//鼠标的屏幕坐标空间位置转射线
_ray = _camPlayer.ScreenPointToRay(Input.mousePosition);
//射线检测,相关检测信息保存到RaycastHit 结构中
if (Physics.Raycast(_ray, out _rayhit, _fDistance)) {
//打印射线碰撞到的对象的名称
print(_rayhit.collider.gameObject.name);
}
}
}

本文详细介绍了在Unity引擎中如何利用鼠标点击进行物体拾取的检测过程,通过射线检测技术,实现从屏幕空间到世界空间的转换,从而精确命中场景中的游戏对象。文中提供了一段关键代码示例,帮助开发者理解并应用到自己的项目中。
最低0.47元/天 解锁文章
8499

被折叠的 条评论
为什么被折叠?



