@WOSNE

Можно ли задавать условие в название GetComponent?

Всем привет) Помогите)
Например, есть СSelectedSpell.gameObject.GetComponent<Огонь>.CastSpell()
Здесь схема стандартная, все работает)
Но можно ли как то, сделать иначе, например:
СSelectedSpell.gameObject.GetComponent<СSelectedSpell.имяОбьекта>.CastSpell()
// он не даёт поставить условие таким образом

В общем, нужно чтоб он считывал название компонента не напрямую, а брал допустим имя объекта и подставлял в название компонента это значение.
И вместо того чтоб не расписывать десятки вариантов, хочется сделать одну простую строку кода.

Как именно можно задать условия для названия компонента и можно ли это вообще сделать?
GetComponent<Чтоб сюда, подставлялись разные значения> :)
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
aDOPPIO
@aDOPPIO
Начинающий c# + Unity программист
Я правильно понял, что у тебя есть множество разных заклинаний, но скрипт, из которого ты пытаешься заклинание "скастить" не может знать, к какому классу оно относится?

Создай класс Spell с методом CastSpell. От Spell наследуй уже, допустим, Fireball и остальные, переопределяй в них метод. Потом ты можешь использовать GetComponent < Spell>() даже если это Fireball. Происходит Downcast, если я не ошибаюсь. Это ООП.

Либо можно попробовать решить с помощью ивентов. Думаю, я бы попробовал так, если активное заклинание постоянно меняется.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Hackerman1
17 лет, плохое зрение.
Либо суй эти значения в переменные, а потом эти переменные суй в <>, либо никак! Так нельзя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы