использовать MonoBehaviour везде подряд.
Так вот у меня есть MonoBehaviour класс для игрока и я для него создаю подкомпоненты для разных целей (движение, взаимодействие с миром, анимации). раньше делал их всех MonoBehaviour, но уверен это не лучшее решение.
Основная проблема в том что мне нужно в эти классы сетать некоторые поля из эдитора. Я это делал так: создавал класс сереализуемый и туда пихал все параметры и в главном классе делал SerializedField поле этого класса, а потом при инициализации игрока я создавал все нужные компоненты и передавал им в конструктор вот этот обьект с полями.
Нормальное ли это решение? есть ли решения лучше?
И как лучше делать если в каком-то из этих компонентов мне надо использовать какие-то юнитивские ивет функции (update например)? нормально ли делать эту функцию в главном классе, а потом просто вызывать методы у компонентов?
Вообще да, так можно делать, монобех используя для апдейтов или для событий (то есть как вью использовать его из MVC) просто если ты уже так делаешь, то можно спокойно переходить на ECS (дата ориентированное программирование). как вариант это сделать интерфейсы для компонентов с методами Update и тп, и в монобех добавлять их списком и списком проходить по этим компонентам
Привет.На самом деле если можно не использовать монобех,то лучше не использовать.Но тот кейс,который ты описал как раз таки и подразумевает использование монобеха.Поэтому в этом случае я бы тебе рекомендовал все таки использовать монобех
понял, спасибо. а что по поводу передачи сериалайздфилд полей? (первая часть сообщения)
ммм, да вроде норм, пока в описании ничего не вижу плохого. я просто предпочитаю делать интерфейс и его имплементацию выбирать через https://github.com/mackysoft/Unity-SerializeReferenceExtensions (к примеру) и в таком случае можно какие-то компоненты вешать прямо во вью (создавать список из интерфейсов), а еще я веду группу где помогаю с обучением и разбираю такие как у тебя вопросы намного чаще чем тут
Обсуждают сегодня