【发布时间】:2021-05-06 04:34:31
【问题描述】:
我是 Unity 脚本的新手,我正在尝试制作一个 ThirdPersonCamera,所以跟随 this tutorial 他可以上下左右正确移动鼠标
使用的脚本是
posY += Input.GetAxis("Mouse X") * mouseSensitivity;
posX -= Input.GetAxis("Mouse Y") * mouseSensitivity;
// mouseSensitivity can be changed
Vector3 targetRotation = new Vector3(posX, posY);
transform.eulerAngles = targetRotation;
由于新的输入系统,使用Input.GetAxis("Mouse X") 会引发InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings 错误。
所以我尝试使用
private PlayerInputMovement inputCamera;
void Awake(){
inputCamera = new PlayerInputMovement();
inputCamera.Player.Camera.performed += context => cameraInput = context.ReadValue<Vector2>();
}
void Update(){
Camera();
}
void Camera(){
posY += cameraInput.x * mouseSensitivity;
posX -= cameraInput.y * mouseSensitivity;
// mouseSensitivity can be changed
Vector3 targetRotation = new Vector3(posX, posY);
transform.eulerAngles = targetRotation;
}
得到了这个,但是如果我把鼠标放在一个轴上,它会一直旋转到那一边
那么...这是将旧的Input.GetAxis("Mouse X") 或Input.GetAxis("Mouse Y") 替换为新输入系统的正确方法吗?如何阻止它继续旋转?
【问题讨论】:
标签: unity3d