gpt4 book ai didi

unity3d - 如何将 Input.GetAxis ("Mouse X") 或 Input.GetAxis ("Mouse Y") 转换为新的输入系统?

转载 作者:行者123 更新时间:2023-12-05 08:49:13 26 4
gpt4 key购买 nike

我是 Unity 脚本的新手,我正在尝试制作 ThirdPersonCamera,所以关注 this tutorial他可以正确上下左右移动鼠标

enter image description here

使用的脚本是

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:您正在尝试使用 UnityEngine.Input 类读取输入,但您有在播放器设置中将事件输入处理切换为输入系统包错误。

所以我尝试使用

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;
}

明白了,但是如果我将鼠标放在一个轴上,它会一直向那一侧旋转

enter image description here

那么...这是将旧的 Input.GetAxis("Mouse X")Input.GetAxis("Mouse Y") 替换为的正确方法吗新的输入系统?我怎样才能阻止它继续旋转?

最佳答案

Mouse.current.delta.x.ReadValue()
Mouse.current.delta.y.ReadValue()

关于unity3d - 如何将 Input.GetAxis ("Mouse X") 或 Input.GetAxis ("Mouse Y") 转换为新的输入系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64327135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com