float
mouseX
=
Input
.
GetAxis
(
"Mouse X"
)
;
float
mouseY
=
Input
.
GetAxis
(
"Mouse Y"
)
;
unity,鼠标获取屏幕移动,用于fps游戏视角,左右移动旋转,上下移动抬头低头
首先,我们需要获取鼠标在屏幕上的移动量。
在Unity中,可以使用Input.GetAxis("Mouse X")获取鼠标在水平方向上的移动量,
使用Input.GetAxis("Mouse Y")获取鼠标在垂直方向上的移动量。
然后,我们需要将鼠标移动量转换为视角旋转和抬头低头的角度。
可以使用Transform.Rotate方法来实现视角的旋转,
使用Transform.localEulerAngles来修改物体的本地欧拉角,从而实现抬头低头的效果。
public float sensitivity = 100f;
public Transform playerBody;
float xRotation = 0f;
void Update()
float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
playerBody.Rotate(Vector3.up * mouseX);
// 将物体的位置设置为鼠标位置
transform.position = new Vector3(mousePosition.x, mousePosition.y, transform.position.z);
上述代码会在每一帧更新物体的位置,使其跟随鼠标移动。具体而言,它首先获取鼠标在屏幕上的位置,然后将其转换为世界坐标系中的位置。最后,将物体的位置设置为鼠标位置,但保持它原来的 z 坐标值不变。