鼠标控制人物的rotation
通常用于fps
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
public GameObject target;
float x, y;
float angleX, angleY;
void Update()
{
x = Input.GetAxis("Mouse X");
y = Input.GetAxis("Mouse Y");
else
{
x = 0;
y = 0;
}
//显示方便而已
angleX += x;
angleX = angleX > 360 ? angleX -= 360 : angleX;
angleX = angleX < -360 ? angleX += 360 : angleX;
angleX = Mathf.Clamp(angleX, -360, 360);
angleY += y;
angleY = angleY > 360 ? angleY -= 360 : angleY;
angleY = angleY < -360 ? angleY += 360 : angleY;
angleY = Mathf.Clamp(angleY, -360, 360);
}
private void LateUpdate()
{
if (Input.GetMouseButton(0))
{
Quaternion xQ = Quaternion.AngleAxis(angleX, Vector3.up);
Quaternion yQ = Quaternion.AngleAxis(angleY, Vector3.left);
target.transform.rotation = xQ * yQ;
}
}
}
本文介绍了一种使用Unity实现的第一人称视角(FPS)中,通过鼠标输入控制角色旋转的方法。利用Input.GetAxis获取鼠标水平和垂直轴的输入,并通过Quaternion.AngleAxis函数调整角色的旋转角度,确保了玩家在游戏中的视角平滑且精确地跟随鼠标移动。
2万+

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



