Как сделать гравитацию планеты ?

Программирование на Юнити.

Как сделать гравитацию планеты ?

Сообщение JackZI 24 дек 2016, 16:37

Нужно сделать центром гравитации определенную координату ( будет много планет , 3D ) и при приближении к центру гравитация усилялась, а при определленной высоте от центра она пропадала, и так с каждой планетой.
(c#) [curved_hands]
JackZI
UNец
 
Сообщения: 19
Зарегистрирован: 10 ноя 2016, 16:11

Re: Как сделать гравитацию планеты ?

Сообщение EagleOwle 24 дек 2016, 18:12

Теоретически...
1. Определяем максимальную силу гравитации
2. Считаем расстояние от сюда до источника гравитации.
3. Находим Вектор3 направление на источник гравитации

Physics.gravity = направление гравитации * максимальная сила гравитации - расстояние до источника гравитации.
EagleOwle
UNIверсал
 
Сообщения: 493
Зарегистрирован: 02 янв 2015, 16:27

Re: Как сделать гравитацию планеты ?

Сообщение Cr0c 25 дек 2016, 16:37

Зависимость гравитации от расстояния обратноквадратичная же... а Physics.gravity совсем не гравитация, а постоянно действующая сила в фиксированном направлении.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как сделать гравитацию планеты ?

Сообщение Syberex 26 дек 2016, 08:45

JackZI писал(а):Нужно сделать центром гравитации определенную координату ( будет много планет , 3D ) и при приближении к центру гравитация усилялась, а при определленной высоте от центра она пропадала, и так с каждой планетой.
(c#) [curved_hands]

Надо писать скрипт:

Имеем:
1. Массив всех точек притяжения.
2. Рассчитанные дистанции максимального расстояния действия притяжения (" а при определленной высоте от центра она пропадала").
3. Силу притяжения для каждой точки.

Алгоритм:
1. Выбираем все действующие на тело точки притяжения из массива (если расстояние от точки притяжения до тела меньше равно расстояния действия (2)
2. Находим сумму векторов сил притяжения (длина каждого вектора = силе притяжения (3)).
3. Рассчитываем скорость и двигаем объект...
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Как сделать гравитацию планеты ?

Сообщение Cr0c 26 дек 2016, 09:28

Syberex писал(а):3. Рассчитываем скорость

Ускорение же...
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как сделать гравитацию планеты ?

Сообщение Woolf 26 дек 2016, 10:14

Не оно?

Изображение
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Как сделать гравитацию планеты ?

Сообщение Syberex 26 дек 2016, 16:18

В итоге нам нужна скорость, чтобы двигать объект :)
И вообще кто сказал, что автору нужна идеальная модель планетарной системы ... ему может уже вообще ничего не надо и он в тему не зайдет, он уже отдыхает, наигрался в геймдев #:-s
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Как сделать гравитацию планеты ?

Сообщение Cr0c 26 дек 2016, 18:19

Syberex писал(а):В итоге нам нужна скорость, чтобы двигать объект :)

Скорость и без гравитации есть, которая есть СИЛА притяжения тел, а тело, двигающееся с постоянной скоростью - это тело, сумма действующих сил на которое равна НУЛЮ. Значит если есть сила - то будет ускорение, а это изменение скорости, а не задание её.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как сделать гравитацию планеты ?

Сообщение Syberex 27 дек 2016, 11:06

Дак какое ускорение, если скорость постоянная? :D
Сумма действующих сил равна нулю вы говорите, а потом
Значит если есть сила - то будет ускорение, а это изменение скорости, а не задание её.

(P)

Но вообще то я и не утверждал, что скорость должна быть постоянной...
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Как сделать гравитацию планеты ?

Сообщение Cr0c 27 дек 2016, 12:18

Syberex писал(а):Дак какое ускорение, если скорость постоянная? :D
Сумма действующих сил равна нулю вы говорите, а потом
Значит если есть сила - то будет ускорение, а это изменение скорости, а не задание её.

(P)

Но вообще то я и не утверждал, что скорость должна быть постоянной...

Не надо выдергивать из контекста, всё там правильно написано.
Хоть в учебнике читай: прямолинейное движение с постоянной скоростью если сумма действующих на тело сил равна нулю.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как сделать гравитацию планеты ?

Сообщение Syberex 27 дек 2016, 13:15

Cr0c писал(а):
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Я имел ввиду rigidbody.velocity ... куда же прикладывать ускорение я не знаю...
Рассчитывать придется в каждом кадре и прикладывать тоже, ведь тело будет двигаться положение будет меняться :) А ускорение не конечный результат.
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Как сделать гравитацию планеты ?

Сообщение Cr0c 27 дек 2016, 14:18

Syberex писал(а):куда же прикладывать ускорение я не знаю...

Чумаааа... по определению ускорения понятно же - это изменение скорости, её производная. Как размер и направление изменения.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как сделать гравитацию планеты ?

Сообщение getAlex 29 дек 2016, 16:13

Cr0c писал(а):
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Силу же...

Woolf писал(а):Не оно?

Оно, но все делают вид, что ты ничего не запостил. Скорость и ускорение появляются в результате воздействия силы. Как воздействовать силой на объект думаю все знают
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30

Re: Как сделать гравитацию планеты ?

Сообщение Cr0c 29 дек 2016, 18:06

getAlex писал(а):
Cr0c писал(а):
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Силу же...

Силу считать всё равно придется, а потом переводить в ускорение.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как сделать гравитацию планеты ?

Сообщение getAlex 30 дек 2016, 03:32

Cr0c писал(а):Силу считать всё равно придется, а потом переводить в ускорение.

Нафига? Приложил силу, а скорость или ускорение возникло в результате силы. Считать тебе его не нужно. Ты его нигде не используешь.
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8