Я пытаюсь смоделировать астероид, выходящий на орбиту планеты (в упрощенном виде - я не иду к идеальному реализму).Астероид приближается к области, близкой к планете, и в момент, когда он летит ближе всего к планете, я переключаю его движение на орбиту планеты, используя Transform.RotateAround.
Я получил егоработает на астероид, приближающийся с одного направления, но астероиды могут приближаться с любого направления, и я не знаю, как рассчитать ось для любого данного астероида.
Это по сути то, что я получил:
if (orbiting)
{
transform.RotateAround(orbitTarget.position, orbitAxis, orbitSpeed);
}
else if (lastDistance < GetDistanceFromOrbitTarget())
{
orbiting = true;
orbitSpeed = thisRigidbody.velocity.magnitude;
orbitAxis = ??? //How do I calculate this?
}
else
{
lastDistance = GetDistanceFromOrbitTarget());
}
Вот ожидаемый результат: GIF орбиты
Заранее спасибо.