В первый раз сталкиваюсь с такой задачей. Меня интересует есть ли варианты решения, о которых я, возможно, не знаю.
Есть объект Collider2D, полученный любым из возможных способов;
Нужно получить доступ к полям объекта, производного, от этого объекта (BoxCollider2D, CircleCollider2D и т.д.).
Моё решение.
Код
Collider2D collider = Physics2D.OverlapArea (pointA, pointB);
if (collider is BoxCollider2D) {
BoxCollider2D box = collider.GetComponent<BoxCollider2D> ();
//Делаем что-то с box
} else if (collider is PolygonCollider2D) {
PolygonCollider2D poly = collider.GetComponent<PolygonCollider2D > ();
//Делаем что-то с poly
}
Проблема в том что GetComponent возвращает первый попавшийся компонент и если на GO будет несколько BoxCollider2D, то возвращаться будет всегда первый.
Есть идеи?