首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于鼠标的Unity3D Input.GetAxis不一致

用于鼠标的Unity3D Input.GetAxis不一致
EN

Stack Overflow用户
提问于 2019-05-03 04:58:31
回答 1查看 1.2K关注 0票数 1

我正致力于基于mouseInput的相机旋转,我希望它在所有框架中都有一致的灵敏度。根据统一文档,Input.GetAxis本身就应该独立于鼠标运动。

我发现,当我使用下面的代码并将框架从200+更改为30时,Input.GetAxis将返回非常不同的输出。对于200+ fps,GetAxis是低的,就像2-5,对于30 fps,对于相同的鼠标移动,它返回在10-15左右。它在游戏中引起了非常严重的敏感性差异。我是不是遗漏了什么?谢谢

代码语言:javascript
运行
复制
    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。不一致。有什么想法、解决方案或解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 06:36:58

“框架独立”表示值取决于鼠标的移动,并不意味着值是一致的。

对于framerate = 200,value = 2-5表示鼠标在1/200秒内移动2-5点。

因此,要在1秒内获得移动距离:

代码语言:javascript
运行
复制
_lookInput.x = Input.GetAxis("Mouse X") / Time.deltaTime;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55963533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档