www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Столкновения (http://forum.boolean.name/showthread.php?t=19416)

6082asil 17.09.2014 18:13

Столкновения
 
Здравствуйте. Есть нестандартной формы объекты, а именно

вот такие диски с дырками.
Как сделать, чтобы обычная сфера из Unity сталкивалась с ними нормально? То есть, чтобы, например, через дырку проходила.
Rigidbody цеплял - не работает. Базовые коллайдеры чего-то не помогают (я вроде как догадываюсь почему). Ну так вот, кто поможет?

Mr_F_ 17.09.2014 18:21

Ответ: Столкновения
 
они сами должны двигаться?

ABTOMAT 17.09.2014 19:20

Ответ: Столкновения
 
Ригидбоди могут быть только выпуклыми объёмами (особенности математики физических движков).
Поэтому скорее всего в физическом движке у твоих дисков дырки нет, поэтому и не проходит сфера.
Простой вариант — из нескольких выпуклых объёмов слепить тело с дыркой.
Возможности работы с невыпуклыми объёмами в физдвижках обычно очень ограничены, например, часто они могут быть только статическими.
Уточняй возможность работы с невыпуклыми телами в справке к своему движку либо (и лучше) лепи из составных частей.

pax 18.09.2014 07:01

Ответ: Столкновения
 
Если диски не двигаются, то надо добавлять MeshCollider.

6082asil 18.09.2014 07:57

Ответ: Столкновения
 
Ну, вообще было бы хорошо чтобы они двигались (в одном направлении), но можно и неподвижными их сделать.

Mr_F_ 18.09.2014 08:48

Ответ: Столкновения
 
Вот такой классный плаг может помочь, если надо, чтоб двигались:
http://forum.unity3d.com/threads/con...leased.154361/

RegIon 18.09.2014 11:36

Ответ: Столкновения
 
https://play.google.com/store/apps/d...collider&hl=ru


Спроси у разраба;)

EvilOkta 18.09.2014 13:04

Ответ: Столкновения
 
а если сделать двойной коллайдер? у диска один родительский, а у отверстия второй с выступающими гранями. И написать функцию которая проверяет в какой коллайдер попал шар и соответственно взаимодействует/не взаимодействует с ним, при этом игнорируя второй. Или не сработает? (это просто идея, кодом не подкреплю)

dsd 18.09.2014 15:06

Ответ: Столкновения
 
Цитата:

Сообщение от EvilOkta (Сообщение 286872)
а если сделать двойной коллайдер? у диска один родительский, а у отверстия второй с выступающими гранями. И написать функцию которая проверяет в какой коллайдер попал шар и соответственно взаимодействует/не взаимодействует с ним, при этом игнорируя второй. Или не сработает? (это просто идея, кодом не подкреплю)

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

6082asil 18.09.2014 19:43

Ответ: Столкновения
 
Цитата:

Спроси у разраба
Ох, ну, не знаю, что это именно, но по скринам похоже на то, что я и хочу сделать.
Но вот ведра нету, есть виндофон. На него и собираюсь запилить.

Nex 19.09.2014 00:26

Ответ: Столкновения
 
Цитата:

Сообщение от 6082asil (Сообщение 286895)
есть виндофон. На него и собираюсь запилить.

Для компиляции нужен SDK, который ставится только если у тебя win8. ;)

6082asil 19.09.2014 05:19

Ответ: Столкновения
 
Цитата:

Для компиляции нужен SDK, который ставится только если у тебя win8.
Все хорошо, все компы дома уже на 8. И с SDK.
Осталось только сделать игру. :D


Часовой пояс GMT +1, время: 19:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot