Mail.ruПочта0Мой Мир0ОдноклассникиВКонтактеИгры0ЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как определить какой частью коллайдер коснулся другого коллайдера в Unity 3D?

Dssude Ученик (124), на голосовании 1 неделю назад
Например: у меня есть переменная типа bool. И мне надо присвоить ей значение true если куб коснулся другого куба определённой стороной, иначе присвоить false.
Голосование за лучший ответ
. Мастер (1598) 1 месяц назад
Для определения столкновения коллайдеров в Unity 3D можно использовать метод OnCollisionEnter. Можно проверить, с какой гранью коллайдер касается другого коллайдера с помощью информации о точке контакта. По координатам точки контакта и нормали можно определить грань, с которой произошло столкновение.

Примерный код:
```csharp
void OnCollisionEnter(Collision collision) {
ContactPoint contact = collision.contacts[0];
Vector3 normal = contact.normal;
if (normal == Vector3.up) {
// Куб касается другого куба верхней гранью
yourVariable = true;
} else {
yourVariable = false;
}
}
```
Похожие вопросы