Mathf.Clamp导致Unity WASD控制相机移动异常仅能斜向移动问题
问题原因
你的代码存在参数填写错误,直接导致Z轴坐标被错误覆盖:
你在最后一行对相机Z轴坐标做范围限制时,错误将transform.position.x作为了Mathf.Clamp的第一个输入参数,相当于每帧都会把Z轴坐标强行替换为X轴坐标经过minZ/maxZ限制后的结果,X和Z轴数值始终保持同步,自然只能斜向移动。
修复方案
把Update方法的最后一行代码替换为以下内容即可:
transform.position = new Vector3(Mathf.Clamp(transform.position.x, minX, maxX), transform.position.y, Mathf.Clamp(transform.position.z, minZ, maxZ));
可选优化
你当前使用的Input.GetKeyDown仅会在按键按下的瞬间触发一次移动,每次按下只能移动固定距离,如果需要实现按住按键持续移动的效果,可以把所有Input.GetKeyDown替换为Input.GetKey。
内容的提问来源于stack exchange,提问作者Maddox Fox
相关产品推荐
相关产品推荐

