Столкновение сфер

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Столкновение сфер

Сообщение Baymen 30 окт 2012, 13:57

На сцене есть большая сфера (IsTrigger) а в ней движутся маленькие сферы( Rigidbody). Кто-нибудь подскажите как обработать движение внутренних сфер, чтоб они двигались по физическим законам. И как лучше перемежать сферы внутри.
Мой способ

void Update () {
transform.position += transform.forward * speed * Time.deltaTime;
}

Но так как внутри несколько маленьких сфер, они сталкиваются немного поворачиваются, и потом начинают двигать по формуле заданной выше, что не очень верно.
Baymen
UNец
 
Сообщения: 15
Зарегистрирован: 26 окт 2012, 10:50

Re: Столкновение сфер

Сообщение Ashvar 30 окт 2012, 14:34

Читайте мануалы по физике. В данном случае, подойдёт этот http://docs.unity3d.com/Documentation/C ... Force.html
Ashvar
UNIт
 
Сообщения: 62
Зарегистрирован: 20 ноя 2011, 16:22

Re: Столкновение сфер

Сообщение Baymen 30 окт 2012, 22:02

При помощи Constant Force получилось сталкивать маленькие сферы. А вот с большой сферой ( у которой IsTriger, и внутри которой происходит действие) не знаю как организовать взаимодействие. Взаимодействие малой сферы с большой определяю через радиус большой сферы.

if (distance > world.transform.localScale.x / 2 - transform.lossyScale.x / 2)

И вот сюда необходимо добавить код, которой бы изменял движение малой сферы. Пытаюсь так

Vector3 new_force = new Vector3(constantForce.force.x * (-1), constantForce.force.y * (-1), constantForce.force.z * (-1));
this.constantForce.force = new_force;

Но сила не действует сразу и он продолжает двигаться дальше.
Baymen
UNец
 
Сообщения: 15
Зарегистрирован: 26 окт 2012, 10:50

Re: Столкновение сфер

Сообщение Syberex 30 окт 2012, 23:40

Чтобы она действовала сразу, наверно надо применять ее, как импульс ...

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

Re: Столкновение сфер

Сообщение Baymen 31 окт 2012, 11:35

Еще, как вариант, можно в момент когда шарик близко находится у края сферы, вот вот столкнется, подставить перпендикулярно нормали плоскости сферы в точке столкновения, куб невидимый с бокс коллайдером, от которого шарик оттолкнется как ем положено ... изврат, но должно сработать


Сработало, но не так как надо.. Малая сфера бьётся в две точки в большой, и всё.. А хотелось бы чтоб летало хаотичней внутри
Baymen
UNец
 
Сообщения: 15
Зарегистрирован: 26 окт 2012, 10:50

Re: Столкновение сфер

Сообщение Syberex 31 окт 2012, 12:01

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


Вернуться в Почемучка

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

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