Unity3D: Орбитальный скрипт - как контролировать стартовую позицию / орбиту - PullRequest
0 голосов
/ 19 июня 2019

У меня есть скрипт орбиты для управления игрой на орбите вокруг планеты.Он вращается нормально (немного прерывисто ...), но как мне контролировать его начальную позицию и его орбиту?Например, случайная орбита с определенной начальной позицией или наоборот, случайная орбита и случайная начальная точка и т. Д.

Я просто хочу иметь возможность контролировать орбиту, понимая векторы.

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...