Unity角色Z轴前后移动边界限制失效问题求助
Unity角色Z轴移动边界限制问题修复
你这段代码的问题很明显——在限制Z轴位置时,错误地修改了X轴分量,而不是Z轴分量。
原代码中,当判断Z轴超出边界时,你在new Vector3()里把第一个参数(X轴)设成了Z轴的边界值,完全搞错了修改的目标轴。正确的做法是保持X轴位置不变,只修改Z轴分量。
修正后的代码如下:
// 左右移动限制(X轴边界) if(transform.position.x < -xRange) { transform.position = new Vector3(-xRange, transform.position.y, transform.position.z); } if (transform.position.x > xRange) { transform.position = new Vector3(xRange, transform.position.y, transform.position.z); } // 前后移动限制(Z轴边界) if (transform.position.z < -zRangeBackwards) { // 修正:保持X轴位置不变,将Z轴重置为下限边界 transform.position = new Vector3(transform.position.x, transform.position.y, -zRangeBackwards); } if (transform.position.z > zRangeBackwards) { // 修正:保持X轴位置不变,将Z轴重置为上限边界 transform.position = new Vector3(transform.position.x, transform.position.y, zRangeBackwards); }
修改后,角色的Z轴移动就会像X轴一样被限制在-zRangeBackwards到zRangeBackwards的范围内,同时不会影响当前的X轴和Y轴位置。
内容的提问来源于stack exchange,提问作者Richard Sims
相关产品推荐
相关产品推荐

