Соприкосновение объектов на сцене

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

Соприкосновение объектов на сцене

Сообщение Neon 14 янв 2017, 16:05

Здравствуйте , на сцене есть объект, в процессе игры он может соприкасается с другими различными объектами , мне нужно получить массив Объектов или массив коллайдеров этих объектов с которыми он прикасается . Я делал через
Синтаксис:
Используется csharp
 
Vector3 obj = (Parent[0].transform.position);
int rad=1;
hitColliders = Physics.OverlapSphere(obj, rad);
 

но это немного не то, коллайдеры находит, но объект может стоять рядом, а не прикасается к нему и все равно будет в массиве. Настройка радиуса тоже сомнительное занятие ведь это сфера, а объект квадратный.
Neon
UNец
 
Сообщения: 7
Зарегистрирован: 02 дек 2016, 10:47

Re: Соприкосновение объектов на сцене

Сообщение waruiyume 14 янв 2017, 16:23

Physics.OverlapBox
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Соприкосновение объектов на сцене

Сообщение Neon 14 янв 2017, 17:45

waruiyume писал(а):Physics.OverlapBox
Изображение
объект касается с 9 кубиками , пробую так
Синтаксис:
Используется csharp
 hitColliders = Physics.OverlapBox(Parent[0].transform.position,Vector3.up,Quaternion.identity);

Но Vector3.up и так понятно не правильно поскольку он будет икать только вверх, вот только что ставить вместо него?
Читаю доки. Функция принимает
Vector3 center - как я понимаю точка центра нашего box'a откуда должен начинать искать коллайдеры(Указываю Позицию объекта)
Vector3 halfExtents - не знаю что это(Если переводить документацию Половина размера окна в каждом измерении.)
Quaternion orientation -(Вращение коробки.) Как я понимаю мне это не нужно ставлю Quaternion.identity
Neon
UNец
 
Сообщения: 7
Зарегистрирован: 02 дек 2016, 10:47

Re: Соприкосновение объектов на сцене

Сообщение samana 14 янв 2017, 18:03

А если так?

Синтаксис:
Используется csharp
BoxCollider myBox = GetComponent<BoxCollider>();

foreach (Collider coll in Physics.OverlapBox(transform.position, myBox.bounds.extents, Quaternion.identity))
{
    if (coll != myBox) Debug.Log(coll.name);
}
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Соприкосновение объектов на сцене

Сообщение Neon 15 янв 2017, 12:24

samana писал(а):А если так?

Синтаксис:
Используется csharp
BoxCollider myBox = GetComponent<BoxCollider>();

foreach (Collider coll in Physics.OverlapBox(transform.position, myBox.bounds.extents, Quaternion.identity))
{
    if (coll != myBox) Debug.Log(coll.name);
}


Ругается на строке
Синтаксис:
Используется csharp
            foreach (BoxCollider coli in Physics.OverlapBox(Parent[0].transform.position, myBox.bounds.extents))
 

MissingComponentException: There is no 'BoxCollider' attached to the "Cubo" game object, but a script is trying to access it.
You probably need to add a BoxCollider to the game object "Cubo". Or your script needs to check if the component is attached before using it.
Говорит нету Колайдеров на объекте, хотя их там очень много только сам объект кубо - это Родитель, он без бокс коллайдера, внутри кубики с коллайдерами
Neon
UNец
 
Сообщения: 7
Зарегистрирован: 02 дек 2016, 10:47

Re: Соприкосновение объектов на сцене

Сообщение Neon 15 янв 2017, 13:53

samana писал(а):А если так?

Синтаксис:
Используется csharp
BoxCollider myBox = GetComponent<BoxCollider>();

foreach (Collider coll in Physics.OverlapBox(transform.position, myBox.bounds.extents, Quaternion.identity))
{
    if (coll != myBox) Debug.Log(coll.name);
}

Все ответ нашел , спасибо что подтолкнули на коллайдеры
Вот решение если кому то пригодится
Синтаксис:
Используется csharp
 GameObject[] Parent;
 Collider[] hitColliders;
 Parent[0] = GameObject.Find("Central (2)"); // Нашли объект который хотим проверить
 BoxCollider myBox = Parent[0].GetComponent<BoxCollider>(); // Получили его бокс коллайдер
 hitColliders = Physics.OverlapBox(myBox.center, myBox.size/2f,myBox.transform.rotation); // Получили массив коллайдеров с которыми он контачит
 
Neon
UNец
 
Сообщения: 7
Зарегистрирован: 02 дек 2016, 10:47


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

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

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