Unity C# 绑定玩家x轴位置的分数按下W/S键异常上涨问题求助
问题排查与修复方案
核心问题原因
你当前代码的逻辑是将玩家物体的X轴坐标实时转换为整数作为分数展示,出现按W/S键分数变动的问题,根源是两点:
- 你项目中玩家的W/S移动按键绑定的是X轴方向的位移,按下按键时
player.position.x数值发生变化,就会同步更新到计分板上 - Brackeys的该系列教程里的跑酷原型默认以玩家沿Z轴正方向的移动距离作为计分依据,你的代码错误读取了X轴坐标而非要求的Z轴坐标,才会出现和前后移动按键绑定的异常表现
修复方法
直接修改Update方法内读取坐标的轴向即可,修改后代码如下:
using UnityEngine; using UnityEngine.UI; public class SCORE : MonoBehaviour { public Transform player; public Text scoreText; void Update() { // 将原代码的position.x替换为position.z scoreText.text = player.position.z.ToString("0"); } }
如果修改后仍有异常,可以额外排查两个点:
- 确认玩家移动脚本的前进轴向为Z轴,没有因为手动旋转玩家物体导致移动对应轴向发生变化
- 确认
SCORE脚本的player参数绑定的是你实际控制移动的玩家物体,没有错绑其他对象的Transform组件
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

