forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Сравнените Юнити и другие системы (http://forum.boolean.name/showthread.php?t=13127)

pax 26.12.2010 20:38

Ответ: Сравнените Юнити и другие системы
 
Цитата:

Сообщение от Sef (Сообщение 173219)
например у меня несколько разных персонажей: противники и герои, их обоих объединяет возможность ходить. Это отдельный класс Move который содержит логику и особенности передвижения по особо собранному уровню. Этот класс не надо наследовать от MonoBehaviour и следовательно не надо кидать ни на какой объект в сцене, а просто подключить к классу противника или героя, которые разом получат одинаковую логику движения, которую можно дополнить другими классами.

Не нашел тут причины держать много классов в одном файле. Либо я чего-то не понимаю... Т.е. дублировать классы Move в разных MonoBehaviour? Зачем?

Sef 26.12.2010 23:24

Ответ: Сравнените Юнити и другие системы
 
Цитата:

Сообщение от pax (Сообщение 173221)
Не нашел тут причины держать много классов в одном файле. Либо я чего-то не понимаю... Т.е. дублировать классы Move в разных MonoBehaviour? Зачем?

Нет, достаточно в void Start персонажа создать экземпляр Move, а в Update через объект move получить выполнение этого класса. То есть класс объекта в сцене это меньшая часть программирования и он заключает в себе только запуск других классов. Что обеспечивает разные варианты поведения объекта комбинируя классами в скрипте персонажа.
А каждый класс в принципе и положено держать в разных файлах.

pax 27.12.2010 05:43

Ответ: Сравнените Юнити и другие системы
 
Кажется мне что ты изобрел монобехи в монобехах ;) Компоненты на основе MonoBehaviour и предназначены для выполнения определенных функций. В результате, чтобы сделать объект уникальным, достаточно добавить ему нужные компоненты (поведение), например компонент Move и настроить их поведение открытыми полями.

Sef 27.12.2010 13:00

Ответ: Сравнените Юнити и другие системы
 
Ну тогда например есть ещё один, а может даже много разных но подобных, Классов - AI... они управляют твоим персонажем, то есть работает с классом Move, который содержит в себе все методы передвижения. Эти два класса ни на каком объекте в сцене не висят, а просто создаются экземпляры в классе объекта который в сцене и с монобехом. И в класс AI передаётся ссылка на объект Move, после чего AI сразу получает возможность управлять объектом через методы управления Move и без всяких монобехов и скриптов в сцене. И это уже по-моему какая-то инкапсуляция и какое-то мизерное наследование что и является частью принципов ООП, практически о отсутствии которого в Юнити здесь говорили :) На большее в сторону ООП у меня просто не хватает опыта и знаний, но в этом виноват не "конструктор" Юнити в котором кодить можно по-разному.

pax 27.12.2010 14:35

Ответ: Сравнените Юнити и другие системы
 
Теперь понятно. Ну если будут вопросы как организовать что-то в проекте, то задавай вопросы, подумаем вместе. Слава богу о ООП и использовании его в Unity у меня опыт есть.

pax 17.01.2011 00:18

Ответ: Сравнените Юнити и другие системы
 
Тема немного почищена.


Часовой пояс GMT +4, время: 14:11.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot