MengurLord

MengurLord

Пикабушник
поставил 746 плюсов и 35 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
5 лет на Пикабу
17К рейтинг 34 подписчика 20 подписок 65 постов 19 в горячем

Программирование в Unity на примере кота (часть 1: фигачим кота тапком)

Программирование в Unity на примере кота (часть 1: фигачим кота тапком) Программирование, Unity, Кот, Урок, Простыми словами, Длиннопост

Бывают в жизни моменты, когда в голову ударяет какая-то полная хрень, и ты просто не можешь ее не исполнить. Именно по этой причине я сейчас пишу этот пост. Не так давно начал изучать Юнити и C#. До этого немного фигачил на С++ в институте и писал скрипты в паре игр серии TES.


Заметил, что многие мои знакомые не понимают, как устроено программирование. И дело было даже не в незнании языка, а в осознании самой логики процессов. Вот для таких людей я и пишу этот пост. Постараюсь выдать совсем немного информации в максимально простой форме. (Но рад буду и бывалым программистам. Сам не могу считаться профессионалом, поэтому любым поправкам в комментариях буду рад).


Итак. Все, что будет дальше - это лично мое мнение, сложившееся после знакомства с C#, C++, и папирусом (скриптовый язык TES). Главное в программировании не сколько знание самого языка, сколько понимание, как это все устроено. С этого и начнем.


Самую основу основ в С# составляет так называемый класс. Представьте себе два кота.

Программирование в Unity на примере кота (часть 1: фигачим кота тапком) Программирование, Unity, Кот, Урок, Простыми словами, Длиннопост

Вот перед вами, вроде бы, две разные зверюги, каждая из которых никак не связана с другой. Однако их поведение очень похоже. Даже если вы возьмете тысячу котов (хана вашей мебели в таком случае), то вся эта тысяча будет иметь общие повадки.


В этом нам и помогает класс. Когда нам нужно создать тысячу котов, нам не придется описывать каждого кота по отдельности. Мы создадим класс кота, куда и зафигачим его поведение. (В частности реакцию на летящий в него тапок).


Допустим, что мы создали этот прекрасный мурчащий класс кота. Однако, пока что, мы не сказали коту, как он должен себя вести. За его поведение будут отвечать функции.


Функции - это такие куски поведения, которые срабатывают, когда происходит какое-то событие. Допустим мы заходим в комнату и видим там кота, который занимается нехорошими делами. Нам это не нравится и мы швыряем в кота тапком. Так вот "швыряние в кота тапком" можно засчитать за событие. И когда оно происходит, у кота включается функция "сдристнуть куда подальше".


На движке Unity это будет выглядеть примерно так:


=================================================

Void Зафигачивание_тапком ()

{

Сдристнуть_куда_подальше();

}

=================================================


Сегодня я не хочу рассказывать о синтаксисе. Просто уточню, что слово Void в Unity ставится перед определением каждой функции (ну или почти каждой. В этом я пока еще не разобрался до конца).


И вот такой кусок поведения, который я описал выше, мы вставляем в тот самый класс Кота, который создали в самом начале. Теперь вся наша тысяча котов автоматически получила возможность сдристнуть от тапка.

Программирование в Unity на примере кота (часть 1: фигачим кота тапком) Программирование, Unity, Кот, Урок, Простыми словами, Длиннопост

Но к сожалению все не так просто. Любой язык программирования создают люди, и каждое действие, которое может совершить объект, два и каждое событие, которое может произойти, они прописывают вручную.


Само собой, они стараются оптимизировать свой язык, сделав его более универсальным. Например, Выше я написал, что кот реагирует на событие "Зафигачивание_тапком". Однако в кота мы можем зафигачить не только тапком, но и кучей других замечательных тяжелых вещей. Внедрять в язык программирования каждую такую возможность - очень и очень долго. Гораздо проще объединить их в одно событие. Назовем его "зафигачивание_чем_либо".


Теперь кот у нас будет реагировать на зафигачивание по нему любым предметом. Однако в данном посте я рассказывать про зафигачивание именно тапком. Поэтому нам нужно подправить поведение кота.


