我正致力于基于mouseInput的相机旋转,我希望它在所有框架中都有一致的灵敏度。根据统一文档,Input.GetAxis本身就应该独立于鼠标运动。
我发现,当我使用下面的代码并将框架从200+更改为30时,Input.GetAxis将返回非常不同的输出。对于200+ fps,GetAxis是低的,就像2-5,对于30 fps,对于相同的鼠标移动,它返回在10-15左右。它在游戏中引起了非常严重的敏感性差异。我是不是遗漏了什么?谢谢
public Rigidbody _playerRigidBody;
private Vector2 _lookInput;
private void Start()
{
//Application.targetFrameRate = 30;
}
private void Update()
{
_lookInput.x = Input.GetAxis("Mouse X");
}
void FixedUpdate()
{
var sensitivity = 300f;
var newPlayerRotation = _playerRigidBody.rotation * Quaternion.Euler(_lookInput.x * sensitivity * Vector3.up * Time.deltaTime);
_playerRigidBody.MoveRotation(newPlayerRotation);
}}
我已经测试了这个小函数中的所有东西,导致问题的唯一原因是Input.GetAxis。不一致。有什么想法、解决方案或解决办法吗?
发布于 2019-05-03 06:36:58
“框架独立”表示值取决于鼠标的移动,并不意味着值是一致的。
对于framerate = 200,value = 2-5表示鼠标在1/200秒内移动2-5点。
因此,要在1秒内获得移动距离:
_lookInput.x = Input.GetAxis("Mouse X") / Time.deltaTime;https://stackoverflow.com/questions/55963533
复制相似问题