(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
我正在尝试创建一个进度条,显示玩家在 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