一. 鼠标的基本事件(返回Bool值)
1. 按下事件:Input.GetMouseButtonDown()
例:if (Input.GetMouseButtonDown(0))
Debug.Log("按下鼠标左键");
2. 抬起事件:Input.GetMouseButtonUp()
例:if (Input.GetMouseButtonUp(1))
Debug.Log("抬起鼠标右键");
3. 长按事件:Input.GetMouseButton()
例:if (Input.GetMouseButton(2))
Debug.Log("长按鼠标中键");
注:事件参数0、1、2分别代表鼠标左键、右键和中键。
二. 鼠标虚拟轴
下拉菜单设置 Edit → Project Settings → Input
1. 获取鼠标横向(x轴)移动增量
Input.GetAxis(“Mouse x”)
2. 获取鼠标竖向(y轴)移动增量
Input.GetAxis(“Mouse y”)
3.获取鼠标滚轮旋转增量
Input.GetAxis("Mouse ScrollWheel")
三. 按鼠标左键移动对象
void MouseMove()
{
mouseX = Input.GetAxis("Mouse X");
mouseY = Input.GetAxis("Mouse Y");
if (Input.GetMouseButton(0))
{
// 在前面声明移动的方向:Vector3 mouseMoveDirection;
// 在前面声明移动的速度:float velocity;
mouseMoveDirection = new Vector3(mouseX,mouseY,0) * velocity;
mouseObject.Translate(mouseMoveDirection);
}
}
四. 按鼠标右键旋转对象
void MouseRotate()
{
mouseX = Input.GetAxis("Mouse X");
mouseY = Input.GetAxis("Mouse Y");
if (Input.GetMouseButton(1))
{
// 在前面声明旋转大小:float rotate;
mouseObject.transform.Rotate(Vector3.down, mouseX * rotate); // 围绕Y轴旋转
mouseObject.transform.Rotate(Vector3.right, mouseY * rotate); // 围绕X轴旋转
}
}
五. 滚动鼠标滚轮缩放对象
void MouseScale()
{
if (Input.GetAxis("Mouse ScrollWheel") != 0)
{
// 在前面声明缩放比例:float scale;
scale += Input.GetAxis("Mouse ScrollWheel");
mouseObject.transform.localScale = new Vector3(1,1,1)* scale;
}
}
六. 射线检测控制游戏对象
通过射线检测实现鼠标的屏幕2D坐标向空间3D坐标的转换,见下图。
例:鼠标选择对象并拖拽其移动
void MouseRay()
{
Ray ray;
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Input.GetMouseButton(0))
{
RaycastHit hit;
if (Physics.Raycast(ray, out hit)&& hit.transform.tag == "cube")
{
Debug.DrawLine(transform.position, hit.point); // 调试时,在Scene窗口画出射线
hit.transform.GetComponent<Renderer>().material.color = Color.red; // 点击对象,使对象变成红色
obj.transform.position = new Vector3(hit.point.x, hit.point.y, obj.transform.position.z); // 移动对象
}
else
obj.GetComponent<Renderer>().material.color = Color.white; // 点击非对象区域,使对象回复到白色
}
}
老孙课堂:https://ke.qq.com/course/410293?tuin=56cb7596
工程源码1下载:https://download.csdn.net/download/sunbowen63/11139223
工程源码2下载:https://download.csdn.net/download/sunbowen63/11139265