Как использовать Physics.Raycast для дополнения коллайдеров

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

Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 21 мар 2012, 22:42

Я столкнулся с тем что при высокой скорости коллайдеры не успевают срабатывать. Но я прочитал что можно использовать функцию physics.raycast для дополнения коллайдеров, не подскажите как это делать?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение Левш@ 22 мар 2012, 00:35

В справке подробно все подсказано...
http://unity3d.com/support/documentatio ... ?q=raycast
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 22 мар 2012, 22:37

Напишите пожалуйста скрипт кому не лень!
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 12:46

я понял что код должен быть что то типо этого:
Синтаксис:
Используется csharp
if(Physics.Raycast(rigidbody.transform,target.transform,10){



}


 


но что должно выполнятся при условии??
надо чтобы обект не проскакивал через стены
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение Левш@ 23 мар 2012, 12:53

Синтаксис:
Используется javascript
if(Physics.Raycast(transform.position, targPos - transform.position ,hit , dist, hitMask) {
     // Действия
}

но что должно выполнятся при условии??

А что нужно? Остановить движение очевидно... :-?
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 13:16

Левш@ писал(а):
Синтаксис:
Используется javascript
if(Physics.Raycast(transform.position, targPos - transform.position ,hit , dist, hitMask) {
     // Действия
}

но что должно выполнятся при условии??

А что нужно? Остановить движение очевидно... :-?


Спасибо большое! Но как отсановить обьект rigidbody?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 14:17

Есть еще вопрос: Это условие действует при приближении к центру объекта, а мне надо чтобы условие выполнялось при столкновении с лбой точкой объекта
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение Левш@ 23 мар 2012, 14:25

Это условие действует при приближении к центру объекта, а мне надо чтобы условие выполнялось при столкновении с лбой точкой объекта.

Не правда. :) рейкаст бьет не в пивот, а в колайдер обьекта. Настройте размеры колайдера правильно. соответственно дистанция рейкаста должна быть равна радиусу собственного коллайдера, вот рейкаст бьет ОТ пивота (хотя и это можно подправить).

как отсановить обьект rigidbody?

Да хоть заморозкой движения, это уже вообще другая тема. :)
И вообще не стоит использовать rigidbody, если он не необходим.
Последний раз редактировалось Левш@ 23 мар 2012, 14:41, всего редактировалось 1 раз.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 14:32

Левш@ писал(а):
Это условие действует при приближении к центру объекта, а мне надо чтобы условие выполнялось при столкновении с лбой точкой объекта.

Не правда. :) рейкаст бьет не в пивот, а в колайдер обьекта. Настройте размеры колайдера правильно. соответственно дистанция рейкаста должна быть равна радиусу собственного коллайдера, вот рейкаст бьет ОТ пивота (хотя и это можно подправить).

как отсановить обьект rigidbody?

Да хоть заморозкой движения, это уже вообще другая тема. :)


Смотрите у шарика радиус коллайдера 0.5, шарик должен соприкаснуться со стеной(с помощью райкаста), но соприкасается шарик только ближе к центру!
distance я выставил 0.5. Может дело в том что шарик катится?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение Левш@ 23 мар 2012, 14:45

Еще раз повторюсь, рейкаст попадает не в пивот а в колайдер.
Можете проверить обр. информацию hit, она несет параметр hit.point - координаты позиции точки попадания на колайдере и мн. др.
Но информации о пивоте обьекта вы не получите прямо.
Если что то работает не так, как вам кажеться оно должно было работать ищите погрешности в другом.
Например в запаздывании по кадрам или неправильно выбранной дистанции.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 16:08

Левш@ писал(а):Еще раз повторюсь, рейкаст попадает не в пивот а в колайдер.
Можете проверить обр. информацию hit, она несет параметр hit.point - координаты позиции точки попадания на колайдере и мн. др.
Но информации о пивоте обьекта вы не получите прямо.
Если что то работает не так, как вам кажеться оно должно было работать ищите погрешности в другом.
Например в запаздывании по кадрам или неправильно выбранной дистанции.


Незнаю попробовал уже с несколькими обьектами - сталкивается только ближе к центру обьекта!(((
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 16:24

а что нужно выбрать для layerMask?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 16:32

Блин - реально смотрю офф турториал , там написано что направляет луч против всех коллайдеров, а у меня только если объект у цетра(
Кто-нибудь сталкивался с такой проблемой?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение Левш@ 23 мар 2012, 16:43

а что нужно выбрать для layerMask?

Слои, которые не будут игнорироваться райкастом.
Кстати... ;)) у тебя похоже райкаст в собственный коллайдер долбит... поэтому он препятствие и не видит пока оно не входит в этот колайдер. :))
Вот тут как раз layerMask и спасет.
Последний раз редактировалось Левш@ 23 мар 2012, 16:47, всего редактировалось 1 раз.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как использовать Physics.Raycast для дополнения коллайдеров

Сообщение BANNERTM 23 мар 2012, 16:46

Левш@ писал(а):
а что нужно выбрать для layerMask?

Слои, которые не будут игнорироваться райкастом.
Кстати... у тебя похоже в собственный коллайдер долбит... поэтому он препятствие не видит пока оно не входит в собственный колайдер. :))
Вот тут как раз layerMask и спасет.


Всмысле? Объясните пожалуйста поподробнее! Что нужно в layermask отметить? Nothink? Everythink? Или выбрать что-то?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

След.

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

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

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