В настоящее время я работаю над системой орбит для игры. Я понял, что объект будет двигаться по кругу, основываясь на значении прогресса, которое будет между 0,0 и 1,0 (0,5 - это половина окружности). Я рассчитываю это следующим образом:
float angle = Mathf.Deg2Rad * 360 * t;
float xPos = Mathf.Sin(angle) * xAxis;
float yPos = Mathf.Cos(angle) * yAxis;
return new Vector3(xPos, yPos, 0.0f);
С t просто deltatime, а переменные xAxis / yAxis - радиус круга. Однако сейчас я немного застрял в том, как я мог бы добиться прогресса по кругу на основе осознания. Итак, если у меня есть объект, который попадает в нижнюю часть круга, как я могу рассчитать, что это прогресс 0,5?