Столкновения частей объекта

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

Столкновения частей объекта

Сообщение alebaster 30 ноя 2011, 16:25

И снова здравствуйте.

У объекта есть штык, который взаимодействует с другим объектом (бьет штыком). Возможно ли сделать так, чтобы коллизия рассчитывалась только при ударе штыка о тело объекта? Поставил на штык бокс коллайдер, налепил скрипт:
Синтаксис:
Используется csharp
        void OnCollisionEnter(Collision collision)
                {
                        if(collision.gameObject.name == "robot2_final")
                        {
                                RobotAI2._curHealth -= 5;
                                Debug.Log("HELLYEAH");
                        }
                }


И Ничего. Штык - составная часть импортированной модели. Если вешать скрипт целиком на объект - все прекрасно, но мне этого не надо. Может проблема в том, что этот самый штык при ударе в состоянии анимации?

UPD. Не получается даже обнаружить столкновение с частью другого объекта, имеющего отдельный коллайдер.
alebaster
UNец
 
Сообщения: 36
Зарегистрирован: 10 ноя 2011, 22:24

Re: Столкновения частей объекта

Сообщение Левш@ 30 ноя 2011, 17:44

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

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

Re: Столкновения частей объекта

Сообщение alebaster 30 ноя 2011, 18:13

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

РиджБоди повесь на штык, эти ентеры не срабатывают без него, а чтоб он не мешал потом, поставь галочку на IsKinematic
Для срабатывания триггеров и ловли столкновений нужно лишь его присутствие на обьекте, настройки не важны..
Надо внимателней смотреть описание функций в справке, там это написано кстати. :)


Черт, у меня этот самый штык находится внутри модели, и когда я вешаю на него РидигБоди робот начинает вести себя так. как будто в него вселился демон.

Изображение

Придется переделавать модель? Или все-таки есть еще способы?
alebaster
UNец
 
Сообщения: 36
Зарегистрирован: 10 ноя 2011, 22:24

Re: Столкновения частей объекта

Сообщение Левш@ 30 ноя 2011, 18:23

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

Re: Столкновения частей объекта

Сообщение alebaster 30 ноя 2011, 18:24

Левш@ писал(а):
поставь галочку на IsKinematic


Я достаточно внимательный : D. Ставил. Без неё - штык улетат в небеса, с ней робот превращается в демона.

И что именно означает: "OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider". Прямая связь collider с rigidbody и наоборот? У меня такое выполняется. Или что оно значит? Для коммереского продукта у Unity просто отвратительная документация.
alebaster
UNец
 
Сообщения: 36
Зарегистрирован: 10 ноя 2011, 22:24

Re: Столкновения частей объекта

Сообщение Левш@ 30 ноя 2011, 20:24

Я достаточно внимательный

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

Re: Столкновения частей объекта

Сообщение alebaster 30 ноя 2011, 20:42

Левш@ писал(а):
Я достаточно внимательный

На коллайдер штыка ставь галочку IsTrigger, похоже это не РиджБоду воду мутит...


Уф. да, спасибо, так лучше. Но вот как теперь быть с взаимодействием?) А то теперь атака штыком выглядит как спаривание(проходит вглубь).
Да и к тому же из-за этого происходит одно столкновение, вместо N.
alebaster
UNец
 
Сообщения: 36
Зарегистрирован: 10 ноя 2011, 22:24

Re: Столкновения частей объекта

Сообщение AndreyMust19 30 ноя 2011, 22:49

Останавливать анимацию движения через 0.2 секунды после столкновения штыка с телом и запускать ее в обратном направлении.
Да и к тому же из-за этого происходит одно столкновение, вместо N.

Один вход в коллайдер - одно столкновение. Коллайдеры работают на вход/выход, а не на нахохждение внутри.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Столкновения частей объекта

Сообщение alebaster 30 ноя 2011, 23:15

AndreyMust19 писал(а):Останавливать анимацию движения через 0.2 секунды после столкновения штыка с телом и запускать ее в обратном направлении.
Да и к тому же из-за этого происходит одно столкновение, вместо N.

Один вход в коллайдер - одно столкновение. Коллайдеры работают на вход/выход, а не на нахохждение внутри.


И при этом вручную рассчитывать силу удара и применять AddForce на противника?
alebaster
UNец
 
Сообщения: 36
Зарегистрирован: 10 ноя 2011, 22:24

Re: Столкновения частей объекта

Сообщение artk 30 ноя 2011, 23:51

Можно еще поставить галочку "Animate physics". У меня она как-то странно работала.
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Столкновения частей объекта

Сообщение alebaster 01 дек 2011, 19:22

artk писал(а):Можно еще поставить галочку "Animate physics". У меня она как-то странно работала.

У меня она вообще не работает).
alebaster
UNец
 
Сообщения: 36
Зарегистрирован: 10 ноя 2011, 22:24


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

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

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