Ray playerRay;//射线
RaycastHit playerHit;//射线碰撞信息
Vector3 targetPos;//定义鼠标点击位置
int mapTargetMask;//定义碰撞层级参数
void Start () {
//获取地图层级并转换为int
mapTargetMask = LayerMask.GetMask("map");
}
void playerClick()
{
//获取鼠标点击,参数 0 为左键,参数 1 为右键,按下返回true
if (Input.GetMouseButtonDown(1))
{
//设置射线为从主相机中某一点发射(参数为发射位置)
playerRay = Camera.main.ScreenPointToRay(Input.mousePosition);
//发射一条射线,参数为:射线,返回的射线碰撞信息,射线长度,碰撞层级
if (Physics.Raycast(playerRay, out playerHit, 20f, mapTargetMask))
{
isMove = true;
//获取鼠标点击点,playerHit.point为playerHit所存储的坐标
targetPos = playerHit.point;
}
else
{
isMove = false;
}
clickKeyF = false;
}
}
适用于鼠标点击地面获取点击坐标