Всем привет, делаю управление игроком и ботами по паттерну состояние

и столкнулся с такой проблемой: у меня есть класс StateMachine для активации переходов состояний и хочу сделать его общим для состояний игрока и ботов (Родительский класс для состояний бота - State, а для игрока - PlayerState). Я просто хочу при инстансе класса StateMachine у игрока и у ботов передавать через дженерики нужный тип, иначе нужно будет делать свой стейтмашин класс для игрока, хотя там поменятся только тип у поля и все. Но при попытки сделать через дженерики у меня такая ошибка. Как-то можно указать что <T> будет равен или UnitController (класс ботов) или PlayerController? Или как это вообще можно исправить?

3 ответов

10 просмотров

Зачем тебе дженерик сделай общий интерфейс IState и реализуй его в PlayerState и AIState

Зачем тебе дженерик там? У тебя стейт машина это монобех который ты накидываешь на префаб. Базовый класс стеййт наследуешь на плеер стейт, и на энемистейт и все

Может быть монобехом, это от подхода зависит

Похожие вопросы

Обсуждают сегодня

Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Всем привет, может кто знает нормальных иностранных хостинг провайдеров. Что бы по качеству аналогичные netangels, beget, timeweb?
Black Cat
4
Второй вопрос: снимаются ли эти ограничения при покупке на fragment хрени за кучу денег? (до 4096 / 2048)
Артем Уколов
3
Добрый день , слышали про то что XML схемы https://schemas.xmlsoap.org/soap/envelope/ перестали работать со поза-вчера. А домен https://schemas.xmlsoap.org/ , отвечает 404 оши...
Max Dubovsky
3
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Карта сайта