Unity中无法调整玩家移动速度,疑似脚本存在问题求助
问题排查与解决
首要排查:脚本重复挂载
打开玩家物体的Inspector面板,检查是否把这个移动脚本挂载了多次。如果挂载了N次,每帧会执行N次移动逻辑,相当于速度被乘以N,不管你改单个脚本的数值,叠加后的速度都会异常快。删除多余的脚本实例即可。修复代码语法错误
你的代码里void Update()后面多了一个多余的反引号(),这会导致编译失败。Unity在编译出错时会沿用上次正确编译的版本运行,所以你修改的moveSpeed和leftRightSpeed`根本没生效,速度还是旧版本的数值。把这个多余的反引号删掉,同时可以优化D键移动的代码写法:public float moveSpeed = 1; public float leftRightSpeed = 4; void Update() { transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed, Space.World); if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { if (transform.position.x > LevelBoundary.leftSide) { transform.Translate(Vector3.left * Time.deltaTime * leftRightSpeed); } } if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) { if (transform.position.x < LevelBoundary.rightSide) { // 改用Vector3.right替代Vector3.left*-1,代码更直观 transform.Translate(Vector3.right * Time.deltaTime * leftRightSpeed); } } }额外验证步骤
修复后,在Inspector面板修改速度数值,点击Unity的"播放"按钮,查看移动速度是否正常。如果仍有问题,检查LevelBoundary的边界数值是否合理(边界值过大不会导致速度变快,但可能让移动限制逻辑失效)。
内容的提问来源于stack exchange,提问作者Julie Readnour
相关产品推荐
相关产品推荐

