Математика не работает должным образом в единстве - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь создать волейбольную сцену в единстве.Что я хочу, так это создать сцену, в которой два NPC бросают мяч друг в друга.И я хочу, чтобы мяч приземлился в случайных точках, а NPC достигли точки одновременно с тем, как мяч достигнет точки.Теперь я использую уравнения параболы, чтобы вычислить, где мяч должен приземлиться и сколько времени потребуется, чтобы туда добраться.Время и место посадки работают нормально.Но я не могу получить NPC там в точное время.Я использую следующую сопрограмму для перемещения NPC и мяча.Мяч достигает точки вовремя, но NPC каким-то образом опаздывает.

IEnumerator playOneRound()
{

    //this is the point where the ball is going to land
    currentMovePoint.transform.position = currentRandomObjects[Random.Range(0, currentRandomObjects.Length)].transform.position;
    parabolaStartPoint.transform.position = currentStartPoint.transform.position;
    parabolaEndPoint.transform.position = currentBallPoint.transform.position;
    ballController.FollowParabola();


    //this is the time in which the ball will reach the end point of the parabola
    time = ballController.GetDuration();


    //this is the distance between the NPC and the point where the ball will land
    distance = Vector3.Distance(currentPlayer.transform.position, currentMovePoint.transform.position);
    speed = distance / time;

    // clockspeed here is the amount of seconds I am going to wait for each iteration.
    // so basically I am converting the the speed from distance-unit/second to 
    // distance-unit/clockspeed  
    distancePerClock = speed * clockSpeed;


    while (Vector3.Distance(currentPlayer.transform.position, currentMovePoint.transform.position) > 0.1f)
    {
        currentPlayer.transform.position = Vector3.MoveTowards(currentPlayer.transform.position, currentMovePoint.transform.position, distancePerClock);
        yield return new WaitForSeconds(clockSpeed);
    }
}

Математика, кажется, прямо на бумаге.Но почему-то здесь не работает.Я что-то пропустил?

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