Unity玩家相机环绕输入失效:点击仅触发一次求解决
问题分析与解决
问题根源在于Input.GetMouseButtonDown(0)的API特性:它仅在鼠标左键按下的第一帧返回true,所以不管你有没有保留后面的鼠标轴判断,这段逻辑都只会在点击瞬间触发一次,和后续的鼠标移动完全无关。
解决方法
把GetMouseButtonDown替换为GetMouseButton——这个API会在鼠标左键持续按住的每一帧都返回true,这样只要按住鼠标且有鼠标移动,逻辑就会持续执行:
if (Input.GetMouseButton(0) && (Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0)) { yAxis = rig.y_axis.localRotation; xAxis = rig.x_axis.localRotation; LookRotation(); }
额外优化提示
Input.GetAxis返回的是经过平滑处理的数值,有时候微小的鼠标移动可能会返回接近0但不是严格等于0的数值,如果你想让触发更灵敏,可以把判断条件改成检查绝对值大于一个极小阈值,比如:
Mathf.Abs(Input.GetAxis("Mouse X")) > 0.01f || Mathf.Abs(Input.GetAxis("Mouse Y")) > 0.01f
内容的提问来源于stack exchange,提问作者The slendermenrockskill
相关产品推荐
相关产品推荐

