очень мало кому нужны программисты на Unity без опыта
Ок. А опыт Вы получите только устроившись. Замкнутый круг. Значит, очевидно, надо соглашаться на "не совсем Unity".
Цитата8Observer8 ()
законченные проекты нужны
Опять повод расширить область рассмотрения. Т.к. "опыт в Unity" это процентов 5% от того, что нужно для проекта. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
ООП это не панацея и на ней сосредотачивать все силы не нужно, лучше направить свой взор на IoC и выбрать какой то плагин для этого. и зачем в Unity ООП, Разве что для написания редакторов и плагинов ?
Я вижу вы заблуждайтесь в понятии ООП. C# - и есть объектно ориентированный язык. И всё в Unity Editor и в коде представлено объектами. Любой рабочий код в C# как минимум будет иметь хотя бы один объект. Разве что в редакторе Unity это вам предоставляется в визуальном виде. ООП очень важно понимать. Программисты решают многие проблемы более рационально и правильно нежели те, кто считают ООП пустым местом. Пожалуй это главное заблуждения всех, кто хочет стать профессиональным программистом. Всякий там api, библиотеки упрощающее работу с сетью, графикой и т.д. - это конечно весело. Но понимать принцип гораздо важнее. Подобных авторских api не перечислить, их просто очень много. Но это не значит что все их нужно изучать. Лучше всего изучить основное.
Во времена, когда ещё не было всяких навороченных, авто просчитываемых и авто перерисовываемых интерфейсов в Unity, а существовал только GUI - я для удобства написал свой инструмент для вывода интерфейса. Не спорю - основывался он на GUI, но решал все необходимые задачи, был достаточно шустрым и быстрым.
Я вчера изучил как делать окна: меню, gameover, окно для ввода имени (вирт. клавиатура) и т.д И наладить управление окнами по курсу: Unity 5 2D: Advanced UI | Lynda.com В этом курсе отличный подход: делался один базовый класс GenericWindow, а от него наследуются остальные окна и перезагружались некоторые методы. Так что наследование (а значит ООП) в Unity можно применять с пользой
Можно, но это не то на чем стоит сосредотачивать все свое внимание. Некоторые думают что ООП это некая панацея от всего.... Да и Unity сам подталкивает к КОП, поскольку компонент является базовой единицой для построения логики в Unity
Я вчера изучил как делать окна: меню, gameover, окно для ввода имени (вирт. клавиатура) и т.д И наладить управление окнами по курсу: Unity 5 2D: Advanced UI | Lynda.com В этом курсе отличный подход: делался один базовый класс GenericWindow, а от него наследуются остальные окна и перезагружались некоторые методы. Так что наследование (а значит ООП) в Unity можно применять с пользой
Правильно!) ООП вообще можно везде применять с большой пользой) Не слушайте народ, который говорит, что "ООП не надо". Они привыкли "скриптовать" классом MonoBehaviour всё, больше им не надо. А это как бы не программирование, это так - игрушки детские)
В частности разработки на Unity. В крупных проектах, я бы сказал AAA класса, где нужно сложные системы и прочие навороченные штуки без ООП вам не обойтись, ибо вы наложите себе столько граблей и костылей, что при любой попытке изменить любую более менее важную часть - всё ваще великое "Не ООП" развалится по кусочкам. А это что значит - начинать работу заново. Да и строить такой "Не ОПП" замок - будет сущим адом. Можете тоже самое рассмотреть на примере с окнами, который вы изучили.
Единственное, что скажу. Народ не забивайте голову парню этими глупостями, о том, что ООП не важно. Вы не программисты, вы разработчкики и кажется не понимаете сути. Говорю вам это не в обиду. Приведу конкретный пример: если бы вы попросили профессионального программиста C# подучить вас в программировании, рассказать весь курс по C#, то он бы вам рассказал, что такое ООП и какую мощь он имеет, и что всё начинается именно с этого
Добавлено (13 мая 2016, 11:43) --------------------------------------------- beril, не панацея, но всё же) Скажите сколько у вас дополнений технических из Asset-Store и я скажу вам, что вы именно разработчик) Мне за всё время нужно было всего одно дополнения в виде системы Occlusion Cucling с реалтайм запеканием. Сроки поджимали, самому писать долго. Готового решения не нашлось - его просто нет, никто до сих пор его не написал)
Добавлено (13 мая 2016, 11:56) ---------------------------------------------
Цитата8Observer8 ()
Есть наследование - есть ООП
Если есть объект это уже ООП. Объектно ориентированное программирование - всё на объектах(классы, интерфейсы, наследование и много чего интересного). Минимальная работающая программа на C# будет иметь как минимум один класс и функцию Main(точку входа)
Сообщение отредактировал ShortKedr - Пятница, 13 Мая 2016, 11:48
С этим не спорю :D Но сейчас не о работе, а о понимании) В крупных компаниях есть люди, которые как раз этим и занимаются - упрощают жизнь разработчикам)
Цитатаberil ()
Без MonoBehaviour большая часть API не будет доступна, нужны очень большие костыли будут....
Ну как сказать "будет недоступна", недоступна это вряд ли... Допустим я хочу создать объект на сцене, вызвав функцию из класса, который отвечает за дроп систему(не MonoBehaviour):
Код
namespace Game.Inventory{ public class DropSystem {
public static GameObject Instantiate(string itemName, int amount, Vector3 position, Quaternion rotation){
MonoBehaviour.Instantiate - создаёт объект на сцене, это мне и нужно Просто и красиво. Простым вызовом DropSystem.Instantaite я могу выкинуть в игровом мире предмет, который можно будет подобрать)
Сообщение отредактировал ShortKedr - Пятница, 13 Мая 2016, 12:26
Если мы посмотрим на состав официальных уроков: INTERMEDIATE GAMEPLAY SCRIPTING, то там можно увидеть два урока под названиями "6. Inheritance" и "7. Polymorphism" Разве нельзя сделать из этого вывод что сами разработчики движка рекомендуют использовать ООП?
Добавлено (13 мая 2016, 12:29) --------------------------------------------- Тут нужно ещё отметить такую вещь, что ООП нужен для управления сложностью проекта. Я правда не понял, как можно отказываться от него.
Сообщение отредактировал 8Observer8 - Пятница, 13 Мая 2016, 12:26
8Observer8, да так и есть. Я бы сказал они настаивают. Ещё можете посмотреть Procedural Cave Generation. Наглядный пример создание более менее трудной системы где во всю применяется ООП. Автор, кстати, программист с не плохим стажем, который специализируется в основном на программировании игр, с созданием различных систем, которые в будущем упрощают жизнь) У него есть ещё несколько серий таких уроков, по написанию системы поиска пути и бесконечной генерации ландшафтов. Сейчас заметил, он решил сделать серию уроков по программированию для новичков, где расскажет все основы программирование, ООП и его широкое применение) Я так понимаю, мало кто из начинающих понял его размышления по поводу генерации и поиску пути. Мне же, лично, было интересно посмотреть знакомые для меня темы, взглянуть, какие свои особенные фичи он применит к своим системам)
Сообщение отредактировал ShortKedr - Пятница, 13 Мая 2016, 12:35
Это да , но ты все равно не сможешь полностью избавиться от MonoBehaviour.
beril, а зачем? Это часть движка - способ связи движком) Если отказаться, то можно выкинуть Unity и взяться за написание своего движка. Через полгодика закончить основную навороченную часть, точнее ядро движка и приступить к реализации графического редактора))) Хотя я бы с своём движке графическую реализацию редактора выкинул, только код)
В итоге получится тоже самое, что будут способы связи с движком вроде MonoBehaviour, а без этого можно его так же выкинуть)
Сообщение отредактировал ShortKedr - Пятница, 13 Мая 2016, 12:43
beril, а зачем? Это часть движка - способ связи движком)
MonoBehaviour это не часть движка, это его бич и один из недостатков его Частично эту проблему решает StrangeIoC, но не полностью ). Все наверно хватит уже про Unity, тема то "Как перестать лениться" Что бы не лениться и что то делать нужна мотивация и поддержка, увы поддержкой близких людей не все обладают по той или иной причине. мотивация банальна - хочется кушать
Просто не нужно липить интерфейсы где не нужно и не вязать запутанную иерархию из классов
Я сейчас использую интерфейсы, только для подмены записимостей моками, потому что NSubstitute так работает - по-другому никак. Пока не знаю, где ещё без интерфейсов не обойтись. Но у меня есть проекты, где их зачем-то применяют, нужно поизучать.
Добавлено (13 мая 2016, 13:50) ---------------------------------------------
Цитатаberil ()
Что бы не лениться и что то делать нужна мотивация и поддержка, увы поддержкой близких людей не все обладают по той или иной причине. мотивация банальна - хочется кушать
Монивация "хочется кушать" не работает, когда живёшь с родителями. А по поводу мужского здоровья, то мне стыдно будет брать у родителей деньги на проститутку. Тем более они сейчас взяли ипотеку и денег ели ели хватает. Заводить девушку сейчас мне тоже стыдно. Походу мои знания настолько слабы, что я не смогу найти работу ещё лет 5, а может больше. А искать работу на чём-то другом кроме Unity, я не буду. Они говорят найди хотя бы на 5-8 тыс рублей в месяц
Сообщение отредактировал 8Observer8 - Пятница, 13 Мая 2016, 14:01
Если не протянет, то я протяну ноги. Если они вдруг закроют движок, скажут: "ребята, расходитесь". Потом пропадут все вакансии на Unity, то смысла мне дальше жить - не будет, так как все силы мои силы и время вкладываются в него
Сообщение отредактировал 8Observer8 - Пятница, 13 Мая 2016, 14:13
Если они вдруг закроют движок, скажут: "ребята, расходитесь".
Это было бы слишком хорошо, т.к. означало бы его фиксацию в известном Вам состоянии (и переходом под флаг фанатов и пиратов). Более вероятно другое: при очередном мелком улучшении новая версия перестанет быть совместимой со старыми и потребует полного Вашего переучивания. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Более вероятно другое: при очередном мелком улучшении новая версия перестанет быть совместимой со старыми и потребует полного Вашего переучивания.
У меня нет другого выхода. Либо в течении месяца я нахожу удалённую работу на Unity хотя бы на 5-8 тыс. рублей, либо меня родители так запилят, что я повешусь
я нахожу удалённую работу на Unity хотя бы на 5-8 тыс. рублей
А сколько Вы затратили на свое Unity-обучение? Как Вы думаете, реально получить такой процент прибыли? Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
А сколько Вы затратили на свое Unity-обучение? Как Вы думаете, реально получить такой процент прибыли?
Времени или денег? Времени - 1 год (это если не учитывать, что программированием я занимаюсь с 19 лет, то есть ровно 10 лет). Денег - это нужно посчитать сколько я скачал и изучил платных курсов и книг. Я готов менять свой труд и время, на маленькие деньги. Что вы предлагаете?
Сообщение отредактировал 8Observer8 - Пятница, 13 Мая 2016, 16:05