У меня есть скрипт орбиты для управления игрой на орбите вокруг планеты.Он вращается нормально (немного прерывисто ...), но как мне контролировать его начальную позицию и его орбиту?Например, случайная орбита с определенной начальной позицией или наоборот, случайная орбита и случайная начальная точка и т. Д.
Я просто хочу иметь возможность контролировать орбиту, понимая векторы.
public GameObject orbitAroundTarget;
private Transform centerOfOrbit;
public Vector3 orbitAxis = Vector3.up;
public Vector3 desiredOrbitPosition;
public float orbitRadius = 100f;
public float orbitAdjustSpeed = 10f;
public float orbitSpeed = 2f;
void OnEnable()
{
centerOfOrbit = orbitAroundTarget.transform;
transform.position = (transform.position - centerOfOrbit.position).normalized * orbitRadius + centerOfOrbit.position;
}
void FixedUpdate()
{
transform.RotateAround(centerOfOrbit.position, orbitAxis, orbitSpeed * Time.deltaTime);
desiredOrbitPosition = (transform.position - centerOfOrbit.position).normalized * orbitRadius + centerOfOrbit.position;
transform.position = Vector3.MoveTowards(transform.position, desiredOrbitPosition, Time.deltaTime * orbitAdjustSpeed);
}