2015-05-19 2 views
1

Итак, у меня есть сборник, который я случайно создаю из папки ресурсов в случайных местах, и это всего лишь изображение с прикрепленным к нему объективом Sprite Renderer:Обнаружение полного перекрытия GameObject of Sprite

go = (GameObject)Instantiate(Resources.Load("alienPink")); 

Данные создаются в разных местах каждые 3 секунды.

У меня также есть мяч с Sprite видеообработкой, Круг коллайдер 2d и твердым 2D тела, прикрепленный к нему, и я получить доступ к Rigidbody 2D следующим образом:

//ray cast from camera to mouse point to detect hit 

RaycastHit2D hit = Physics2D.Raycast(mousePos2D , dir); 

. . . 

RigidBody2D grabbedObject = hit.collider.rigidbody2D; 

//do stuff with grabbedObject including change position 

Я хочу, чтобы определить, когда сборные ПОЛНОСТЬЮ перекрывается шаром, который является прозрачным, поэтому я могу начать делать материал на сборный. COMPLETE - это ключевое слово здесь, и я пробовал множество методов, включая попытку обнаружить перекрытие между Renderer prefab и rigidBody2D шара безрезультатно. Я даже пытался схватить все Prefabs в сцене, получая их в массив и обнаружение дублирования, пройдя через весь массив в каждом обновлении, но он просто не работает:

GameObject[] prefab =GameObject.FindGameObjectsWithTag("enemies"); //returns GameObject[] 

SOMEBODY HALP! Серьезно я пытался это сделать уже несколько дней.

спасибо.

ответ

1

Попробуйте использовать Physics2D.OverlapCircle для обнаружения перекрытий. Еще один вариант, который стоит проверить: Physics2D.OverlapArea. Если эти два варианта предоставляют только частичное решение, попробуйте использовать Physics2D.OverlapPoint, проверив несколько точек, чтобы каждая точка была перекрыта; например, если мяч должен быть полностью внутри квадратной проверки для перекрытия четырех точек внутри этого квадрата.

+0

OverlapCircleВсе работали –

Смежные вопросы