В функции, которые мы описываем для нашего класса кота можно также добавлять так называемые переменные. Это такие замечательные штуки, которые делают каждую отдельную мурчащую животинку уникальной. Однако об этом как-нибудь потом.


На данном этапе нам надо убедиться, что в кота зафигачили именно тапком. Для этого нам нужно, чтобы в нашу функцию "зафигачить_чем_либо" передавалась информация о том объекте, который мы швыряем в кота. Такая информация записывается в скобочках после определения самой функции. Вот так:


=================================================

Void зафигачивание_чем_либо (Зафигаченый_объект)

{

Сдристнуть_куда_подальше();

}

=================================================


"зафигаченый_объект" в данном случае будет хранить информацию о том объекте, который мы швырнули в кота. Таким образом мы сможем внутри нашего чудесного события проверить, а действительно ли тапком мы киданули в кота. Вдруг это был кусок вкусной колбасы.


для того, чтобы провести проверку, у нас есть так называемый оператор "if" (по русски: "если"). Операторы - это еще одни чудесные ребята, которые позволяют расширить наши с вами возможности. Например, благодаря оператору "if" мы сможем проверить, чем швырнули в кота. На языке логики это будет звучать так:


Если Зафигаченный_объект является тапком, то вызывается событие Сдристнуть_куда_подальше();


А в Юнити будет выглядеть примерно так:


=================================================

Void зафигачивание_чем_либо (Зафигаченый_объект)

{

if (Зафигаченый_объект == тапок)

{

Сдристнуть_куда_подальше();

}

}

=================================================


Вот теперь наш кот будет убегать куда подальше только в том случае, если мы зафигачим в него именно тапком. Однако на пятикилограмовую гирю, например, он все еще не среагирует. Но и это - задача решаемая. Однако о ней как-нибудь в другой раз.


Пока что на этом все. Если остались какие-то вопросы, пишите в комментариях. Если я где-то сильно накосячил, тоже буду рад поправкам в комментариях.


В следующий раз постараюсь рассказать еще о чем-нибудь. Конечно-же на примере кота=)


Две из трех фотографий жадно украдены с просторов гугла. Одна снята мной лично.

Показать полностью 2

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты"

Набрел я тут недавно на интересный пост о "Тайне третьей планеты":(https://pikabu.ru/story/karlson_tretey_planetyi_5535990)


И вспомнил, как я однажды, тоже пытался приложить руку к развитию этой вселенной. Было дело в далеком 2016 году. Жил я себе спокойно, никого не трогал, изредка писал короткие рассказы больше для себя, нежели для других.


И тут мне в ВК постучался странный человек по имени Алексей.

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

- "Свидетели Иеговы" узнали о существовании интернета? - подумал я тогда. Однако, вместо того, чтобы отправить моего нового знакомого в пешее эротическое, я постарался быть максимально тактичным, дабы никого не обидеть. Возможно, зря. Но потом:

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

Оп-па. Продвигает свою религию, развивает политический проект, да еще и комиксы рисует? (спойлер: кроме всего этого он продвигает некие Шнекоходы, а также приложение на телефон для водителей. Ничего из этого не было готово тогда, и, насколько я знаю, не готово до сих пор)


Бабла на оплату чего либо у него не было уже тогда, поэтому мне предлагалось поучаствовать во всем этом за долю с продаж. Коричневой субстанцией запахло уже тогда, однако я был молод и глуп. Возможность приложить руку к развитию полюбившейся многим вселенной выпадает раз в жизни. Ну я и согласился, почему бы, собственно говоря, и нет? Диалог продолжался:

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

Эээээм. Тут уже у меня произошел диссонанс. Добрый мульт про исследование космоса этот человек хочет превратить в боевую фантастику, попутно утверждая, что оригинал истории - говно.

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

Дальше был диалог примерно такого плана (по скайпу):

"Я: А не лучше ли постараться передать в комиксе дух оригинала? Ведь истинные фанаты мультика будут недовольны.

Алексей: Они старые, комиксы не читают. Мы хотим, чтобы нас читало молодое поколение!

Я: Но молодое поколение скорее всего будет совершенно незнакомо с оригиналом. Почему бы тогда вообще не сделать свою собственную вселенную?

Алексей: Неее. Капитаны - раскрученный бренд. Их многие знают!

Я: Но те, кто их знает, уже не читают комиксы. Да и им не понравится смена стиля повествования.

Алексей: Но мы же не на них рассчитываем, а на молодое поколение.

Я: ..."


Ну ладно. Идиотия еще та, но я хотя-бы мог попробовать придумать более интересную и логичную идею захвата Земли инопланетянами. Даже расписал несколько весьма интересных (конечно-же на мой взгляд) вариантов. Но Алексей Говорил, что все это слишком сложно, и просил сделать какой-то тупоклон звездного десанта. Потом от него начал приходить поток говоноидей. особенно понравились мысли по поводу птицы-говоруна. Это - Шедевр!

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост
Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост
Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

Даже хотел убить главных героев в конце истории. Убить в приквеле героев, которые появились и в оригинальном мультике - это надо-ж додуматься.

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

В конце концов этих разногласий я, все таки, послал Алексея куда подальше.

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост
Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

А сегодня вспомнил об этом человеке с поистине титаническим рвением, и решил проверить, как у него дела. Ничего не изменилось. Разве что он где-то заказал 3D фигурки капитаном, и теперь пытается их распродавать.

Как я пытался приложить руку к приквелу мультика "тайна третьей планеты" Тайна третьей планеты, Продюсер, Комиксы, Сценарий, Реальная история из жизни, Длиннопост

Надеюсь, этот шлак под названием "капитаны Ким и Буран" никогда не выйдет в свет под предводительством такого продюсера. Даже если для комикса найдется гениальный сценарист и художник, там все равно останутся Личинка-Говорун и капитан, пересмотревший матрицы.


Зато теперь я понимаю, почему, порой, некоторые фильмы на основе популярных источников оказываются полным фуфлом. Не всегда виной всему являются сценаристы =)


