Вторник, 16 Апреля 2024, 13:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Доступ к объекту производного класса из базового C#
Доступ к объекту производного класса из базового C#
VerdCSДата: Воскресенье, 06 Марта 2016, 13:35 | Сообщение # 1
частый гость
Сейчас нет на сайте
В первый раз сталкиваюсь с такой задачей. Меня интересует есть ли варианты решения, о которых я, возможно, не знаю.

Есть объект 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, то возвращаться будет всегда первый.

Есть идеи?
OpenGOOДата: Воскресенье, 06 Марта 2016, 15:10 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
GetComponents

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
VerdCSДата: Воскресенье, 06 Марта 2016, 15:44 | Сообщение # 3
частый гость
Сейчас нет на сайте
OpenGOO, Да, как вариант. Спасибо.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Доступ к объекту производного класса из базового C#
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг