У меня есть шар с прикрепленным пустым объектом, объект находится на поверхности планеты, ракета запускается из этого пустого объекта. Сфера вращается. Моя ракета может летать по спиральной траектории от центра его создающего места. Проблема, которую я не могу решить, заключается в том, что траектория ракеты не зависит от вращения планеты. Это обновление() функция для ракеты:Как улучшить траекторию ракеты (Unity 3d)
void Update() {
angle += speed * Time.deltaTime;
x = Mathf.Cos (angle) * radius;
z = Mathf.Sin (angle) * radius;
rb.velocity = new Vector3(x,0.0f,z);
radius += stepOfRadius;
}
Как я хочу, чтобы это было (без Луны и возвращение на Землю):
«Проблема, которую я не могу решить это траектории, ракеты не зависит от вращения планеты» возможно, что просто, у вас есть ракеты, как ребенок на планете? ** если да, отделите его. ** используйте '.parent =', чтобы установить родительский объект Transform - например, '= null' - google 100000 страниц. – Fattie
Хорошо, если вы пытаетесь поддерживать точный контроль над тем, что происходит, вы НЕ должны использовать физику единства для траекторий - только для проверки столкновений, срабатывания вещей и т. Д. И да, причина, по которой ваш корабль объявил независимость, также является продуктом Unity Physics двигатель. Я настоятельно рекомендую вам делать вычисления в FixedUpdate и вручную перемещать ваш корабль. Вы можете поддерживать локальную переменную «скорость», чтобы вести себя, и вы не сомневаетесь, что за сценой не будет никакой другой магии. –
Не будет использовать здесь алгоритм n-body? – trojanfoe