Unity - уровень завершения выполнения индикатора останавливается на 75% - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь построить индикатор прогресса, который указывает на завершение текущего уровня от 0 до 100% (или от 0 до 1 в вероятности). Я нашел этот пример:

Расстояние от начальной точки до конечной точки в процентах в обновлении

Это работает, но мой индикатор выполнения останавливается на уровне около 75%, когда я достигаюцелевая позиция, а затем она падает вниз. Это мой код:

public GameObject player;
public GameObject target;
public Text scoreText;

private float startDistance;
private float currentDistance;

private void Start()
{
    this.startDistance = Vector3.Distance(player.transform.position, target.transform.position);
}

private void Update()
{
    this.currentDistance = Vector3.Distance(player.transform.position, target.transform.position);
    float percentage = 1 - (currentDistance / startDistance);
    transform.localScale = new Vector3(percentage, 1f, 1f);

    this.scoreText.text = string.Format("Score: {0}%", Mathf.Round(percentage * 100f));
    Debug.Log("Percentage Completed: " + (percentage));
}

Игрок сам движется к целевой позиции с постоянной скоростью без ускорения. Игрок может перемещать своего персонажа влево или вправо, чтобы избежать препятствий. Это не меняет скорость игрока, оно просто меняет направление. Маневрируя, я понял, что прогресс иногда превышает 75%, а иногда и ниже. Почему это происходит? Как сделать так, чтобы прогресс достигал 100%, когда я достигал целевой позиции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...