На Unity сделано много замечательных игр: Hearthstone, VRChat, Escape from Tarkov, Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие.
Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
Какие у Unity сильные стороны? Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
Какие у Unity слабые стороны? Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
На каких платформах работают созданные с помощью Unity игры? Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
Часто вижу скриншоты с красивой природой на Unity. Как такое создать? Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки? Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
Бесплатен ли Unity? Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение по книгам (печатные издания, актуальные электронные версии книг можно скачать на официальных сайтах издателей)
Обучение языку C# книги на русском языке:
1. C# для чайников Автор книги – Джон Пол Мюллер 2. Программирование на C# для начинающих 2е части Автор: Алексей Васильев 3. Head First. Изучаем C# 4е издание Авторы: Эндрю Стиллмен, Дженнифер Грин 4. Unity и C#. Геймдев от идеи до реализации Автор: Джереми Гибсон Бонд 5. Язык программирования C# 7 и платформы .NET и .NET Core Авторы: Филипп Джепикс, Эндрю Троелсен
Для людей абсолютно не знакомых с движком есть 3и основные книги на русском языке:
1. Разработка игр на Unity 2018 за 24 часа Майка Гейга (Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков). 2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне (Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.) 3. Unity в действии. Мультиплатформенная разработка на C#. 3-е межд. издание Хокинг Джозеф (Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
Когда у тебя депрессия, процесс может идти крайне медленно/стоять на одном месте, особенно в том случае, если ты делаешь что-то творческое. Например, дизайн, моделирование, текстурирование. Как мозг определяет, что я сделал что-то хорошее, красивое, правильное? Выделяется дофамин. При депрессии все положительные эмоции подавляются, или вообще не генерируются, поэтому ты можешь теоретически сделать что-то годное, но посколько в голове не вырабывается гормон счастья от результата, то ты обречен снова и снова переписывать, переделывать, перерисовывать и т.п., поскольку результат "не удовлятворяет" в химичесом смысле. Но, по правде, в состоянии депрессии ничто не удовлетворяет. Но тут проблема именно в творческих делах, где важен эмоциональный отклик. Поэтому, если делать что-то, где показатель - не эмоция, а соотвествие референсу/личному опыту, то тут депрессующий анон вполне может продвигаться дальше. Например, в написании кода главное - чтобы он работал. Чтобы понять, что он работает, не нужно испытывать дофамин, а лишь увидеть, что компилятор не выдал ошибок, и что в игре код работает как надо. Когда же ты смоделировал, например, дом, тот показатель успешности - твое чувство удовлетворенности, но он подавляется депрессией. Или прочей эмоциональной траблой в башке.
>>880681 Зря ты так про кодинг. У меня с ним ровно такие же проблемы, как у тебя с моделированием. Это какой-то сорт оф перфекционизм, когда тебе хочется, чтобы всё в твоей игре было идеально. Начиная с кодовой базы, чтобы в ней каждое название класса было выверено, каждый отступ был правильно сделан и так далее.
>>880773 >Есть где-то полный список игор на юнете? Разумеется нет. Как ты себе это представляешь? Это как спрашивать полный список сайтов на каком-то движке.
>>880804 Нормальные версии юнити грузили карту на 100% и всё запекалось за 15 минут. ЛТСище нагружает карту на 3 процента и запекает сутки Тут уже не важно, что 1060, понимаешь? 100 и 3 процента, вот что важно. Индусы опять насрали
>>880916 Навмеш хранится не на префабе. По моему до 2022.2 он хранился просто в сцене, а в последней ЛТСке он вроде как в компоненте одном конкретном. Просто уменьшай это дерьмо, пока не будет удовлетворительно. Ничего страшного, что оно не доходит до краёв, если настроишь высоту дропа и дальность прыжка, всё будет норм и мобы будут спрыгивать/перепрыгивать
>>881011 Может ты говоришь про что то другое, но вроде это называется разрешение и это не настройка камеры, а настройка окна с игрой / графическая настройка
Я пытаюсь прикрутить стейт машину для героя и врагов и вот не знаю как правильно это вообще сделать. Делать отдельную для игрока и прикрутить абстрактную для врагов? Враги же не должны уметь делать много то, что умеет мой герой. Наверное, а вдруг я в будущем захочу, чтобы могли? Это же всё переписывать, или писать снова один и тот же код, что не особо правильно. Вот эти все попытки создать какую-то идеальную архитектуру доводят до того, что я просто весь день читаю форумы/статьи на эту тему, но сам ничего ручками не делаю, так как хочу что-то идельное и боюсь накосячить. Что вообще делать когщда не знаешь, что хочешь? Забить и говнокодом всё сделать, а уже в будущем буду разгребать, когда умнее стану?
>>881012 Это именно камера. Мне именно нужна возможность задать размер камеры по ширине и по высоте. Накидал как камеры работает в юнити и как работает в годоте (такая возможность есть не только в годоте) для примера какое поведение мне нужно.
В юнити при изменение размера окна шарик куда-то сплющивает, то расплющивает. В годоте не колбасит изображение.
Знаю, что тут есть один анон из коммерческой разработки на Юнити. Можешь подсказать по поводу поиска юнити разработчиков?
Мне нужно найти 2-3 человека с приличным опытом коммерческой разработки мобильных игр. Таких, с которыми не нужно нянчиться, которые могут приступить сразу к работе. И тут две проблемы: 1) как их привлечь, если они уже официально где-то работают, а я хочу платить в чёрную криптой (3-5к баксов)? 2) как их искать на линкедине, как правильно отсеивать от блаженных, которые на самом деле ничего толком не могут делать самостоятельно. Реально ли вообще привлечь сеньора на удалёнку за 3-5к в месяц в чёрную? Или это из области фантастики.
>>881084 >я хочу платить в чёрную криптой (3-5к баксов) Если не официально, то это всегда риски, либо для работников, либо для работодателя. Есть шанс что всё срастётся и будет чики-пуки, есть риск что одна из сторон кинет каким либо образом. Идеальный вариант это знакомства или связи. Если рандомно, то это чистая рулетка.
Как точнее определять контакт с землей? Использую Триггер Бокс коллайдер. Так он постоянно на разной высоте останавливается. >>881106 >Че там, уже кому-то раздали доступ? Вчера только думал, что вскоре появится кнопка "Сделать игру". Предчувствую скорый конец геймдева. ИИ заменит кругом людей.
У меня одна фича работает неидеально. Есть небольшая вероятность, что игрок может сломать/застопорить весь геймплей, и будет вынужден перезапустить игру. И я с этим смирился, потому что потратил много сил, но идеального неубиваемого решения не продумал. Надо признать свою тупость, и двигаться дальше.
СКОЛЬКО УЖЕ ПЫТАЮСЬ ВКАТИТЬСЯ В ЭТОТ ЮНИТИ НИКАК НАХУЙ КАКАЯ ЖЕ УРОДСКАЯ ЭТА ХУИТА С УЕБИЩНЫМ МЕЛКИМ ИНТЕРФЕЙСОМ МИКРОСКОПИЧЕСКИМ ШРИФТОМ НАХУЙ КАК С ЭТОЙ ХУЙНЕЙ РАБОТАТЬ МНЕ ЭКРАН ЦЕЛОВАТЬ ПРИХОДИТЬСЯ ЧТОБЫ ХОТЬ ЧТО-ТО РАЗГЛЯДЕТЬ ЕЩЕ И ЕБАНЫЕ ЦВЕТА ВСЕ ОДНОТОННЫЕ БЛЯДСКИЙ ПИЗДОС А ДОКУМЕНТАЦИЯ ЭТО ПРОСТО ПОЛНЫЙ АХУЙ КАК СКАЛИРУЕТСЯ ЕБАНАЯ МОДНАЯ ХУЙНЯ НАХУЙ НИХУЯ В ЭТОЙ МОДНОЙ ПИЗДЕ НЕ ВИДНО
>>881219 В соседнем движке можно поставить любой шрифт и размер букв, а ещё перекрасить интерфейс в любой цвет (по умолчанию синий) и устроить светомузыку с нескучными живыми обоями в стиле аниме, что даёт бонус к скорости разработки инди-игр +200% и увеличивает размер глаз, что, в свою очередь, улучшает зрение, делая тебя похожим на ОЯШа. Алсо, документация очень хорошая и встроена в редактор, лично я сделал множество багофич опираясь только на подсказки по кнопке F1 без необходимости искать что-то в интернетах. Игру, правда, так и не сделал, но было приятно провести время, а это главное.
Я пытался помечать зону спрайтом, получается говно, т.к. сопоставлять радиус спрайта с с длинной вектора не оч удобно. Делал через partical system - просто некрасиво выходит
>>881254 > Я пытался помечать зону спрайтом, получается говно, т.к. сопоставлять радиус спрайта с с длинной вектора не оч удобно Подумой. Вот у тебя есть квадратная картинка, тогда от центра касательная от каждой из сторон - 0.5.
>>881111 >Как точнее определять контакт с землей Physics.Raycast() Physics.CheckSphere()
>>881084 Смотря какой сложности твоя хуета. Джун-вкатун, могу сразу сам приступить к работе, что не знаю по видосам на ютубе. Опиши хули надо и кидай контакты
Аноны, нид хелп! Кто-нибудь пользуется Блендером и Сабстансом? Вот смотрите, у меня процесс выглядит примерно так: я создал сложную модельку в блендере, повесил на разные части разные отдельные пустые материалы, сделал UV-развёртку. Сохранил, потом открыл реузультат в Сабстансе, навесил на пустые материалы материалы из библиотеки сабстанса, подкрутил чтобы выглядело красиво. Сохранил текстуру с пресетом Юнити. Потом открываю Юнити, закидываю туда модель из Блендера, текстуры из Сабстанса, извлекаю материалы из модели и дальше начинается самое веселье - я сижу и вручную распихиваю текстуры по материалам. В каждый материал нужно запихнуть Альбедо, Металик и Нормали, не перепутать текстуры от разных материалов и ничего не пропустить. Если объект большой, то материалов может быть пара десятков.
Ну и я подумал - а нет ли возможности как-то автоматически подгрузить все соответствующие текстуры в материалы? Они же после Сабстанса все подписаны соответствующим образом, нужно просто прочитать и загрузить.
>>881296 >Если объект большой, то материалов может быть пара десятков. Тут твоя ошибка. На объекте, какой бы он не был не должно быть столько, самое большое это для персонажа 3-4. Всё остальное делается атласом текстур и шейдером при необходимости особых эффектов.
>>881298 >для персонажа 3-4. А если у него вся локация одним куском?
>>881296 >открыл реузультат в Сабстансе Что мешает настроить материалы в блендере? Или импортировать материалы из сабстенса в блендер и экспортировать по-человечески уже из блендера.
>>881310 >RAM: 32GB >Downloading the Megacity Multiplayer repo: Up to 20 min >Opening the project with library build: Up to 20 min >When going into the main scene, subscenes need to import: Up to 20 min >When going into the playmode, server world is created: Up to 30 min Вот это Ж Ы Р Н О Т А, есть видео или скриншоты?
>>881356 Да, они ничего из перечисленного не могут продемонстрировать.
А вот почему они не могут контролировать свои ротейшены это отдельный разговор. Неужели дотс такое говно, что они сами не могут сделать, чтобы тачки не колбасило?
Еще немного про мою игру с ебанутыми очень сложными, но интересными головоломками. На данный момент я уже близок к тому чтобы выпустить демку с 6 уровнями. Но, по моим прикидкам - это прохождение на час-полтора. На видео - прохождение 5 уровня. Там две комнаты с терминалами, напротив каждого терминала панель, которую можно вращать. В каждом терминале нужно ввести номер, который отобразится в панели напротив. Номер генерируется каждый раз, когда чел проходит через плитку, входя в комнату с терминалом. С терминалом №1 все ок - крутишь панель напротив, чтобы номер был виден и вводишь его. А вот с терминалом №2 все плохо - панель напротив не работает,всегда черный экран. Я хочу туда потом добавить иконку, типа сломано. Поэтому номер для терминала №2 отображается на дисплее напротив терминала №1, а он не виден. Выйти из комнаты, чтобы запомнить номер, не получится - когда проходишь мимо терминала, он сбрасывается. Решение - вспомнить, что в предыщем уровне было зеркало, прикрепить его к вращающейся панели, покрутить, как надо, и увидеть код через отражение. В видео это в конце сделано.
>>881549 Конечно можно, и даже нужно, но так-же надо чтобы какая то инфа была об игре со стороны разработки на юнити, иначе смысл постить о разработке игры, но не рассказывать как и что делаешь на этом движке в треде движка? Чуть чуть головку включай прежде чем постить, это просто дружеский совет.
>>881544 >очень сложными головоломками Да ну? И даже без квестов в стиле "через полпятнадцатого слева отнимание пять" как у нульча было? Кинешь ссылку, когда будет готово? Постить рили есть смысл в субшоте или в отдельном треде.
>>881748 Кароч, в юнити float очень трудно "поймать" в точных значениях.
Не знаю что у тебя там за углы, но скорей всего он при преобразовании в int округляет до 179 или 181. Тут либо ебаться с округлением float до большего/меньшего значения (179.00001 округлять до 180), либо прописать if(угол_во_float >= 180)
поясните, как правильно включать анимацию ходьбы? у меня есть аниматор, в нем есть клип с ходьбой, идл, прыжок и все остальное, идл основная анимация, из него и обратно переход на ходьбу. если на триггер переход, то анимация один раз проигрывается, а если на флажок, то персонаж первые несколько кадров дрочит. может, у меня клипы не в том порядке разложены?
Я всегда ставлю скобки, даже если там только одна строка if (bool) Do(); - нет, я так не делаю if (bool) Do(); - тоже нет if (bool) { Do(); - вот так заебись }
>>881845 Кароч если доска лежит в сцене сразу, то все ок, если инстанциировать, то агент не видит "новый" навмеш, ходит тока по старому. Надо как-то обновить данные по NavMesh у агента или типа того. Как - хз.
>>881852 У тебя юнька какого года, какой там навмеш? Запекает по статику или объекты с компонентом? Доску спавнишь, делаешь её статиком/даёшь компонент? Попробуй положить доску и запечь через какое то время, типа, пол секунды
>>881845 >>881855 >>881920 Короче, сделал так, что навмеш запекается в рантайме на площади вокруг перса. Все работает. Не совсем то что надо, но пока пойдет. Почему не перезапекает всю карту я хз, скорее всего руки кривые.
мои чюваки, подскажите курсы, со всеми действиями при разработке: создание, сделал то, это, собрал в проект, выложил на площадку. есть какие-нибудь релевантые и более-менее адекватные?
Я правильно понимаю, это значит что все, у кого нет зарубежной карты и возможности съездить в европу для открытия счёта, теперь не смогут подключить аналитику и IAP? Что это вообще значит?
>>882323 Ты можешь использовать pyypl. Я через их карту всякую херню в интернете оплачиваю. Единственное, там не подойдёт обычный российский паспорт. Нужен именно загранпаспорт.
>>882360 >спокойно обойтись бесплатной версией? Уже лет 5 можно обходится бесплатной, всё тоже самое. Раньше во времена динозавров ставили кряк чтоб получить полный функционал, потом только чтоб тему на темную менять, сейчас смысла нет от слова совсем. Из кряков есть смысл накатывать только отключатор начальной картинки от самих юников.
Как реализуете локализацию? Я все храню в StreamingAssets в txt-файле. Он парсится на доступные языки (верхняя строчка) и они добавится в выпадающий список при запуске игры.
Захотел добавить French - пишешь в верхней строчке, чтобы получилось English|Русский|French и добавляешь слова ng|New game|Новая игра|Le Novaya Igra (ng - это идентификатор, Localization.GetText("ng")) В юните есть localization package, я его некоторое время, но для меня он слишком навороченный и в нем переодически надо копаться на уровне исходников, и разве он позволяет сторонним челикам добавлять свой язык даже когда игра вышла таким простым путем, как правка txt файла?
>>882488 Я храню в JSON. Там можно указывать доп. параметры для plural form.
Тебе не обязательно весь перевод хранить в одном файле. Это неудобно. Особенно, если ты отдашь перевод на аутсорс. Ты можешь добавить папку Locale и просто загружать все файлы оттуда. Название файлы будет названием языка. То есть будут: English.txt, Русский.txt и так далее.
>>882488 I2 Localization, но там данные хранятся в со, поэтому очевидно при мердже проблемы, которые тяжко фиксятся
Думаю написать свой калыч для локализации, чтобы был кастомный редактор который грузит и сохраняет данные в жсон и дальше их можно было в игру вставлять
По вашим ощущениям, если бы у вас была возможность сейчас сделать клон Геншина, то сколько времени, денег и людей в команде вам бы понадобилось, учитывая, что ко всему прочему ставится задача максимально оптимизировать бюджет?
>>882560 Семь лет, двадцать миллиардов, один человек. Пять лярдов тебе, пять лярдов мне, а на оставшиеся десять нанимаем вот этого - >>882562. Ещё два года отдыхаем и катаемся по мальдивам на яхте со шлюхами на эти деньги. Как тебе идея?
>>882562 >>882563 Перефразирую. Никто вам ничего не заказывает. Вы по своей инициативе на свой бюджет всё планируете. Как бы вы организовали процессы? >>882580 Тут главный момент - коммерческий успех. А на данный момент Генш - самый подходящий пример
>>882617 Да, я в курсе. Сам охуел когда гуглил. Но в этом-то и смысл мысленного эксперимента. Это как, допустим, я посчитал бы сам сколько бы мне стоило переснять знаменитый рекламный ролик Кока-колы в музее. Я бы смог переснять без потери качества, минимум, в 15 раз дешевле. Так как я в теме. Вот тут так же >>882608 Да, спасибо за ссылки. Я в курсе пайалайна тоже. Сам занимаюсь видеопродакшеном с большой командой. Но суть вопроса в мысленном эксперименте. Вы же сами для себя не станете делать всё как там написано. Много чего оптимизируете и найдёте альт варианты
>>882623 >Но суть вопроса в мысленном эксперименте. Так я вот мысленно проанализировав и получил >>882562 Вполне себе бьется с первоначальным бюджетом и командой разработки геншина. >оптимизируете Так это не работает. Будет больше, меньше точно не будет.
Можно глянуть на пример создания известной игры "Смута", где государство выделило 230млн рублей, а они за полгода уже потратили 500млн.
>>882623 > Да, я в курсе. Сам охуел когда гуглил. Но в этом-то и смысл мысленного эксперимента. Это как, допустим, я посчитал бы сам сколько бы мне стоило переснять знаменитый рекламный ролик Кока-колы в музее. Я бы смог переснять без потери качества, минимум, в 15 раз дешевле. Так как я в теме. > Вот тут так же На самом деле охуевать там нечего, в игре большой бесшовный мир, много механик, много визуала, отличная оптимизация. Причем стоит отметить, что визуальный стиль своеобразный(=были потрачены усилия и немало итераций концептов чтобы найти идеал), персонажи все и анимации реально качественные(=опять же были потрачены ресурсы на пробы и ошибки для каждого персонажа).
>>882632 > Можно глянуть на пример создания известной игры "Смута", где государство выделило 230млн рублей, а они за полгода уже потратили 500млн. Так там игры нет еще никакой, не известно что они уже сделали, и что в итоге хотят получить
Это просто такая фишка уе, что полторы кат сцены санимировал, сделал ландшафт(готовый) и расставил готовые генерируемые деревья, настроил кое как освещение и все такие вааау, хотя работы на это потрачено очень мало и все самое сложное(да и вообще все) впереди. Но щас это уже не особо работает, и в данном случае графон они совсем уж нихуя не настроили в большей части сцен. Про геймплей промолчу, его считай нет пока.
Но я не говорю что будет провал - пока нихуч не понятно, просто пока ничего не показали, что заслуживает анимания и показывает какую-то ощутимую вложенную работу или решенную технически сложную задачу.
>>882647 Говно какое-то. 1. Шрифты говно. Заголовок читается СУИТА. Ещё эти непонятные шутки снизу "мы хотели влепить сюда свастику, но побоялись делать это явно". 2. Брёвна, домики - всё пластиково-гладкое и чистое, в реальности там всё засрано должно быть. 3. Люди ходят и бегают, будто наложили в штаны. 4. ГУЙ и геймплей - как будто игрока пытаются макнуть головой в бочку с несвежим дарк соулс.
>>882623 >Сам занимаюсь видеопродакшеном с большой командой выit тебе отвечал. уточню, игра не кинчик, процессы только кажутся похожими, сам из этого бэкгаунда. тебе нужно ориентироваться на GRIS брать графоном а не гачей
>>882678 Да тут кадры из слитой альфы, так что всё может быть подругому >в реальности Чел... какая реальность в художественом произведении и тем более в игре?.. > бочку с несвежим дарк соулс. Да тупо типикал европейская рпгэха. Тип в готике, руине, ведьмаке 3 тоже самое.
>>882632 >где государство выделило 230млн рублей, а они за полгода уже потратили 500млн. Да государство даёт им деньги на основе отчётов о готовности. Там больше 500 млн выделили за всё это время
>>882784 У меня пиксельная 2d игра, и в ней есть игровая поверхность, которая делится на зоны. И вот мне надо это как-то визуализировать, чтобы и для дебага было удобно и вообще в игре это тоже отображать, для игрока. Я с шейдерами не разу не работал, это как? Можешь подробнее объяснить.
>>880622 (OP) >Разработка игр на Unity 2018 за 24 часа Майка Гейга а где отзывы глянуть? 600р норм цена за цифровое издание, но не хочу ещё одну книгу где всё дотошно объясняется, а потом в какой-то момент непонятно что откуда и куда и не охуел ли автор проебав какой-то момент.
>>882904 Ты хуйню написал, вопрос же не в юнити. Весь функционал юнити тебе доступен вне зависимости от страны проживания. Вопрос в том, что ты хочешь делать на нем и где выкладываться.
>>882908 О, мудрейший, могут ли быть проблемы с оплатой покупкой ассетов и если компания-разработчик решит специально мешать пользоваться своим движком тем кто находится в РФ?
>>882921 На ассеты пох - есть слитые, есть посредники для покупки, есть другие площадки для ассетов, в крайнем случае можно оформить карту казахскую какую-нибудь если очень надо
> если компания-разработчик решит специально мешать пользоваться своим движком тем кто находится в РФ? Это невозможно
>>882887 Ты думаешь впринципе не о том - главная проблема это то, что с работой на юнити в рашке щас очень хуево, хуже чем по другим направлениям, поэтому первые 1-2 года придется выживать на соротыгу в месяц, ну или две соротыги, а до уровня реального наносека надо минимум 3 года расти, в отличии от какого-нибудь бекенда, который тоже просел после гойды, но не настолько сильно
Получилась ситуация, когда после наведения курсора на объект и последующего отвода, значение a осталось равным true
public void OnPointerEnter(PointerEventData eventData) { x = true; Invoke("Delay", 5f); }
public void OnPointerExit(PointerEventData eventData) { x = false; a = false; }
void Delay() { if (x) { a = true; } }
Как это в принципе возможно? Микрофриз редактора, во время которого курсор отошел с объекта и он его не заметил. Или событие отвода курсора вклинилось в момент выполнения метода Delay(), когда проверка if (x) уже прошла, но a = true; еще не было выполнено?
>>883113 Обычные Юнити-проблемы. Событие OnPointerExit не было исполнено. Все события по рейкастам, коллизиям и прочему работают не со 100% вероятностью. Надо добавлять костыли если хочешь чтобы 100% четко все работало.
>>883122 >Событие OnPointerExit не было исполнено да, тоже думаю, что так все же это не так страшно, как если бы обработка события шло параллельно методу вызванному инвоком, тогда уже вообще пиздец бы был
>>883124 > если экземплят объекта, который добавил свой метод в delegates, был уничтожен - удалится ли его делагат-функция из листа Нет
> // lala был уничтожен Уничтожен как? Гарбедж коллектором?
Кстати код что ты написал - нерабочий, возможно ты пока его сочинял упустил какую-то деталь, которая есть в твоем реальном коде и из-за которой у тебя проблемы
Аноны, хочу сделать игру по типу Only Up! Как в таких вертикальных платформерах происходит загрузка уровня/уровней? Мир игры разделен на вертикальные слои и слои асинхронно подгружаются по мере продвижения игрока вверх? А что происходит когда игрок падает сверху и летит свободно вниз? Как игра будет успевать грузить данные?
>>880622 (OP) Иду сейчас по видео-курсу. Три дня бичевал. Возвращаюсь к проекту и появилась проблема с интерфейсом.
Выбираю материал, меняю любой параметр и масштаб превьюшки с шаром улетает куда-то вдаль. Переключаешься на другой материал и обратно, норм. Но каждый раз меняешь чт-то и улетает..
Странная хуйня кароч. Лежали материалы в общей папке ассетов, и почему-то их пидорасило стоило поменять что-то. И всё из-за конфликта видимо с этим "шейдером", который с ними же лежал в одной папке. Это баг или фича?
>>883937 Петух. Посоветовал мне все то же самое, но с Job System. То как решить проблему слишком быстрого движения игрока с загрузкой и выгрузкой большого количества сущностей ты конечно же не знаешь.
>Может показаться, что такой объем информации будет трудновато переварить,но как только вы чуть лучше познакомитесь с основами текстур, шейдеров и материалов, вы увидите, что значение параметра Smoothness вашего материала станет приближаться к 1.
Компания Unity объявила об удалении из своего магазина ассетов материалов, созданных студией Atlas. Причина проста — партнеры уверяли, что весь контент создан ИИ, однако некоторые из ассетов оказались крадеными.
Пацаны, если я в компоненте "А" запущу levelProgress.changed.RemoveAllListeners(),то от changed отпишется только компонент "А", или не только он и все остальные, кто был подписан на levelProgress.changed.AddListener, то есть, сломаю всю систему?
Я тупанул, я почти всегда подписывался на анонимные функции, как на скрине, типа короче и красивее (ебать дебил). И столкнулся с проблемой, что надо отписаться. А чтобы отписаться надо передать метод, а у меня, сами видите, не метод, а пустышка анонимная. Которая теперь всегда будет выполняться, даже когда компонент отключен/удален.
Короче, чтобы везде не рефактирить, я бы хотел в OnDisable компонента "А" отписаться от всего, на что он был подписан. Но от подписок на лямбды не избавиться, не так ли
И раз такое дело, надо подушить тебя теорией, потому что такие вещи надо понимать
Ты когда дешаешь levelProgress.changed.RemoveAllListeners() - просто вызываешь метод без аргументов. Как по твоему внутри этого метода можно узнать, что его вызывал компонент А? Ответ - никак.
>>884096 Норм, но обязательно практикуйся, а не просто читай. Пробуй пкреписать примеры оттуда и реально понять как они работают, что-то поменять, поэксперементировать.
В книге при создании материала написано выбрать шейдер СТАНДАРТ, то если его выбрать, то текстура в ядовитый розовый превращается. ЧЗХ? Если не трогать, то норм. Чот поменялось что ли за время с момента выпуска книги?
>>884213 > Чот поменялось что ли за время с момента выпуска книги? Ну смотри. Полное название этой книги звучит так: >Разработка игр на Unity 2018 за 24 часа То есть, книга написана на версию 2018. Актуальная версия Юнити - 2022.3. Между выпусками - четыре года. Много ли изменилось с тех пор? Да дохуя всего.
Я заебался уже. Делаю снаряд, но по какой-то причине Rigidbody не реагирует на код - падает из-за гравитации(или нет, если отключить), а на код не реагирует. Пытался так менять this.Rbody.AddForce(Vector3.up 1000000, ForceMode.Impulse); и prokectile.Rbody.velocity = Vector3.up 1000; (нормальные вектора тоже ставил). При это объект не кинематик. Прикладываю картинку с настройками ригидбоди
Кто нибудь делал чтобы все враги и все союзники за одну джобу находили ближайшую к себе цель - враги находили ближайшего союзника или игрока, союзники находили ближайшего врага? Не могу нагуглить в каком направлении копать, надо не найти тупо один раз ближайшего, а именно чтобы все активные юниты нашли ближайшего
Сорян за нубский вопрос, вот у меня есть класс enemy, есть дочерний fighter. У файтера есть метод, где обрабатывается получение урона. Но нанесение урона сделано так, что пуля находит родительский класс енеми и меняет его переменную damage, потом уже в файтере происходит if (damage!=0f) {...} Я понимаю, что это не лучшее решение, а как правильно? Как сделать так, чтобы метод в дочернем вызывался при том, что пуля попадает в родительский?
Есть моб. У моба есть параметры (хп, мп, дамаг, скорость атаки етц). У моба есть методы (найти ближайшую цель, получить урон,). И у моба есть поведение (патрулировать, преследовать, етц).
С точки зрения ООПидорства, лучше запихать все это в один скрипт или сделать отдельно скрипт с параметрами и отдельно с поведением/методами, с наследованием параметров?
>>884507 > Что значит "за одну джобу"? Job System знаешь?
> скрипт Это дефолтный поиск ближайшего, я так и сделал, и у меня вот этот код (только файнд гейм обджекта нет, так как есть лист всех врагов/союзников) повторяется на 200 противниках и 200 союзниках и чет не очень оптимизировано выглядит. Я думаю, должен быть более правильный подход.
Анончики, а откуда вы ворованные ассеты качаете? На cgpeers нахожу только старое. Заметил что некоторые сайты покупают ассеты, а потом продают к ним доступ через платные файлообменники. Я бы даже за платный файлообменник заплатил, покупать ассеты за сотни денег жаба душит.
В главном меню есть кнопки которые вызывают панели (старт, настройки и т.п.). Каждая панель при нажатии Esc проверяет свое состояние в апдейте и если открыта, то закрывается: void Update() { if (Input.GetKeyDown(KeyCode.Escape && Panel.activeSelf)) { Exit(); } } Еще есть отдельный скрипт который при нажатии Esc проверяет состояние всех панелей и если они все неактивны, то вызывает плашку с вопросом о выходе из игры. Вроде бы все просто... Но прикол в том, что все эти скрипты обрабатываются в хуй знает какой последовательности. И при единичном нажатии Esc, может сначала произойти закрытие открытой панели и в этом же тике пройдет проверка, что все панели закрыты и сразу же вылетит панелька для выхода из игры. А может сработать как задумано и единичное нажатие Esc только закроет открытую панель. А для выхода надо будет нажать Esc еще раз. Как вообще обходится такая специфика движка? Да, знаю, что можно использовать задержки, но там тоже есть пиздец какой большой подводный камень
>>884670 Создай одну функцию, которая вызывается при нажатии и сначала проходи по всем панелям и проверяй их. Если они открыты - закрывай, если ни одной закрытой не было - там же вызывай выход из игры.
>>884673 Выделяя несколько объектов стрелки рисуются где-то между ними, очевидно что у других двух координаты хуй знает где на сцене, сделай у них по 0.0.0.
>>884719 >Грамотной архитектурой К сожалению, любая грамотная архитектура превращается в полный пиздец, когда начинаешь вносить в нее незапланированные изначально изменения. А такие изменения неизбежны, если только ты не делаешь точный клон чего-то по заранее известному шаблону >>884723 >Создай одну функцию управление отдельными панелями раскидано по отдельным классам и анально огорожено от внешнего доступа (принцип ООПа, да это он самый) В итоге сделал костыль на проверку с микрозадержкой для кнопки выхода. Но хотелось бы каких-нибудь индексов для скриптов чтобы задавать им очередность выполнения как раз для таких случаев
>>884670 Чел для кого придумали менеджеры? Зачем ты обрабатываешь нажатия в разных объектах? У тебя буквально их пара должна быть, для интерфейса, для игрового объекта и если уж нужно что-то специфичное еще для чего-то. Всё. Всё делается удобно и красивого в одном скрипте в котором хранятся ссылки на следующие объекты в которых идёт принятие сигнала.
>>884737 >Зачем ты обрабатываешь нажатия в разных объектах? Ну, например, у меня в панели старт есть еще 4 подпанели которые тоже должны реагировать на нажатие Esc причем со своей логикой, т.к. там есть и сетевое подключение, которое нужно еще грамотно разорвать Я понимаю, что в случае простой игры проще запихнуть все в 1 менеджер, но тут не тот случай. Здесь же я просто охуею обеспечивать доступ с десяткам параметров отдельных панелей, которые к тому же имеют разные состояния во времени >>884732 ага спасиб, кажется то что надо
>>884729 > К сожалению, любая грамотная архитектура превращается в полный пиздец, когда начинаешь вносить в нее незапланированные изначально изменения. А такие изменения неизбежны, если только ты не делаешь точный клон чего-то по заранее известному шаблону Неа
> управление отдельными панелями раскидано по отдельным классам и анально огорожено от внешнего доступа (принцип ООПа, да это он самый) То что ты инкапсулировал и сделал классы с единственной ответственностью, еще не значит, что ты сделал правильные классы, более того есть даже индикатор того, что сделал ты неправильно(костыли с задержкой)
> В итоге сделал костыль на проверку с микрозадержкой для кнопки выхода. Пиздец
>>884741 >еще не значит, что ты сделал правильные классы У меня соло разработка. Тут не требуются "правильные" классы с точки зрения общепринятых стандартов, чтобы пришел другой разраб и сразу все понял, а третий разраб не смог куда-то там залезть и для этого нужно тотально все огородить 10 раз. Мне нужен рабочий код, оптимизированный, без багов, простой и понятный лично для меня. Костыли есть, но только там где без них реально никак - они жестко привязаны к нужному месту и подробно описаны в комментариях. Да в идеале нужен "правильный" код, но в соло разработке на него нет времени, к сожалению
>>884740 >Ну, например, у меня в панели старт есть еще 4 подпанели которые тоже должны реагировать на нажатие Esc причем со своей логикой Не вижу никаких проблем, вообще странно что по твоему мнению менеджеры где всё по порядку идёт и правильно, это не удобнее чем куча всего что само реагирует и обрабатывает это дело, да еще и со своей логикой.
>что в случае простой игры проще запихнуть все в 1 менеджер Как раз чем игра шире, тем всё должно быть структуирование, и это маленькие игры могут позволить чтобы всё работало как угодно, откуда угодно.
На мой взгляд у тебя большие проблемы с архитектурой, и ты постепенно накидуешь новые уровни абстракции без рефакторинга старого кода.
>>884670 >панель при нажатии Esc проверяет свое состояние в апдейте и если открыта, то закрывается А в юнити нельзя шорткаты для кнопок делать? И потом событие срабатывания кнопки обрабатывать.
>>884924 >как ты сумел запустить юнити с таким айкью? Какое дружелюбное юнити-cumмьюнити...
>>884922 >Exception while marshalling >Q:\Program Files\Unity Editor\...\package.xml >Probably the SDK is read-only Первожу на русский: >Исключение во время маршалинга файла... https://ru.wikipedia.org/wiki/Маршалинг >Вероятно, папка с SDK только для чтения Причина: в Windows папка Program Files закрыта от записи простым пользователям. Решения: 1. Переустановить в другую папку, типа Q:\Unity\... 2. Запускать от имени администратора ПК. 3. Зайти в свойства папки Unity Editor и на вкладке безопасности разрешить запись для пользователей.
>>884931 >Какое дружелюбное юнити-cumмьюнити... Ну он прав, я просто от бессилия пост сделал, заебался если честно, постоянно отлавливал ошибки, и вроде все заработало, решил попробовать билд сделать, и на тебе какая то пиздота вылезла. Права я выдал, но полезли другие ошибки.
Ну сейчас гуглю с лицом лягушки, даже чат гпт подрубил...
>>884968 >а зачем ты обновлялся до 2022 ? вот просто нахуя? Потому что она вылезла как рекомендованная? Я юнити ковырять вчера только начал. Окей, на какой сейчас версии все сидят? На 2021?
>>884963 >Чел я ж написал что делать Я делаю, делал. Лог говорит об синтаксических ошибках в джава коде, но это абсурд, я же его не редактировал.
Да, я сейчас все переустанавливаю, посмотрим что будет.
Нах вы пытаетесь делать игры если такие тупые? Если вы не в состоянии решить ошибки которые пишут прямым текстом в чем проблема, то таким даунам не место в геймдеве, и это не шутка. Впереди столько еще потом будет проблем, что это будет нереально. Скорее всего это тролли.
>>884993 > Победа, но осадок остался. Базовичок, малаца
> Теперь что получается, буквально после каждого пука в едиторе билдить и проверять что все работает? Я очень много ебался со всякими проблемами с билдами под андроид, могу сразу посоветовать вот что:
1. Билдить после каждого пука - не надо. Когда будут проблемы - тогда решишь. А будут они только когда разные сдк будешь наваливать.
2. Иногда просто нужно очистить кеш гредла в аппдате или удалить папку library
3. Иногда бывают конфликты или проблемы нативных либ которые подтягиваются под разные сдк, в этом случае надо кастомные гредл файлы добавить и там прописать какие-то настройки или какую аерсию лиюы подтягивать - тут уж в зависимости от проблем надо гуглить что именно, как правило в консоли в gradle build failed надо смотреть че ему не нравитсч и гуглить это
4. Сразу лучше создай тестовый кейстор для билдов, через паблишинг настройки во вкладке плеер. Иногда могут быть проблемы без этого
>>885004 Окей, а нахуя ты лезишь в геймдев тогда? Или ты думаешь твоя очевидная ошибка это вообще хоть какой-то челлендж при разработке? Удел таких овощей это максимум тестером быть.
Есть какая-нить игра/ассет/статья/видос где реализован расчет динамики жидкости и газа? Хочу спиздить ознакомиться с алгоритмом расчета, но пока не могу найти такого, только статьи ученых-моченых для понимания которых надо прочитать еще сотню статей
>>885014 >Читать то хоть умеешь?) Тупая чушка. Если ошибку можно загуглить она очевидная. А вот когда ты встретишься с чем-то специфичным что встречалось только у тебя, то вот тогда, и будет та проблема с которой стоит подумать.
Пиздец, откуда эти животные по вылазили? Из какого загона?
Какое же говно ёбаное юиэлементс. Вот тебе херова гора стилей по умолчанию. Да, ты можешь их посмотреть и ебаться, чтобы вручную переопределить. Что-что? Не всё можно посмотреть? Ахахах, ну конечно же, не всё, мы же спрятали дефолтные ассеты, потому что иди нахуй, вот почему. А актив стейты залупу тебе за воротник положат, потому что их даже в редакторе посмотреть нельзя. А ещё не все маус эвенты работают. Охуенно же, блядь, чтобы курсор сменился со специфичного для юиэлемента обратно на дефолтный мне приходится создавать юиэлемент под курсором, вызывать вручную на нём маусовер и дестроить в том же кадре, чтобы не мешал. Просто, блядь, потому что по-другому эта залупа не работает. Да, баг репорты этой хуйни есть. Но дрочерам, которые сосут свой хуй, нахваливая каломенты - похуй.
Подскажите раку, генерирую для каждого объекта свою текстуру, но рендерится в итоге одна. Как для одного шейдера передавать разные текстуры разным объектам? Тупо в цикле у меня не получается
foreach (var (rma, tempChunkData) in SystemAPI.Query<RenderMeshArray, RefRO<TempChunkData>>() .WithAll<TempChunkMeshTag>()) {
Texture2D tempTexture = getTexture2D(tempStorage.T, tempChunkData.ValueRO.startAtPosition, tempChunkData.ValueRO.endAtPosition); Material mat = (Material) rma.Materials.GetValue(0);
>>885187 C этим разобрался - оказалось что если спамить объекты через ецс, то у них общий материал, который потом хуй поменяешь. Как ворк араунд - создавать разные материалы на этапе создания и потом уже совать в них текстуру.
Новый квесшен: Можно ли как-то посылать сразу несколько текстур вместо одиночных Apply()? Знаю что можно послать сразу несколько текстур на один материал, а вот примеров чтоб несколько на разные материалы не видел.
>>885257 Если ты не можешь решить задачу - то ты делаешь что-то не так. В подавляющем большинстве случаев не требуется удалять гланды через анус. Сделай в своём спавнере массив материалов и выбирай из него.
У меня в эдиторе есть существо У него статы загружаются из сейв файла Но даже если у него 0 хп и он мертвый он все равно появляется, потому что он стоит в эдиторе
Могу я как-нибудь сделать так, чтобы моб был в эдиторе, но появлялся только при определенном условии.
Структура объектов у меня следующая: 1. TestScene 1.1. Enemies 1.1.1. Dummy
Пока что из возможных вариантов: 1. Уничтожать объект, если он не подходит под условие (кринж) 2. Скрывать объект, если оне подходит под условие (кринж поменбше) 3. Писать в JSONe позицию существа и остальную инфу, затем создавать только живых (совсем маленький кринж жестб)
Итого все варианты кринжовые, последний приемлемый, но в хочется взаимодействовать с гуи, а не писать все ручками.
>>885355 Так флаги отображения и здоровья это разные структуры. Ты определись, у тебя здоровье влияет на то что моб существует или нет. Обычно есть отдельный флаг видимости и создания. Ты либо создаешь моба и скрывашеь его, либо нет. А здоровье какое это вообще должно быть фиолетово, это стат из более высокоуровневой архитектуры не влияющие на состояние моба.
>>885355 Чем тебе не нравится раскидывать по уровню не мобов, а спавн поинты для этих мобов? Я бы сделал максимально лениво, чтобы спавнер мобов находил в сцене объекты с нужным компонентом, а в самом компоненте какой-нибудь дропдаун список с типом моба, хп и прочей хуитой. И без единого апдейта.
>>885363 А можно сделать так, чтобы было видно в эдиторе куда я поставил НПЦ? Я могу задать им позицию и спавнить префабы, это не проблема, но они будут появлять только в рантайме.
Можно отрисовывать гизмо по позициям, но возможно существуют решения попроще
>>885365 Так а чем тебя гизмо не устраивают? https://docs.unity3d.com/ScriptReference/Gizmos.DrawMesh.html Есть даже вот такая хуйня. Только сразу предупрежу, что там с материалами хуйня, не переназначишь с дефолтных гизмовских. Плюс у меня есть решение "через жопу". Тупо ставишь по уровню нпц и не паришься. Перед билдом ждёшь особую кнопку, скрипт проходится по уровню, собирает данные о позиции каждого нпц и дестроит префаб. Муторно.
Сделал в игре всплывающие панели, которые можно либо закрыть через Esc, либо принять через Enter. Все прописал, тестирую... При нажатии на Enter с какого-то хуя также происходит нажатие на последний нажатый объект с компонентом Button. Даже не на тот на котором стоит курсор, а тупо на любой последний. Вопрос - нахуя это сделано, нахуя это сделано по умолчанию и как это выключить нахуй? Кому вообще пришла мысль прописать это в коде движка для срабатывания на автомате? Просто ебаное автоматическое срабатывание на нажатие кнопки, которого никто не просил. Что-за пиздец, блять.
>>885373 Я бы мог понять, если бы при нажатии на Enter срабатывала та кнопка на которой курсор, но, блеать, не последняя нажатая. Не могу представить кому в голову пришла мысль сделать такое, причем сделать по умолчанию, сука. Просто в ахуе, въебали хуй пойми что на автомате, а я должен искать, где это говно выключать
>>885370 А ты ещё пробел поклацай. Это сделано не просто так, а для реализации навигации по кнопкам через таб. После нажатия на твою кнопку она становится "выбранной", потому это всё и происходит. Сделано так буквально в каждой версии юнити-интерфейсов. У uielements есть, например, свойство focusable, которое можно выключить, чтобы это не срабатывало. Но если фокусейбл выключить у текст филда, то он вообще перестанет работать. Вот такая залупа эти каломенты. У старого гуя была опция в редакторе, которая позволяла выключать навигацию. C юи тулкитом даже не знаю, что посоветовать. Кроме, разве что, этого https://docs.unity3d.com/Manual/UIE-Events-Handling.html А, ну или да, выключить весь сабмит по энтеру\спейсу и радоваться, что просто охуеть.
>>885379 >навигации по кнопкам через таб Это было особенно популярно во времена расцвета текстовых РПГ и отсутствия компьютерных мышей, как таковых в природе. Нахуя они тащат этот анахронизм из версии в версию причем, блеать, во включенном по умолчанию виде для меня большая загадка. С учетом того, что игр где успешно реализована эта spoiler]сукаблять "фишка" едва ли больше процента. Я даже уверен, что разработчики хуевой тучи платформеров для стима, с удовольтвием бы отпиздили этого хранителя компьютерных традиций за одну только необходимость отвязывать в своих играх от кнопки прыжка всю ту хуиту, привязанную им по умолчанию к кнопке space. Что особенно иронично - переключение через Tab у меня нихуя по умолчанию не работает даже в меню. >разве что, этого https://docs.unity3d.com/Manual/UIE-Events-Handling.html спасибо, но не уверен, что пока хочу глубоко в это нырять, т.к. все эти изменения режимов нажатия в дальнейшем могут потенциально привести к большим проблемам при портировании на устройства с тачпадом >uielements есть, например, свойство focusable, которое можно выключить Это интересно, у меня буквально UImage всего с двумя компонентами Image и Button. Где искать это focusable?
https://assetstore.unity.com/packages/tools/utilities/dungeon-architect-53895 Кто то работал с этой фигней? Там можно как то кастомизировать "шанс" появления маркеров? К примеру если я хочу чтобы у меня было больше стен, потолок везде был. Как это сделать? В документации есть статья про паттерны, но там я так понял только про наложение еще одних маркеров к существующим.
>>885432 >переключение через Tab у меня нихуя по умолчанию не работает даже в меню Cтранно. Но похуй. Ещё советую тестировать весь гуй в билдах, а не редакторе. Так уж получается, что редактору поебать на настройки инпутэкшенов. Я прихуел в какой-то момент, когда в редакторе всё работало, а в билде не работал вообще весь гуй. > могут потенциально привести к большим проблемам Вряд ли на самом деле, но дело твоё. По идее, ты можешь в обработчике сабмита проверять, что сейчас выбрано и нажимать нужный анус. >Где искать это focusable? https://docs.unity3d.com/Packages/[email protected]/manual/script-SelectableNavigation.html Но если максимально просто, то я бы ебанул EventSystem.current.currentSelectedGameObject == null И забил хуй на всё это говно.
Можете подсказать самый лучший курс или YouTube канал по Unity на русском? Понимаю что именно для таких как я написана шапка - но может есть идеальный курс, где все очень хорошо разжевано?
>>885552 Нету таких курсов, я к примеру неделю изучаю юнити, и просто беру и конкретно по задачам изучаю моменты.
Придумай для себя простую задачу, к примеру запилить демку в небольшой локации с мобильным тач управлением от 3 лица, изучай материал по этой теме, далее начни делать "мобов" и как с ними взаимодействовать оружием, это делой, и т.д.
>>885557 Хочу запилить свою Vampire Survivors, но с особенностями (возможно создам здесь тред, когда игра будет существовать хоть в каком-то виде) - и если она не стрельнет и не принесет мне миллионы долларов, то попробую с этим проектом найти работу.
>>885560 Я учил фронтенд и бэкенд, (JS React и Java Spring), но ничего толком не написал. Курсы по Java смотрел по многу раз и от разных учителей, смотрел курс по C# от Сакутина - так что мне понятно что происходит, когда пишу скрипт.
Мне надо, чтоб камера следовала за игроком только вверх. ЧТоб когда игрок падает, камера не летела за ним в низ. Юзаю cinemachine, но чет не могу настроить зоны как надо. По идее надо чтоб dead zone была несимметрична и вниз уходила до конца экрана. Как так сделать можно? Ничего лучше дублирования игрока невидимой куклой которая скриптом идет только вверх не придумал
>>885656 У тебя камера залочена следовать за персонажем, если он опускается ниже нового минимального уровня (с каждым прыжком ты его должен обновлять я полагаю), то просто открепляй её.
Сап, юни-аноны. А как вы решаете вопросики с оптимизацией тяжелых 3д-моделей? У меня открытый мир, а не кишка, поэтому вопрос стоит очень остро. Сразу скажу что геометрия у меня обычно статическая, проблемы возникают из-за количества объектов.
Вот в 2022 версии можно открыть файл, скопировать модельку, упростить ее и назвать _LOD1 и так далее. Тогда при импорте файла ЛОДы автоматически подтянутся. Вы так делаете? Или удобнее скачать какой-нибудь из плагинов для автоматических ЛОДов?
Далее вопрос с коллайдерами. По логике вещей можно самый последний ЛОД взять и сделать его convex mesh collider. Но форма бывает разная, convex не всегда нормально строится и производительность его все равно хуже чем у примитивов. Вы так делаете? Или вручную жопу рвете? Или используете что-то вроде Technie Collider Creator?
>>886202 У меня вопрос. Хорошо мешь объединился, но как быть с коллизиями и коллайдерами? Например если объединить меш горы или дерева, то как движок различит, что дерево а что гора?
>>886511 Код у тебя дерьмовый, но оценивается скорее способность решать задачи. Если ты можешь при помощи стрёмного кода сделать игру, которая будет работать, то ты вполне нормальный кодер. Как минимум для джуна. И явно не на 20к, а хотя бы 60-80.
>>886517 > человека Можешь начать с gamedev.ru. Размести там резюме + откликайся на вакансии, которые там периодически размещают. Хай-лвл - это пойти на линкедин и добавить себе в контакты ХРюш, чтобы чаще выпадать в поиске.
Бля, аноны, сретесь по поводу какой-то воображаемой зарплаты, а на вопрос так и не ответили >>886302 >в чем выгода Mesh Combiner по сравнению с обычным батчингом статики?
>>886511 Чисто по коду на 20к тянешь. Даже больше, вполне на 40к+ могут взять а теории.
1. Сделай хотя бы одну завершенную игру и выложи на итч/гугл плей/яндекс игры/стим/да куда хочешь, чтобы ты мог скинуть на нее ссылку.
2. Желательно выложи ее сурс код на гитхаб. Можно ссылку на гитхаб вставить в резюме, а можно не вставлять, и кидать только если попросят пример кода.
3. Долбись на хх в вакансии где указано 1-3 года опыта. Если опыта нет - можешь выдумать чтобы 1 год было, ну 3 месяца хотя бы, работу над своей игрой тоже впиши
>>886511 >Неужели я пишу настолько плохой код, что не достоин работать больше чем за 20к? КАК тебе могут платить 20к? Я тупой слесарь в порту мне и то платят 50к, могут и больше но я по выходным не хочу работать. Но здесь человек, который впринципе понимает код получает меньше чем, чем.. да блядь у на уборщицы за 30у колучают
>>886607 > Сделай хотя бы одну завершенную игру и выложи на итч/гугл плей/яндекс игры/стим/да куда хочешь, чтобы ты мог скинуть на нее ссылку. Я выпустил 5 игр в гуглплей и одну из них в Стим. У самой популярной 15к загрузок, у другой 16к, у третьей 5к и о ней написали в новостях. > Можно ссылку на гитхаб вставить в резюме Она там есть. Но HR не переходят по ссылкам из резюме. > Долбись на хх в вакансии где указано 1-3 года опыта. Либо не отвечают, либо отправляют тестового - ботом. После выполнения тестового всегда молчат.
>>886614 Ну 5 игр это заебись. Пиши себе год опыта и долбись везде.
> Она там есть. Но HR не переходят по ссылкам из резюме. Переходят, но не сразу. Сначала твое резюме должно пройти фильтр. Потом оно бегло просматривается. Потом оно подробнее просматривается, на этом этапе ссылки на игры и нужны. Если нихуя нет то это просто скип.
И дальше уже если все понравилось пока что будут собесы или тестовые.
Само собой, когда ищешь вакансии убирай фильтр по региону и кидай везде где удаленка
>>886655 Чего? А как они представляют, ноулайферов? Я просто подумывал перекатится с дно работки на галлеры к тёлочкам, но что то уже тоже начинаю сомневаться, стоит ли. Мало того что я туповат, так ещё и запил, как у Ростовского гопника.
>>886661 Это решаемо. Снимаешь самого себя в ломаном Тиктаке с фильтром болд гламур и нарезаешь с ролика фоточек для резюме. Эйчарки тебе свои нюдсы вместо откликов слать будут.
>>886661 > А как они представляют, ноулайферов В смысле? Да, я ноулафйер, но я работал в компании (где не было HR) над мидкором, и там с этим пробелм не было. А 18-летние дуры строят из себя психологов
>>886739 >if( (Mathf.Abs(input.x) == 1 && Mathf.Abs(input.z)) Где уже сравнение с единицей проебал? У тебя второе условие в bool превратится. В остальном всё правильно понял, хули.
>>886741 Больше интересно, нахуя так писать? Сам же себе усложняешь понимание в дальнейшем.
>>886737 Ты про синглтоны? Это понял, сейчас начинаю использовать Zenject. К слову, на той работе где у игры было миллион установок, всё было на синглтонах и DI не использовали. А мой код HR не смотрят, они даже по ссылкам в резюме не переходят.
Вот говорят SOLID, хуе-мое... Вот например компонент управление персонажем. Согласно solid я должен сделать отдельные компоненты 1. MoveCharacter (параметр CharacterController, публичный метод SetMoveDirection()) - чисто для движения 2. LookCharacter (параметр CharacterController, публичный метод SetLookDirection()) - чисто для вращения 3. JumpCharacter (параметр CharacterController, публичный метод Jump()) 4. RunCharacter (параметр CharacterController, публичный метод Run())
Не, ну один класс - одна логика. И эти классы вообще не должны содержать внешнюю логику, то есть, туда не запихать проверку if (!game.isPaused) DoThis()
>>886743 > Больше интересно, нахуя так писать? Сам же себе усложняешь понимание в дальнейшем. Это те же долбоебы которые устраивают фокусы с пре/пост инкрементами и декрементами и юзают любые хаки для сокращения написанного кода, потому что долбоебы
>>886788 Ну, те компоненты что ты тут выдумал - это чисто твоя выдумка, это не единственный вариант проектирования по солиду в данной ситуации.
Более того, даже если делать так - все эти классы не обязаны быть компонентами, а должны быть тупа классами. Ну и само собой должен быть управляющий класс выше, который менеджит текущюю стратегию поведения/вращения и реагирует на паузу.
>>886830 >юзают любые хаки для сокращения написанного кода Вот нахуя? Чисто выёбываться "смотри, как я могу"? Так регекспы любого такого лошка выебут и высушат. Сделать вид, что ты "про"? Так один хуй не про, лол, у тебя ускорение по трём осям умножается на скорость движения. Нажал W и начал падать быстрее, ну чё за хуйня, блядь?
>>886788 Я даже не могу понять, что такое параметричарактертконтроллера лол. Сам то понял, что сказал? В целом описаная логика является какой-то мутной хуйней. В солиде нигде не сказано, что каждый пук должен быть классом.
Да мазафака, прикинь, проверку на паузу нужно делать в другом месте, потому что прикинь лол двигательный код вообще не ебет что такое пауза.
>>886884 Тогда и присед движение, и ползание, и лазание - это все движение. Все в один класс пихать? Ты ебанутый? В runCharacter будет ссылка на moveCharacter, чтобы запустить moveCharacter.Speed(90000)
>>886928 >это все движение Да, это всё движение. Даже падение твоей жопы со стула - это движение. >Все в один класс пихать? А нахуя все состояния в один класс пихать? Ты что, ебанутый? Дали ему state - бери, изучай, пользуйся. Нет, блядь, хочу жрать говно. >В runCharacter будет ссылка на moveCharacter Ты ебанутый.
>>887036 Она должна легко фиксится переносом проекта, скрипта или нужного элемента. В крайнем случаи переустановкой юнити с хабом, а вот внезапные краши сукаблядьебучаяхуйня которая может застать в любой момент.
>>887006 Тоже было. Корраптятся файлы CurrentLayout-default.dwlt и CurrentMaximizeLayout.dwlt в папке библиотеки. Берёшь из проекта без глюка и радуешься жизни. Или полный реимпорт.
>>887039 Можно и без аддитива кста. Но только если он не будет юзать унаследованные из монобеха методы, либо будет помечен донт дестрой он лоад
>>887026 Потому что в шарпе сборщик мусора - класс удаляется только когда на него ссылок нет
Загружаем сцену где на геймобжекте висит MainMenu, далее уничтожаем геймобжект(или выгружаем сцену что повлечет за собой его уничтожение) - ставится пометка что компонент уничтожен, но сам то класс не будет уничтожен пока на него ссылка есть. Поэтому можно коллить его методы. Но при сравнении с null он будет выдавать тру, потому что у MonoBehaviour перегружен метод сравнения для этого
Но это чисто в теории, чтобы ты понимал лайфтайм классов и почему "уничтоженный" экземпляр на самом деле продолжит сщуествовать но чисто в шарпе, вне поля зрения юнити, на практике так делать не надо.
>>887111 Я английский уже сейчас знаю норм(B2-C1), но все равно хз как в англоязычный рынок вылезти. Те кто нанимает фулл ремоут разрабов(т.е. без обязательной релокации, а я не хочу релоцироваться) в основном ищут сеньоров у которых 5 лет опыта, а для тех у кого даже 3 года опыта почти ничего нет.
По крайней мере мне так показалось когда я чекал вакансии в сша/германии/франции/швеции/англии, но может я что-то не то или не там искал. Может быть есть те, кто не помечает свою вакансию как full remote а все равно готов взять тебя даже если ты в другой стране оформлен, но я пока не проверял.
Поэтому если нету многих лет опыта чтобы тебя прям хотели англоязычные кабаны нанять, то мне кажется реальнее свою игру сделать и издателя найти.
Анон, какие 3д коллайдеры ты используешь для более-менее тяжелых проектов? Как я понимаю, коллайдер каждого активного объекта в сцене участвует в расчете физики. То есть даже если коллайдер статический и ни с кем не взаимодействует в этот момент. Этак получается что любой mehs-коллайдер будет очень хуевым вариантом.
>>880622 (OP) Не понятное поведение курсора при отключении его по клавише коавиатуры.
Сап аноны я опять проебал, кто знает почему курсор не отключается при нажатии на клавиатуре При этом если просто нажать на кнопку мышкой продолжить игру курсор исчезает, но при нажатии ESC ничего не происходит.
>>887016 2к баксов по актуальному курсу можешь просить. Раньше можно было смотреть по https://ru.ingamejob.com/ru/salaries но сейчас там только ua Еще можно glassdoor чекнуть, но там данных по геймдеву мало
Найти русскоязычного крепкого юнити-мидла просто нереально. Даже с зп под $4k/350к рублей. Видимо ебучие мобильные студии пропылесосили весь рынок нахуй. Остались джуны которые окончили скиллбокс год назад, около-мидлы с минимальным опытом и лид-девелоперы с космическим прайсом.
>>887261 да, и? бери скилбоксящего программиста ИЛИ горящего экс-гуманитария с уклоном в гейм-дизайн и натаскивай под свои задачи, выращивай. а как ты хотел. движок движется к стагнации, рыночек порешал
>>887261 >скиллбокс Кто-то ещё покупает курсы у этих разводил? Лол. Я бы не стал брать лоха после скиллбокса, это же явный маркер, что человек долбоёб.
Если, чисто теоретически, set pass calls 300, но вершин всего 5К в кадре - это плохо? Я просто думаю, стоит ли заморачиваться уменьшением значения set pass calls, если у меня очень низкополигональные объект, но их много
>>887364 Так самое смешное, что даже на такую ЗП не идут опытные разработчики. Сеньорам подавай уже 5-7 тысяч долларов. При этом они хотят, чтобы у них в подчинение было пару программистов хотя бы. Сами они нихуя толком не пишут.
Есть Player - игрок. Есть Item - капсула здоровья. Игрок должен подойти - и когда он касается коллайдера Item, она исчезает, а в консоль выводится: "Капсула подобрана".
На капсуле - Capsule Collider. Когда галка Is Trigger включена - объект становится твердым и никуда не исчезает. А когда выключена - нормально исчезает, сквозь него можно пройти, надпись в консоль выводится.
А в книге, по которой я учусь, написано что должно быть наоборот. Почему так?
>>887488 Повесил Rigid Body на капсулу Item - теперь про включенной галочке Is Trigger капсула пропадает. Но вот беда - и при выключенной галочке эта капсула тоже пропадает!
>>887363 > Если, чисто теоретически, set pass calls 300, но вершин всего 5К в кадре - это плохо? Да > Я просто думаю, стоит ли заморачиваться уменьшением значения set pass calls, если у меня очень низкополигональные объект, но их много Да
Я пишу компоненты для игр как с рпгмейкера. Посоветуйте, как правильней сделать юзкейс для "трогания", нажатия enter на предмет/существо перед игроком. Я планирую написать команду TouchObject, с реквестом, дальше дописать логики, но мне кажется дальше через реквест прокидывать ивенты в скрипты будет как-то тяжело, пример, как это будет выглядеть(пик1,2,3)
>>887576 Тут проблема в том, что достпные тебе варианты зависят от архитектуры твоей игры. То как у тебя прокидываются зависимости - зависит от архитектуры твоей игры.
То как сделано у тебя - так впринципе не делают. Если хочешь могу расписать какие проблемы вижу у тебя в коде.
А так скорее всего в твоем случае разумнее всего будет сделать как-то так:
Делаешь интерфейс public interface ITouchable { public void Touch(); }
делаешь монобех реализующий этот интерфейс, вешаешь его на нажимаемыф объект объект
Когда детектишь объект на который нажали, делаешь у него TryGetComponent<ITouchable>(out var touchable) и дальше touchable.Touch();
Всё.
Предвидя вопросы сразу отвечу на них: Есди надо чтобы какая-то внешняя система знала что на что-то нажали, внешняя система должна вести учет объектов и отлавливать ивенты.
Например тебе надо открыть магазин когда нажимаешь на него. Делаешь интерфейс public interface IShopRequester { public event Action OnOpenShopRequest; }
Дальше реализуешь public class TouchableShop : MonoBehavior, IShopRequester, ITouchable { public event Action OnOpenShopRequest;
public void Touch() { OnOpenShopRequest?.Invoke(); } }
Дальше какая-то внешняя система отслеживает объекты IShopRequester и как только они вызывают ивент - открывает магазин.
Существует альтернатива офф магазину и сайту юнитиассетколлекшен? Я ничего не умею разрабатывать, но мне хочется потрогать. Ждать 9 часов пока скачается файл 500 мегабайт это пиздец.
Скажите чтоб освоить юнити нужно освоить 3д моделирование, начать с блендера? Ща учу просто программирование, не шарп, но потом перейду. Какие навыки нужно развить, чтобы пользоваться юнити? Че вообще там делать по логике, если ничего не прописывать?
Петушков, которые говорят, что у тебя типо все не очень, а надо делать интерфейс антачибал особо не слушай, это буквально самое первое прямолинейное тобишь нубское решение, плохое оно или хорошее не важно, они просто по другому не умеют. Лучше сам думай.
>>887344 Если говно спздил, то ты всё равно говна поел.
>>887734 Шарп нужно. Блендер не нужно. Тебе же не обязательно самому делать модели. Найди лоха, который тебе помоделит или делай, как любой тупой неосилятор, который не смог в графику. Пили пиксельную парашу.
>>887885 Нету типизации - все завязано на GetComponent у геймобжектов и надежды что будет там нужный компонент, есть параметры типа object, есть GameData, GameEvent и Attributes, которые как я понимаю тоже общие и используются для всего подряд и поля там тоже не типизированные а геймобжекты да обжекты.
Отсутствие типизации я думаю очевидно почему проблемно - нету гарантий что на вход поступило то что надо, невозможно в иде отследить источники разных "GameEvent". Потом где-то вылкзет ошибка и будешь охуевать А представь были бы у тебя типы - сразу в иде видишь где как какие юзаются.
Вот эти вот общие типы как GameEvent и GameData порождают ебовую связность как я понимаю у тебя они юзаются в каждом классе.
public GameEvent playerTouch - нету инкапсуляции, любой может заоверрайдить это поле и все сломается. Ну, если уверен в себе то можешь так оставить.
Очень странно, что тач контроллер зависит от некой геймдаты, которая у тебя [SerializeField] private GameData gameData Во-первых ты че руками будешь везде эту геймдату перетаскивать? Во-вторых зачем всем компонентам знать про геймдату? Намного лучше когда контроль идет сверху вниз и управляющая система знает о своих компонентах(а по солиду, по базе - об абстракциях компонентов, тогда ты еще и сможешь их подменять а не прибивать к конкретному типу), а не наоборот. Или у тебя впринципе как такового управления всей игрой нету, и компоненты самостоятельные и как хотят эту геймдату изменяют и реагируют на измения по своему усмотрению?
Не совсем понятно как прокинуты связи - вот ты делаешь gameEvent.Raise - кто перехватывает его, как узнает о нем? Просто выглядит так будто там каша
Ну и я думаю само собой понятно, что с неймингом хуево(_r.Ge - не хорошо), код стайл не соблюдается(где-то приватные с _ где то без), интерфейсы не юзаются а классы прибиты друг к другу
Ну и такое, можешь особо не переживать по этому поводу если пока только учишься, но гарбедж коллектор импакт вносит, поэтому реф тайпы без толку аллоцировать - а у тебя дохуя всяких ивентов как я понимаю классы и каждый раз при вызове срут в память собой. Похуй если это было бы редко, но если у тебя вся игра так сделана то гарбедж коллектор будет ебать иногда
>>887921 Что не так?) Легко свапаешь реализации и будет и делаешь разные варианты открытия магазина, разные штуки которые можно тыкать, интерфейс четко показывает свое назначение, для ньюфага самое то, и в его случае конкретно такое улучшение можно прям щас сделать и не сильно охуеть
>>887898 >Все завязано на GetComponent у геймобжектов и надежды что будет там нужный компонент Проверка if (component == null) return исправит ситуацию?
>есть GameData, GameEvent и Attributes, которые как я понимаю тоже общие и используются для всего подряд и поля там тоже не типизированные а геймобжекты да обжекты. GameData и Attribute это просто модели данных игры(пик1) GameEvent(пик2) я взял из тутора по ивентам
>Вот эти вот общие типы как GameEvent и GameData порождают ебовую связность как я понимаю у тебя они юзаются в каждом классе. GameEvent (пик2,3) избавляет от необходимости добавлять ссылки на инстансы через [SerializeField], тк там если что ивент просто никому не придет или на него никак не отреагируют. Я это взял из тутора: https://www.youtube.com/watch?v=7_dyDmF0Ktw&t=312s
Насчет GameData наверное её нужно как-то растаскивать по классам, по-разному загружать и тд, я его щас юзаю просто как модель данных, которые загружаются в нужные компоненты при загрузке файла сохранения
>гарбедж коллектор импакт вносит, поэтому реф тайпы без толку аллоцировать - а у тебя дохуя всяких ивентов как я понимаю классы и каждый раз при вызове срут в память собой. Похуй если это было бы редко, но если у тебя вся игра так сделана то гарбедж коллектор будет ебать иногда Разве он не будет сам срабатывать, когда игра будет ресы нажирать как в жабе, а по ресам у меня каких-то йоба эффектов не планируется
В общем и целом было бы круто, если бы ты ещё пояснил по тому, что я написал. Было бы найс конечно вообще сделать слоеную архитектуру как я делаю на бекенде, но я честно хз как тут это реализовать
>>887937 Ааа)) вот оно что)) блииин интерфейс ничего не делает как же быть((
Эх жаль нельзя сделать сделать некий класс, который будет иметь доступ к объектам с IShopRequester(либо найдет их через GetComponentsInChildren, либо фабрика будет пополнять их список который он получит, либо будет какой-нибудь ивент бас через который будет оповещать о спавне объектов с таким типом, или сервис для учета таких объектов заинжектится или будет получен с сервис локатора - вариантов миллион), подпишется на ивент OnOpenShopRequest и будет его централизованно обрабатывать в зависимости от текущего состояния игры, было бы круто... или можно!?
>>887928 > Проверка if (component == null) return исправит ситуацию? Ну основная проблема останется та же - в компайл тайме проблему не увидишь, надо именно запустить игру и триггернуть нужный сценарий чтобы ошибка вылезла. Чем больше штук которые нельзя отследить без запуска игры - тем хуже само собой.
Проверка - ну, она скорее может и в худшую сторону сыграть, потому что ошибка в консоль не напишется в просто ничего сделано не будет.
> GameData и Attribute это просто модели данных игры(пик1) > GameEvent(пик2) я взял из тутора по ивентам Ааа, так это та самая архитектура на СО, чего же я сразу не догадался. Ну, если че ее никто не юзает в коммерческой разработке(да и вообще), она по сути мемом стала, одна из изначально мертвых вещей от юнитеков. Единственный её плюс - то что геймдизайнер может сам собирать механики просто перетасиквая эти ивенты в монобехи, т.е. это "разгрузит"(условно) программистов, но от геймдизайнеров которые будут копаться в юнити будет требоваться намного больше работы и в какой-то момент будет ахуй с количества этих ивентов однообразных ивентов в которых хуй знает какие данные, причем по одному СО будет ваще не ясно какие данные придут в этом ивенте. Вот есть у тебя условно тот же TouchEvent и ты хочешь на него подписаться - как понять какие данные придут в параметре? Там же тип object. Придется искать что его вызывает и где...
Или наделать наследников GameEvent с типизированными параметрами какими-то.
С геймдатой я немного не понял - я вижу у тебя есть private GameDate gameData. Т.е. она существует не в единственном экземляре? При этом в самой геймдате есть данные игрока и нпц - явно оно должно быть уникальным на уровень или вообще, и существовать в единственном экземпляре. Если оно у тебя в единственном экземпляре, то как тогда все классы его получают?
> Насчет GameData наверное её нужно как-то растаскивать по классам, по-разному загружать и тд, я его щас юзаю просто как модель данных, которые загружаются в нужные компоненты при загрузке файла сохранения Ага, надо.
> GameEvent (пик2,3) избавляет от необходимости добавлять ссылки на инстансы через [SerializeField], тк там если что ивент просто никому не придет или на него никак не отреагируют. Я это взял из тутора Не, я про то, что у тебя вся игра построена с их использованием и соответственно если будет нужно изменение в ГеймИвент, то оно потребует изменения от всего что от него зависит. Но т.к. теперь я вижу что это СО - это оправданно, потому что цель сделать ивенты которые можно руками закидывать чтобы собирать механики без кода, а по-другому этого просто не сделать(разве что кодогенерацией лол). Но как я говорил - сама архитектура на СО это калыч и того не стоит.
> Разве он не будет сам срабатывать, когда игра будет ресы нажирать как в жабе, а по ресам у меня каких-то йоба эффектов не планируется Будет. Но работа гарбедж коллектора - это фриз в игре. Чем больше гавна он собирает, тем больше фриз. Поэтому у нас тут принято делать как можно меньшую нагрузку на него. И опять же - ничего страшного если немного будет мусора, но если у тебя вся игра построена по аналогии с теми TouchObjectResponce и TouchObjectRequest, и их каждыы кадр по многу штук так не надо делать, юзай структуру хотя бы вместо класса.
> В общем и целом было бы круто, если бы ты ещё пояснил по тому, что я написал. Было бы найс конечно вообще сделать слоеную архитектуру как я делаю на бекенде, но я честно хз как тут это реализовать А, так ты с бекенда, так это же вообще заебись.
Щас на юнити по сути две метовые архитектуря: 1. Сервисная архитектура - это вот довольно близко к бекенду. Как правило используется с DI(Zenject или VContainer). Регаешь сервисы - не монобех классы, все зависимости прокидываются, в точке входа из фабрик спаунишь своих игроков да врагов и все что тебе надо и инжектишь в них зависимости. Либо сразу в монобехи инжектятся эти сервисы.
Короче если бы ты был новичком в программированит то лучше бы было в это пока не лезть, но раз ты уже бекендер то тебе этот подход нааерное сразу понятнее будет. Погугли zenject или просто dependency injection в юнити.
2. Ecs. Причем он может быть в связке с сервисной архитектурой, а может и без нее.
Ну и из менее популярнвх подходов есть еще EventBus, его многие не любят, но лучше уж ивент бас чем архитектура на СО
>>887959 > Если что у тебя и инкапсуляция разъебана В каком месте? Ну хочешь сделаю public IObservable<Unit> OnShopRequested(); и приватный сабжект буду в реализациях возвращать
> но ты походу екс дебил, поэтому тут как бы все ясно Екс это база
>>887974 В анриле ограниченно С++ юзают, и есть блю принты.
А так >>887955 > Где перспектив больше - в Unity или Unreal Engine? Юнити никуда не денется, он очень легкий для новичков, и для про есть крутые возможности
>>887969 >GetComponentsInChildren )))))) ПАХПАХ >который будет иметь доступ к объектам с IShopRequester вот это да, ничивосебе >ивент бас )))))))))) >сервис локатора )))
Екс дебил не меняется)))
>>887928 >Проверка if (component == null) return исправит ситуацию? исправит.
>>887969 этого долбоеба не советую слушать, это местный патентованный ебаклак, который в основном просто пропукаивает терминами, т.е. у него буквально все посты об одном и том же. Видишь эвент бас, диай вот это все, сразу можешь не читать лол.
>>887976 >В анриле ограниченно С++ юзают, и есть блю принты. в парадигме выпускников скилбокса?
>>887955 Плюс юнити в том, что научиться качественно прогать на шарпе проще. Если с нулевой базой пойти сразу в анриал, то это практически гарантия говнокодерской базы в голове. Перекат из юнити в анриал лично у меня занял месяц, с учетом изучения базы плюсов.
>>887978 > >GetComponentsInChildren > )))))) ПАХПАХ > >который будет иметь доступ к объектам с IShopRequester > вот это да, ничивосебе > >ивент бас > )))))))))) > >сервис локатора > ))) ЫЫЫ ХАЧУ СИНГЛТОНЫ ИЛИ НЕТ ХАЧУ МЫШКОЙ ДВИГАТЬ))
Забавно как ты меня выдаешь как некую мистическую личность приследующую тебя, хотя я далеко не единственный кто итт топит за ди или ецс и редко вообще в таких срачах участвую.
Чего ты вообще так рвешься с подходов которые массово в коммерческой разработке используются в играх сложнее гиперкежа? Может быть ты просто не веришь что их поголовно все используют?
>>887992 Вроде бы я и не говорю, что его обязательно надо юзать, а просто перечислил варианты как возможно лиюо найти объекты нужные, либо передать данные о них.
>>887991 > Кто их массово использует? овлкат гамес с пропуками в играх? Охотно верю. Я знаю только что чел из овлкет на хабре статью писал про то как они ивентбас юзали. Что еще они там юзают я хз. А так все либо строят архитектуру на ди, либо на ецс. Ну вот буквально все, можешь на хх прочекать вакансии, там в 60% вакансий требуют понимание ди, в 20% ецс, и только в 20% никакой конкретики не указано, но скорее всего либо тоже что-то из этого, либо они на синглтоновых геймменеджерах гиперкеж штампуют.
>>888004 >там в 60% вакансий требуют понимание ди пиздабол. там кроме знания зенжекта ничего не требуют и это как раз поточное мобильное производство.
>Вроде бы я и не говорю, что его обязательно надо юзать, а просто перечислил варианты как возможно лиюо найти объекты нужные, либо передать данные о них.
да да. просто написал хуйню с лишней абстракцией, теперь буду придумывать где она пригодиться. А че двумя ограничился, а не пятью?
Я бы за однострочные монобэхи вам руки отрывал. Вы все пишете просто ебучий кал, а не архитектуру. Это и ецс шизов касается, и синглтон дебиков. Орнул нахуй вдвойне оттого что шизики не знают как дженерики к евентам прикрутить.
>>888013 > да да. просто написал хуйню с лишней абстракцией, теперь буду придумывать где она пригодиться. А че двумя ограничился, а не пятью? Че бля? Ты сказал, что я сделал интерфейс который ничего не делает. Я тебе сказал - делать будет не он, потому что он и не должен этого делать, а какая-то внешняя система, соответственно встает вопрос о том как она узнает об объектах соответствующего типа. И я перечислил все варианты это сделать какие пришли в голову сходу, чтобы показать что какая бы у тебя не была архитектура - никакой сложности тут нет и твоя претензия изначально непонятна. Это не значит что я топлю за сервис локатор или ивент бас или спавн абсолютно всего из фабрик.
С чего тебя порвало?
> пиздабол. там кроме знания зенжекта ничего не требуют и это как раз поточное мобильное производство. Ну вот я и говорю в 60% указано требование ди, а ты говоришь никто не использует. Или тебя смутило, что я написал что в 20% вакансий требуют ецс? Конкретно в в тех вакансиях что я смотрел недавно где-то в 20% случаев было написано ецс. Если учитывать джуновские и всякое очевидное гавно то конечно будет меньше. В той же телеге есть ецс чат которыы очень даже активный, дохуя кто его юзает
>>888020 >Ну вот я и говорю >серьезные практики для серьезный ребят > поточное мобильное производство держи в курсе.
>Я тебе сказал - делать будет не он, потому что он и не должен этого делать, а какая-то внешняя система, соответственно встает вопрос о том как она узнает об объектах соответствующего типа.
зачем там какая-то внешняя система? чтобы эвентбас заработал?))
>>888027 > держи в курсе. Если это не гк, то там вообще-то очень много бизнес-логики!
> зачем там какая-то внешняя система? чтобы эвентбас заработал?)) Хз, ты по моему просто рендом слова пишешь.
Ну, мы хотим сделать так, что ты кликаешь на что-то и открывается магазин.
Само собой нужна некая модель данных и бизнес логики магазина, нужен юи магазина, нужна доп. логика типа паузы или чего еще при переходе в магазин.
Сколько это внешних систем, так можешь примерно почувствовать?
Когда почувствуешь, понимаешь, что у тебя два варианта - либо кликаемый магазин должен получить ссылку на некую внешнюю систему сам делать что-то типа shop.Open()под которым будет скрываться загрузка магазина, показ ui, пауза и доп логика.
Либо просто выкидывать ивент, который отловит внешняя система и сделает то же самое что под спойлером.
Второй вариант само собой прикольнее, потому что можно активные вьюхи и другие хендлеры этого ивента вешать включать и отключать по желанию, да еще и контроль идет сверху-вниз и можно придерживаться слоеноц архитектуры
>Когда почувствуешь, понимаешь, что у тебя два варианта - либо кликаемый магазин должен получить ссылку на некую внешнюю систему сам делать что-то типа shop.Open()
>>888254 У меня немного по другому. Находится, либо задается Родительский Transform и уже по нему Find ищется, т.к если просто через GameObject.Find, это слишком грузит сцену поиском по всей, и весьма плохо, хотя если разовая инициализация в начале игры, то поебать, подождут.
>не могу вкурить прикол такого подхода Тебе не надо ручками ничего задавать, всё делается в скрипте.
>>888255 Что мешает прокинуть ссылку напрямую через инспектор или если эти объекты создаются, а не лежат в сцене сразу получать ссылку после создания? Геймдиз, перенесет мискликом объект в другой скоуп, да получит пизды, но искать траблу будешь ты.
>>888260 Речь про сотни объектов, еще сотни инстансятся, данный метод позволяет всё сделать из кода и одного места. Эту инициализацию делаешь в начале, всё делается по порядку, минимум конфликтов и дебага. Руками в инспектаре лучше вообще ничего не делать.
>>888263 Если код зависит от сцены, которая может изменится и все упадет это неправильный подход. Проебанная ссылка будет видна в коммите префаба, ошибка будет указывать на отсутствие ссылки явно объект удаленный или перемещенный из сцены сложно найти в коммите с измененной сценой. Факт - использовать GameObject.Find плохо.
Сраное юнити! У них уже давно во всех новых версиях противный баг с телепортом мышки. Активируется если подвигать мышкой в окне сцены с зажатой левой кнопкой. После этого курсор телепортируется на другую сторону экрана, если курсор над окном юнити, НАД ЛЮБЫМ ЭЛЕМЕНТОМ В ОКНЕ, возле края экрана и зажата левая кнопка. Как же меня бесит этот баг, когда пытаешься прокрутить окно инспектора и мышка улетает на другую сторону экрана. Юнити вообще кто-то пользуется? Как можно не заметить этот очевидный баг?
>>888557 То есть надо подвигать мышкой с зажатой кнопкой в окне сцене, после этого зажать левую кнопку пока курсор над окном юнити и двигать курсор к краю экрана. Курсор будет телепортироваться. Это баг.
>>888558 В смысле, что при зажатой кнопке курсор из крайнего левого положения переходит в правое и наоборот? Это абсолютно нормальное поведение. Сделано было, скорее всего, чтобы флоаты в редакторе накручивать удобнее было. Но абсолютно ничем не мешает и уж точно не баг.
>>888563 >>888564 Вы вообще читали что я писал? Баг заключается в том, что если подвигать мышкой с зажатой левой кнопкой в окне сцены, то "залипает" режим переноса мышки ВСЕГДА если левая кнопка была зажата над окном юнити. Я в курсе что в юнити для некоторых окон и контролов активируется такой режим. Баг в том, что он "залипает" и срабатывает всегда при зажатой левой кнопке над окном юнити.
Если запустить юнити и не двигать мышкой в окне сцены, то этого бага нет. Если подвигать мышкой в окне сцены с левой кнопкой, а потом подвигать с зажатой средней кнопкой, или переключить инструмент сцены (например, с выделения, на инструмент перетаскивания), то это состояние переноса тоже сбрасывается.
>>888575 По идее этот режим переноса в сцене должен активироваться только для перетаскивания средней кнопкой. В юнити 2021 это так работает. Для Move Tool он НЕ ДОЛЖЕН активироваться. В новых версиях юнити этот перенос ошибочно активируется для Move Tool и потом залипает. Это баг.
Правильно ли я понимаю, что сейчас на хайпе Unreal Engine? И все побежали учить его? Значит ли это, что в какой-то момент Unity девелоперов начнет не хватать, а на рынке мобилок / казуальных игр Unity все же уделывает Unreal? Значит ли это, что учить именно Unity - правильный выбор?
>>888752 >Значит ли это, что в какой-то момент Unity девелоперов начнет не хватать Конечно нет, типоумеющих в юнити всегда хватает. А вот нормальных разработчиков нехуя нет.
>>888752 > Правильно ли я понимаю, что сейчас на хайпе Unreal Engine? Откуда инфа? > И все побежали учить его? Да нет вроде. Ну, популярность анрила не падает, а стабильно растет, но вроде особого хайпа нет. > Значит ли это, что в какой-то момент Unity девелоперов начнет не хватать, а на рынке мобилок / казуальных игр Unity все же уделывает Unreal? Анрила на мобилках практически нету, даже годота наверное больше > Значит ли это, что учить именно Unity - правильный выбор?
У юнити и анрила свои преимущества и недостатки, выбирать надо исходя из них и своих целей
Если тебе интересно что выбрать чисто с экономической точки зрения, то наоборот лучше вкатываться туда где темпы роста больше - если отрасль растет, то создаются новые рабочие места, а обычные работяги быстрее апаются по карьере
Раньше тягал объекты физически и это было напряжно. Куча настроек кода, куча нюансов, багов, которые нужно было решить. Короче, решил переписать по другому. Вот такая теперь схема, может кому покажется интересной. 1. Допустим, я хочу взять предмет Cube. 2. Я его буквально скрываю (setActive(false)) 3. На его место перемещаю специальный объект-пустышку, и присваиваю ему ту же сетку и добавляю boxCollider с триггером. 4. Если этот псевдо объект с чем столкнулся, то его специальный полупрозрачный материал становится красным, типа нельзя его тут бросить. 5. Если игрок бросает предмет, то скрываем псевдообъект и на его место ставим оригинальный. В общем, нет физики - нет физических проблем. Код уменьшился на 80%, стал понятнее
В ньюфаг треде тишина, попробую спросить тут. Как можно быстро покрасить модельки и импортировать их в таком виде в юнити?
Это не для готового проекта, я учусь и хотелось бы учиться на чем то наглядном, а не на кубах. Анимацию и сами модели делаю в Майе, но насчёт текстурирования там долго сидеть с нодами и это та сторона куда я практически не влазил. *В идеале рисовка по самой модели, а не по 2д развёртке.
Почему новичкам даже не советуют смотреть в сторону игр с открытым миром? Это потому что нужно полностью знать код и функционал движка для оптимизации? Или дело в том что домашнее железо просто не потянет фул мапу в одной сцене со всеми объектами на ней?
Юнити из коробки умеет в подгрузку только тех квадратов карты где находится игрок?
>>889089 > Почему новичкам даже не советуют смотреть в сторону игр с открытым миром? Много сложностей и как правило игра с открытым ммром предполагает много механик, новичок никак не потянет большой проект
> Это потому что нужно полностью знать код и функционал движка для оптимизации? Полностью юнити никто не знает, это и не нужно
> Или дело в том что домашнее железо просто не потянет фул мапу в одной сцене со всеми объектами на ней? Железо не причем
> Юнити из коробки умеет в подгрузку только тех квадратов карты где находится игрок? Ну, скажем так, тут не все так просто.э
На самом деле если честно твои вопросы несколько бессмысленные. Если хочешь делать игры - начинай учиться, там и до опен ворлда дойдешь в какой-то момент
>>889118 А нахуй ты настройки в плеймоде крутишь? Крути без плеймода. Если прямо в жопе свербит в плеймоде смотреть то до того, как отжать, клацни по компоненту второй кнопкой, выбери скопировать компонент, отожми плеймод и вставь.
>>889297 Скорее дело не в том выпустишь или нет, а в твоих навыках. Я когда еще ньюфагом был - было тяжело... А как стал ебашить - стало намного приятнее игры делать, потому что в целом понимаю как и что надо делать, есть вопросы только к некоторым конкретным особенностям или элементам игры, и намного меньше времени тратится на дизморалящую борьбу с багами
>>889120 Я создаю партикл в сцене. Настраиваю его, вбиваю все параметры, далее жму плей, проверяю, останавливаю, возвращаюсь к его настройкам и они сбрасываются на дефолтные.
Это не единственная проблема, после того как я попытался поменять настройки камеры движок хуйнул всю видимость с объектов в сцене. >>889337
Не сохраняя вышел с проекта, загрузил - без результата. Видимость везде проставлена, настройки самой камеры сброшены на дефолт. Причем видимость с нее в углу видна, а вот расположение объектов в сцене я увидеть не могу. Только передвинуть их.
>>889374 >>889337 Все пофиксилось, в том числе и партикли, появилось корректное окно где можно менять настройки, рестартить и все остается.
Кто нибудь спросит а нахуя нубу партикли, если он не знает базовых основ. Так я отвечу - туториалы очень простые, можно сразу работать над эффектами скилов и оружия.
>>881013 Напиши для персонажей универсальный компонент типа CharacterController, в котором будет весь функционал и вешай его на всех персов (нпц, монстры, игрок и тд.) Потом пиши контроллеры пользователя (PlayerController и AIController), где ты уже определишь какие функции CharacterController будут использоваться. В AiController ты можешь реализовать кучу разных поведенческих паттернов и менять их на лету. Должно получиться довольно гибкое решение, т.к каждый персонаж может быть нпц ботом или управляться игроком. Даже если это не пригодится, то по крайней мере ты избавишься от навязчивых мыслей, что тебе чего-то не хватает.
>>889933 Кстати это забавно, по архитектуре вообще нету никаких нормальных материалов, ни на гитхабе проектов, ни статей, ни видосов, ничего. Максимум какие-то абстрактные размышления на тему без конкретики. Хотя тема супер актуальная, новички делают говно и спрашивают у всех - а как надо, а им никто не отвечает и посоветовать ничего не может, потому что нечего.
Я и сам таким был, и стал делать нормально(и то условно, еще есть много к чему стремиться) уже на работе после нескольких выпущенных проектов, и я реально не вижу причины, почему до сих пор никто не запилил на гитхаб пример или на хабр статью как сделать базу под какую-нибудь небольшую игру. Ну, кроме того что это время займет, и скорее всего профитво никаких не принесет.
>>889990 Единственный способ научиться писать нормальное архитектуру и перенять современные практики - пойти работать с большую контору разработчиков игр. Особенно в мобильных конторах дрочат архитектуру очень жёстко, потому что в мобильных играх очень много различных сервисов, состояний и прочего.
Да меня не интересует пример отличного кода, я как нуб хотел бы очень увидеть любую реализацию описанного. >>889657
По сути это системы которые используют или использовали ММОРПГ 2005-2010 годов. Когда у тебя моб в принципе аналогичен игроку. А игрок может на себя примерять шкуру моба. Такое было в Lineage 2, когда включаешь девелоп режим
>>889990 Да там особо то и знать ничего не надо. буквально код комплит прочитать, там слоеная описана и все. У Крюкова тоже ехала слоеная через слоеную.
Как глобально отлавливать эксепшены в юнити? Мне казалось, что в Application есть такое специальное событие, но на деле оно просто отлавливает логи. А мне нужно получить сам эксепшен.
>>889875 >Где можно посмотреть примеры таких решений или туториалы? Берешь любую игру на юнити и открываешь декомпилятором. Смотришь что тебе надо и пиздишь код
Посоветуйте пожалуйста туториалы, гайды, каналы связанные с эффектами в движке, с партиклами ну или книги, если такие есть.
Большинство того что встречаю это по сути портфолио, автор не углубляется либо пропускает ключевые моменты как он сделал определенные вещи. Особенно у азиатов - очень красиво и годно, но даже намека нет с чего начать.
Теперь полю игру строго по чек-листу. А то раньше сел - и сам не заметил, куда-то поплыл, с компонента на компоненты, с фичи на фичу, вроде и делаешь что-то, но бывает, что приходишь к выводу, что особо не продвинулся за текущую сессию. А теперь я строго так, по списку, можно не по порядку, но не отвлекаясь 1. Настройка чувствительности мыши/геймпада 2. Разместить лампы для запекания 3. Разместить пробы 4. Реализовать прыжок персонажа.
Сегодня пришел к выводу, что лучше не работать с OnEnable, Awake, и прочим (в 99% случаев), а пусть будут методы типа Init(), чтобы не было проблем с порядком. Пусть один класс инициирует все в такой очереди, чтобы все не ломалось
>>890297 >Сегодня пришел к выводу, что лучше не работать с OnEnable, Awake Ну давай, накидай мне альтернативу. Игрок получил перк - ужас, при котором все враги низкого уровня разбегаются, давай как мне это им сообщить? Если напишешь про Update перетяну тебе через лицо..
Ловите хак: Если вам надо, чтобы Юнитя компилировала скрипты, но иногда вам этого не надо, выможете в каком-то скрипте оставить явную ошибку. Компиляции не будет, и вы будете экономить пару секунд, а и то больше, если железо слабое. А то иногда прям нужно переключаться между редактором с VS Code делая небольшие правки в коде, но при этом нет необходимости, чтобы была компиляция
>>890499 Правой кнопкой жмешь на папку, где сохранена модель, префаб, материал, текстуры и т.п., далее выбираешь из списка export package и сохраняешь куда надо.
>>890000 Переведи пикрил в normal map, потом эту нормал мапу надо применить на прозрачный материал (tranbsparent), а дальше играть с масштабом объекта, на который применяешь материал - либо через скрипт, либо через щейдер с функцией масштабирования.
Хочется сразу ещё один вопрос задать, хотя мне далеко до реализации ещё. Вот есть у нас персонаж со скелетом, к нему будет идти анимации - стойка, ходьба, бег и т.п.
А каким образом к скелету цеплять оружие, если вариаций оружия несколько? Как правильно это делать?
Делал модельки в Блендере, красил в Сабстансе. Пару моделек для теста закинул в Юнити, распаковал материалы и текстуры - всё нормально подтянулось и отображалось, ну я и забил на проверку. Просто делал модели в стол, чтобы потом сразу кучей закинуть. А сейчас решил проверить, закинул одну из новых моделек, также распаковал материалы и текстуры - а оно перестало работать, материалы все чисто белые. Распакованные текстуры перестали автоматически подгружаться в материал, но даже если вручную текстуры в материал запихнуть - всё равно материал весь белый. Ну я подумал, что где-то обосрался с новыми моделями. Закинул старую модель, которую раньше распаковывал - а она тоже вся белая. Причем у меня точно такая же модель рядом лежит, уже распакованная раньше и всё работает, а если делать то же самое - нет. За это время я Юнити не запускал и никак не трогал, что там могло сломаться - не знаю. В чём может быть дело?
>>889990 Новичкам надо просто делать игры по типу арканоида и сапера, изучать апи движка, а не дрочить мануалы по архитектуре - это только отбивает желание изучать движок. Со временем, после пары-тройки говнопроектов, если чел понял что делать игрульки - это его - понимание само придет по выбору архитектуры для конкретного проекта.
>>890712 Я бы добавил пустой объект к нужной кости, который бы потом был парентом или констрейнтом для объекта оружия. Когда происходит выбор оружия, то персонаж должен включить необходимый анимейшен стейт для этого типа оружия (держать пистолет или держать винтовку), дальше должен включиться и приаттачиться необходимый ствол к нашей опорной точке. В общем у тебя два объекта(персонаж и оружие) которые просто синхронно проигрывают анимацию.
>>890735 > Новичкам надо просто делать игры по типу арканоида и сапера Я не про таких новичков само собой лол
А про таких > Со временем, после пары-тройки говнопроектов
Потому что на практике > если чел понял что делать игрульки - это его - понимание само придет по выбору архитектуры для конкретного проекта. нихуя не придет за 3 игры. Чтобы пришло надо изучать все те крохи инфы какие есть в интернете и как они решают твои проблемы и уже быть опытным в программировании еще до прихода на юнити
В юнити возможно работать над бесшовным миром разделяя его на отдельные куски по сетке? Движок умеет подгружать в уже собранном проекте только те места где непосредственно находится игрок?
Постараюсь понятнее объяснить: Я кирилл суть такова Допустим у нас один большой террейн площадью 25 квадратных км. со сторонами 5х5. Кистью проводим разметку с макета - оставляем пометки для того чтобы на эти места расставить постройки и остальное. Далее это дело нужно разбить на квадраты по 1 кв. км. и заниматься окончательной проработкой. И к примеру треть карты останется пустой, для ее наполнения в дальнейшем, но там будут невидимые стены куда игрок не пройдет.
Подскажите, мне все равно нужно лезть в rigidbody и использовать коллайдеры в 3д сцене если я хочу вообще физические просчеты в игре к минимуму свести? Есть альтернативы?
Требований несколько - Персонаж не должен проходить сквозь текстуры и органично двигаться - возможность движения по наклонной поверхности
Все остальное взаимодействие будет только с интерактивными объектами.
>>891103 Так лезть в ригитбоди это же самый простой вариант, почему ты боишься? Оно не будет грузить проц, если у тебя не сто тыщ объектов. Тем более пхисикс в юнити это самый быстрый вариант, не считая той дрисни для дотса
>>891223 >нужно вешать меш коллайдер на казалось бы простой объект. Нужно вешать кубы и капсулы, они производительней. Но иногда геометрия объекта просто не вписывается в куб и тут уже нет вариантов. terrain collider же работает только с встроенным в Юнити тиррейном, ты его ни с чем другим не сможешь нормально использовать.
А теперь мой вопрос. Хочу сделать персонажа маленького роста, сантиметров двадцать. Писать собственный контроллер персонажа мне лень, беру готовый. С моделькой такого роста получаю полный пиздец по движениям и анимациям. Как думаете, есть смысл нормально все настраивать? Или проще тупо увеличить все объекты окружения?
>>891103 > Персонаж не должен проходить сквозь текстуры > возможность движения по наклонной поверхности
Ну если нужна физика, значит надо лезть в физику. Не? >>891220 > Собственно отсюда уже второй вопрос вытекает, если у меня в игре будут панели парящие в воздухе по маршруту - что на них вешать? Тоже ригидбоди? Ну если это физические твердые тела(участвуют в коллизиях, сквозь них нельзя ходить), то да.
> Я прочитал что движку придется каждый раз делать рассчеты. При любом движении придется делать рассчеты. И все равно цена им около 0 в твоем случае.
> статичный объект движется то вообще смерть Ну значит делаешь объект не статическим и двигаешь
>>880622 (OP) При установке пакетов из пакетного менеджера возникает такая ошибка: Converting circular structure to JSON --> starting at object with constructor 'Error' --- property 'error' closes the circle UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
Что с этим делать? Перезагрузка и переустановка не помогли.
Разве террейн в юнити это не обычный плейн? Мне казалось что я доделаю ландшафт в блендере, перекину его в юнити, добавлю тег террейна и накину террейн коллайдер.
Или это так не работает? Каким образом мне правильно перенести мою локацию? Там есть как ровные поверхности так и холмы. Неужели нужно руками расставлять коллизии примитивы которые будут повторять очертания ?
Как правильно реализовать отображение экипировки на персонажах?
У нас есть модель эльфа. Для него сделано 3 набора брони, каждая состоит из 5 частей. (Шлем, нагрудник, штаны, перчатки, сапоги) Экипировать можно 1 часть любого набора брони. Игрок сам должен решать какие бонусы ему нужны и в зависимости от этого подбирать куски.
Но как это должно выглядеть с технической стороны? Создавать сотни возможных вариаций одной модели это же шиза. Шейдеры тоже не помогут, потому что броня выходит за пределы модели персонажа, особенно тяжёлая.
>>891335 Лучше попытаться настроить. Там же вроде ничего сложного нет, сам юнити говорит, что надо step offset по такой то формуле подгонять к размеру объекта.
5ый год работаю в конторе без развития, делаем гиперказуальную-казуальную хуйню и периодически апдейтим флагманский проект и высираем его клоны.
Собственно, хочу левел-апнуться и сменить место. Во многих конторах для миддла (от 200к) просят строгое соблюдение SOLID, DI. (иногда приписывают YAGNI, DRY) Что есть почитать на тему или глянуть туториалы, чтобы сие использовалось в Юнити?
>>891845 >делаем гиперказуальную-казуальную хуйню >просят строгое соблюдение SOLID, DI Это для хуевых прототипов которые за 2 недели собирают нужен солид и инверсия?
В Build Settings пытаюсь установить модуль WebGL. Он скачивается в Unity Hub - и происходит вечная Validating. Unity Hub закрывал и запускал от имени администратора - не помогло.