Само собой, на звание крутого сценариста не претендую, однако то, что данный индивид мне втирал в качестве основы для сценария, заведомо является полным фуфлом. Если интересно, могу отдельным постом закинуть те задумки, что были у меня для этого комикса.

Показать полностью 11

Пост злобного котика (и немного фотошопа)

Пост злобного котика (и немного фотошопа) Кот, Самый злой кот, Фотошоп мастер, Милая киса, Кисамурыса, Суровая киса, Длиннопост
Пост злобного котика (и немного фотошопа) Кот, Самый злой кот, Фотошоп мастер, Милая киса, Кисамурыса, Суровая киса, Длиннопост
Пост злобного котика (и немного фотошопа) Кот, Самый злой кот, Фотошоп мастер, Милая киса, Кисамурыса, Суровая киса, Длиннопост
Показать полностью 3

Фотокляксы

Посидел тут от скуки немного в фотошопе. Получилось миленько =)

Фотокляксы Фотошоп мастер, Неон, Радуга, RGB
Фотокляксы Фотошоп мастер, Неон, Радуга, RGB
Показать полностью 2

Кошмары на улице google

Решил тут полазить по улочкам в гугл картах. Нарвался на очень интересную панораму.

Кошмары на улице google Google, Google Street View, Северная Корея, Панорамная съемка, Ужасы, Жуть, Длиннопост
Кошмары на улице google Google, Google Street View, Северная Корея, Панорамная съемка, Ужасы, Жуть, Длиннопост
Кошмары на улице google Google, Google Street View, Северная Корея, Панорамная съемка, Ужасы, Жуть, Длиннопост
Кошмары на улице google Google, Google Street View, Северная Корея, Панорамная съемка, Ужасы, Жуть, Длиннопост

Ссылка на саму панораму:

https://www.google.ru/maps/@39.043761,125.7577631,3a,60.5y,3...


надеюсь, ссылка за гугл не будет считаться скрытой рекламой.

Показать полностью 4

Календарь концов света до конца года.

Вот знаете, после 2012-го года ажиотаж по концам света сошел на нет. Сегодня я от скуки решил глянуть, а нет ли в ближайшее время еще апокалипсисов. Оказалось, что есть. Вот небольшие вырезки о концах света до конца года=)

