(Unity) 进度条向后出现

(Unity) Progress bar appearing backwards

我正在尝试创建一个进度条,显示玩家在 3D 区域中离终点有多近,但我不知道如何让它朝正确的方向前进而不是倒退。

startNEnd = Vector3.Distance(start.transform.position, GameObject.Find("GoalPrefab(Clone)").transform.position);
playerNEnd = Vector3.Distance(player.transform.position, GameObject.Find("GoalPrefab(Clone)").transform.position);
progressBar.transform.localScale = new Vector3(playerNEnd/startNEnd, 1, 1);

(X轴点设为0)

怎样才能让它走正确的方向?

您可以尝试线性插值以更好地控制这些值。

float progress = Mathf.Lerp(1f, 0f, playerNEnd / startNEnd);
progressBar.transform.localScale = new Vector3(progress, 1, 1);

您可以通过从 1 中减去该值来反转该值。

var progress = 1 - (playerNEnd / startNEnd);

这适用于限制在 0 和 1 之间的值。

1 - 0.75 = 0.25
1 - 0.50 = 0.50
1 - 0.25 = 0.75