Проверка на столкновения перед перемещением

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

Проверка на столкновения перед перемещением

Сообщение AgeZon 21 сен 2010, 16:27

Вот такая ситуация:
Есть два объекта, различных размеров с коллайдерами. Рядом с ними могут быть другие объекты. Задача: проверить можно ли поменять два этих объекта местами. Тоесть если есть куб 1Х1Х1 и вплотную к нему другой куб такого же размера, то на его место нельзя переместить куб размером 2Х2Х2.
Начал копать в сторону Physics.CheckCapsule, но не все объекты можно описать капсулой.... Может кто-нибудь подскажет как это по другому реализовать?
Спасибо заранее)))
Аватара пользователя
AgeZon
UNец
 
Сообщения: 6
Зарегистрирован: 03 ноя 2009, 15:16

Re: Проверка на столкновения перед перемещением

Сообщение Zaicheg 21 сен 2010, 16:28

Создать копию, переместить ускоренно, проверить была ли коллизия, начинать перемещение самого объекта.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Проверка на столкновения перед перемещением

Сообщение AgeZon 21 сен 2010, 16:37

Спасибо за оперативность)))
Тогда другой вопрос как вызвать проверку на столкновения у копии?
Аватара пользователя
AgeZon
UNец
 
Сообщения: 6
Зарегистрирован: 03 ноя 2009, 15:16

Re: Проверка на столкновения перед перемещением

Сообщение Grin 21 сен 2010, 17:03

Можно попробоать стандартным методом http://unity3d.com/support/documentation/ScriptReference/Collider.OnCollisionEnter.html?from=Collision
Grin
UNец
 
Сообщения: 34
Зарегистрирован: 12 июл 2010, 04:45
Откуда: Россия, г. Челябинск
  • ICQ

Re: Проверка на столкновения перед перемещением

Сообщение AgeZon 21 сен 2010, 17:08

Тут фишка в том что данная проверка должна быть внутри функции OnMouseOver, типа если можно поменять предметы местами то рисовать один курсор иначе другой...
Аватара пользователя
AgeZon
UNец
 
Сообщения: 6
Зарегистрирован: 03 ноя 2009, 15:16

Re: Проверка на столкновения перед перемещением

Сообщение Serge 21 сен 2010, 18:01

Как вариант: глобальная переменная вид курсора. Постоянно, или по мере необходимости перемещать в координаты курсора клон объекта и проверять коллизию. Соответственно коллизии менять значение глобальной переменой – вид курсора.
p.s. Главное не нужно все лепить в кучу, нужно грамотно разделить на процессы и обмениваться данными.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Проверка на столкновения перед перемещением

Сообщение AgeZon 21 сен 2010, 18:19

Переменная курсора итак глобальна))
Вообщем прочитав все вышесказанное решил пока сделать следующим образом
1) при наведении на второй объект создать клоны объектов поменяв их местами
2) К каждому клону назначить скрипт передающий объекту с глобальными переменными информацию есть столкновения или нет
3) В глобальном объекте поменять переменную курсора
+ еще в главном объекте создать ссылки на эти два объекта для проверки ( что бы не создовать клоны каждый цикл если пользователь удерживает мышь на одних и тех же объектах)

Вроде должно работать. Всем спасибо за участие!!!
Аватара пользователя
AgeZon
UNец
 
Сообщения: 6
Зарегистрирован: 03 ноя 2009, 15:16


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

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

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