Календарь концов света до конца года. Конец света, Смерть, Катастрофа, Война, Длиннопост, Апокалипсис

Этот конец света мы пропустили: "Очередной датой апокалипсиса названо 19 августа 2017 года. Предсказание о конце света сделала блаженная Матрона Московская перед своей смертью.В пророчествах святой было сказано, что 19 августа «люди падут к земле», а на восходе восстанут, и мир станет другим. По ее словам, человечество ожидают «великие скорби», которых им еще не доводилось испытывать."

Календарь концов света до конца года. Конец света, Смерть, Катастрофа, Война, Длиннопост, Апокалипсис

А этот уже совсем скоро: "Американский футуролог заявил о том, что конец света наступит 23 сентября 2017 года.Он сообщил, что провел совместно с коллегами исследование и пришел к выводу, что человечество будет уничтожено уже в этом месяце.По его словам, через несколько недель Земля сблизиться с таинственной планетой Х, которую называют еще Нибиру. Эта загадочная планета, которую до сих пор не удалось обнаружить ученым, и спровоцирует апокалипсис на Земле."

Календарь концов света до конца года. Конец света, Смерть, Катастрофа, Война, Длиннопост, Апокалипсис

А если кто пропустит, то не беда: "12 октября 2017 года Земле угрожает страшная катастрофа — во всяком случае, об этом сообщает ряд средств массовой информации со ссылкой на ученых. Сообщается, что уже ближайшей осенью с нашей планетой может столкнуться огромный астероид, и это чревато опасными последствиями."

Календарь концов света до конца года. Конец света, Смерть, Катастрофа, Война, Длиннопост, Апокалипсис

А на 2018-й тоже нашел список возможных концов света. правда без точных дат:


/ Вспыхнет серьезная вирусная инфекция, которая унесет многомиллионное количество жизней. Именно это предсказание сделала на 2018 год Матрона. Она утверждала, что люди будут гибнуть без войны и спасение найдется не скоро.


/ Восточная Азия и Америка окажутся под водой и большая часть их жителей погибнет.


/ К Земле движется огромный метеорит, который и послужит причиной глобальной катастрофы.


/ Во многих развитых странах начнется сильнейший экономический кризис: люди будут умирать от голода.


/ Спящие вулканы проснутся от длительного сна и начнутся массовые извержения, от которых будет тяжело укрыться.


/ Земля встретится с инопланетной жизнью: НЛО прилетит в Америку и на планету ступит самая мудрая из внеземных цивилизаций. Именно эти существа смогут предотвратить назревающий военный конфликт.

======================

Теперь, если вы хотите выпить, но вам нужен повод, то гляньте на календарь, вдруг именно в этот день мир будет подходить к своему концу. Если я какой-то конец света пропустил, то пишите в комментариях=)


Большая часть текста и картинки были любезно свиснуты из интернета.

Показать полностью 3

Проба космопера

Довелось тут вчера проехаться ночью за городом. Выкроил пару минут, чтобы попробовать снять звездное небо. Мой первый опыт. Снимал со штатива на выдержке 30-60 секунд.


Фотоаппарат Canon 600d со штатным объективом.

Проба космопера Космос, Фотография, Снимки из космоса, Астрономия, Небо, Длиннопост
Проба космопера Космос, Фотография, Снимки из космоса, Астрономия, Небо, Длиннопост
Проба космопера Космос, Фотография, Снимки из космоса, Астрономия, Небо, Длиннопост

Луна была офигенной, но заснять это нормально не вышло. Поэтому она как второе солнышко. Только более мрачное=)

Проба космопера Космос, Фотография, Снимки из космоса, Астрономия, Небо, Длиннопост
Показать полностью 4

3d модель кухни

Продолжаю изучать макс. Зафигачил тут более детализированную модель кухни. Разумеется, с косяками=) Например - отсутствующий кран=)


но со светом нужно еще поиграть. Есть у кого на примете хорошая статья по работе со светом в интерьере?

3d модель кухни 3D, 3D моделирование, Кухня, Модель кухни, 3ds Max
Отличная работа, все прочитано!