На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны? - Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны? - Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity? - C#
- На каких платформах работают созданные с помощью 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х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
>>873990 (OP) Бампаю вопросом из прошлого треда Сап юнитач. Поясни за анимацию. Работаю в бленде, анимирую сам, через инверсную кинематику, закидываю в движок и всегда обсираюсь. Ноги скользят по земле даже в идле. Пробовал через слои, ставить галочки на самой анимаци, чтобы только ноги опирались на землю ничего, не помогает. Проблема системная и тянется уже несколько лет, в дефолтных проектах или скелет миксамо без инверсии или с инверсией, но почему то не скользит. Странно, что на годоте такой проблемы в принципе нет.
Когда-нибудь в будущем хочу запилить игру где немного открытый мир, в основном, в лесу. Слыхал, что юнити купила Speedtree. Для пользователей юнити он теперь бесплатный? Или юнити просто купила, чтобы прибыль себе грести.
>>873990 (OP) Сегодня был в книжном. Unity в действии. Мультиплатформенная разработка на C#. 3-е межд. издание Хокинг Джозеф уже перевели на русский и книга стала толще в 1.5 раза.
>>874560 Я пробовал унити, учился, даже игру очень простую создал, но оконачетльно переехал на годо, потому что у него связка годоскрипта, оно же питон, + С++, намного мощнее, 80% ты делаешь на скрипте, а там где надо, точечно изпользуешь С++, например где работа с массивами
>>874591 Перекатился в уеч. Никаких проблем не испытываю. Блюпринты достаточно простая хуйня, с ней только дебил не справится. Плюсы тоже хуйня. От шарпа отличаются только если ты байтоеб, на базовом уровне тоже самое.
>>874593 > на базовом уровне тоже самое. О, да? Там завезли дженерики, linq, конктракты для интерфейсов, абстрактных классов и ридонли структур, хорошую стандартную библиотеку, сильную типизацию, паттерн матчинг, асинк авейт, аттрибуты, рефлексию? Круть, надо будет обязательно перейти на анрил и сделать игру на ecs. Ecs же тоже завезли, правда? ;)
по каким причинам шейдер может менять своё состояние в фоне? на материале переключаю шейдеры, но они не сбрасывают состояние в исходное и продолжают дальше хуярить
Посоны, а такие эффекты (типа удара мечом, взрыв, молния и тд) для 2д игры, как разумнее реализовывать? В условном фотошопе нарисовать или в партикал системе юнити?
>>874692 Для эффектов тебе почти всегда понадобится и фотошоп и партикл система. Иногда какой-нибудь треил рендерер. Иногда шейдеры. Короче разные комбинации из всего этого под разные задачи.
Конкретно у тебя на пике просто покадровая анимация, поэтому хз какие именно "такие" ты имеешь в виду.
Говорят, дизайн и моделлинг надо делать в последнюю очередь, когда игра уже точно готова, а до этого использоваться примитивы. Я так и делал, но когда сделал почти половину всех уровней, начал пилить дизайн, ибо заебался, мне уже было лень прогать, и мне срочно нужно было отвлечься на что-то другое. Пол и стены готовы, ща за дверной порог и потолок возьмусь. Вообще стиль будет максимально минималистичный. Я сначала пытался сделать, как на фотках разных лабораторий, но быстро понял, что в одиночку не потяну такое. Точнее, потяну, но на это уйдут годы. Так что пол, потолок, возможно, двери, - всё будут серым и непримечатальным. Цветными и красивыми будет только объекты, с которыми можно взаимойдействовать, толкать.
>>874831 >Цветными и красивыми будет только объекты, с которыми можно взаимойдействовать, толкать. это главная особенность твоей игры? когда релиз в стиме?
>>874865 >год игру пилить буду опасная затея, по моему маня мнению низкий шанс, что такое выстрелит, лучше бы сначала пилил на том чем легче заРАБотать, например кликер или идлер, жалко тебя вообщем
Ребят, а подскажите пожалуйста новичку как правильно выстроить архитектуру. У меня шутер где меняются оружия в руке. То есть я создаю ScriptableObject и несколько его экземпляров для каждого оружия. Дальше у меня получается скрипт движения пули берет информацию об оружие, скрипт смены оружия и т.д. То есть мне нужно создать скрипт, который будет хранить в себе массив всех видов оружия, и из него через статик брать данные о скорости пули и т.д. другими скриптами?
Юноны, какие готовые решения сейчас считаются фундаментом, считаются БАЗОЙ? Я так понял к ним относятся UniTask и Extenject(он же Zenject, но чуть новее). А ещё что?
>>875122 Vcontainer это более базированная версия зенжекта, если его юзать вместо зенжекта то будут уыажать MessagePipe это более базированная версия сигналов из зенжекта
Юнитачи кто делал большие проекты подскажите, вот у меня есть начальный скрипт инициализатора из него до старта игры(Отображению игроку стартового меню) вызываются другие скрипты которые проходят стартовые настройки, там и все ui, скрипты логики и менеджеров всяких и т.д. Так вот у меня почти 500 строчек только стартовых вызовов где происходят всякие настройки, это нормально так делать? Там же еще вызываются скрипты которые в свою очередь далее вызывают более низшие скрипты и так может быть до десятка вложений. Всё работает и окей, и вроде так и должно быть, но мб делать надо как то по другому? По логике я делал так - До игры прогружаем все нужные ресурсы и скрипты, настраиваем ui, создаем нужные префабы и так далее. Подобная инициализация происходит и при старте/загрузки игры, но там намного меньше, тоже самое по аналогии, но в более узкой форме.
>>875171 У каждого свое понимание нормальности. Но я хуй знает что там можно в 500 строчек вызвать, если у тебя по факту ну пиздец не больше 10 систем высшего уровня иерархии.
>>875642 > Zenject Он перегружен, он не поддерживается, он продвигает плохие практики. VContainer лучше. И он продвигает правильные практики, когда в монобехейверах вообще не используется инъекция.
>>875694 >>875701 >>875702 >>875704 Сорян, я тупой. Ивентами это надо передать контроллеру "себя" и ждать, когда контроллер вызовет что то, типа "EnemyScript.UpdatePosition()" да? А как передать контроллеру себя? Нужен будет как то записать себя в лист, не хуже ли это в плане производительности, иметь лист, вместо того, что "контроллер" меняет свою одну переменную, а все "получатели" сами реагируют на это?
>>875712 Объясняю. Во время инстанса объекта из менеджера, этот самый менеджер сохраняет объект в список и потом можно делать что угодно с этим списком, посылать или находить, активировать, удалять, тем самым сам объект ничего не должен находить по сцене или делать, кроме внутренней логике. Шизиков про эвенты не слушай, их вообще не юзай. Эвенты дрочат как и апдейт каждый кадр всю сцену, это худшее что есть.
анрилюсик проще и лучше
Аноним16/04/23 Вск 13:26:35№87587654
Блин, почему так сложно. Вот есть у меня файл текста, я его хочу сделать массивом. Чтобы потом по клику на кнопку из него брался один элемент, передавался в другой класс, а сам элемент из массива удалялся. Вроде звучит просто? Но когда я начинаю думать про сериализацию-дересериализацию, чтобы массив синхронизировался у всех игроков, то мозг ломается
>>875876 Так разбиваешь свою хотелку на более мелки задачи и реализуешь, что сложного? Если я правильно понял, то твою задумку не сложно реализовать, как и любой другой вопрос передачи данных по сети.
>>875882 >Так разбиваешь свою хотелку на более мелки задачи и реализуешь, что сложного? Не врубаюсь, как передать инфу о уже созданном и отредактированном в процессе игры массиве игрокам, которые присоединились позже к сессии вообще интересно, что когда я задаю вопросы, то в голове будто бы появляется решение (почти)
>>875889 >Не врубаюсь, как передать инфу о уже созданном и отредактированном в процессе игры массиве игрокам, которые присоединились позже к сессии Во первых тебе надо понять как происходит синхронизация. По типу лана, один игрок хост, другие подсоединяются, или выделенный сервер? Любые данные можно передавать и синхронизировать, но стоит помнить что гонять string по сети не стоит, хоть ты и переводишь всё в байты, это слишком жирно. Исключением составляют подобие чатов где строки гоняются не каждый кадр.
>>875890 >выделенный сервер Это. В приложенном видео даже описаны методы, которыми можно делать синхронизацию в этом конкретном случае (игре). И как я понял, массив нельзя редактировать в сишарпе. Только списки можно
>>875897 >массив нельзя редактировать в сишарпе В смысле? Ты можешь что угодно, как угодно редактировать, либо реализовывать своими силами + брать готовое и допилить под себя. Нет задачи которую нельзя было бы решить, максимум это костыль.
>>875914 Так ты что реализуешь? Может для этого не массив нужен? Вообще прежде чем лезть в сетевую часть настоятельно стоит сделать пару простых игр, чтобы просто понимать как, что делается. Сетевая игра это сразу х2 к сложности разработки, без опыта это очень больно делать.
>>875931 Я делаю мир для метаверса. Пару месяцев назад освоил базу, сделал мирок, но в нем игровой опыт был минимален (надо было искать предметы и ввести код для победы, но всё это было локально). А сейчас хочу сделать карточную игру, и на моменте, когда всё со всем надо синхронить, сломался немного.
По плану я буду в проект погружать текстовый файл с фразами (каждая с новой строки). Этот файл я распилю в массив со стартом игры. И по нажатию кнопку «получить карту» будет браться рандомный элемент из массива (фраза), передаваться в новосозданный объект «карта», и удаляться из массива.
И надо чтобы этот массив синхронился у всех игроков (ну это легко при нажатии кнопки), НО и у тех, кто только зашел в игру (как понимаю, у них будет создаваться массив снова из файла, без информации о том, какие элементы были удалены в процессе игры других челов)
Это чтобы вручную не создавать 3000 карт и не перетаскивать их ручками в массив
>>875936 Не знаю на сколько понял твою задумку, но если речь про сотни объектов, то тебе понадобится 2 списка, или 2 массива. Первый это общий хранится на сервере, второй генерируется на клиентах. При удаление из массива запускаешь сортировку с заполнением свободного слота и всё.
>НО и у тех, кто только зашел в игру Так тебе в любом случаи надо хранить всю инфу лишь на сервере, и просто отправляешь её игроку функцией GenericMyArray(); Хоть пчелик только зашел, хоть массив был изменен, хоть челик дисконектнулся на 15 сек и массив изменился.
Тут уже больше идёт вопрос в логике и архитектуре, стоит подумать как это лучше реализовать. Гонять такие массивы каждый раз когда кто-то пукнет не есть гуд.
>>875937 >Гонять такие массивы каждый раз когда кто-то пукнет не есть гуд. Тогда может мне создать префаб карточки, в коде прописать спавн 300 карточек на старте через цикл, где текст будет заменяться на строку из текстового файла. Таким образом у каждого игрока будет это происходить один раз при загрузке, а потом карточки будут синхронизировать свой трансформ на клиентах индивидуально? Так проще будет по идее
>>875948 Тут помочь будет тебе трудно советом т.к никто не знает что там у тебя, и как устроено, скажут одно, а ситуэйшен у тебя в проекте другой. Но общая логика проста -> В начале игры происходит загрузка + прогрузка всех ресурсов + тут же синхронизация -> Далее по игре уже небольшие данные туда сюда гоняются -> Profit. Всё же советую сделать твою задумку хотябы как отдельные механики в сингл версии, а потом когда увидишь что вообще тебе надо, попытаться реализовать с неткодом.
открывается только на русском, на англюсике сразу пишет Сорри нажимаешь на Add в табличке, сообщает что это только для яваскрипта, а не для шарпа. Каво, блядь. Как добавлять в массив-то?
>>873990 (OP) Кто-нибудь может пояснить, что нужно пофиксить, чтоб игра стала реагировать на команды WASD (или вообще любые другие player input-команды)?
Только вкатился в юнити, старательно делал все по гайдам с ютуба, а из 5 разных скриптов сработал только один, и то, в котором не нужно было ничего на клавиатуре жать, насколько помню. Уже скачал новую инпут-систему, где все упрощено для нубов- а все равно, не помогло. В дебаггере при этом показывается, что инпут с клавиатуры регистрируется. В коде ошибок нет.
Возможно, дело в ошибке пикрил (кстати, что она означает?), но там речь о визуале, а не о коде. Конкретно на ошибки в коде юнити не ругается сейчас от слова совсем.
>>876008 А, да, забыл уточнить, для чего именно команды. Пытаюсь в базовое движение вперед-назад-лево-право. Игру делаю 2d, не платформер, а просто вид сверху.
>>876008 >чтоб игра стала реагировать на команды WASD if(Input.GetKey(Keycode.W)){ FunctionDvigat("W") } if(Input.GetKey(Keycode.A)){ FunctionDvigat("A") } if(Input.GetKey(Keycode.S)){ FunctionDvigat("S") } if(Input.GetKey(Keycode.D)){ FunctionDvigat("D") }
void FunctionDvigat(string WF) { if(WF=="W"){ Физика или ручное изменение трансформа} else if(WF=="A"){ Физика или ручное изменение трансформа} else if(WF=="S"){ Физика или ручное изменение трансформа} else if(WF=="D"){ Физика или ручное изменение трансформа} }
Самое примитивное и рабочее решение. Вообще есть миллион реализаций.
Если делать через новый импут то больше кода, но куда лучше. Качаешь 3дперсон контроллер, открываешь его и копируешь 2 скрипта, далее выбрасываешь что не надо, всё работает из коробки.
>>875984 >требуется для VRChat У меня полыхает зад. Чтобы сделать неткод для VRchat надо использовать ихний udonSharp, а в ихнем udonSharp нельзя использовать списки
А как без списков, если в шарпе массивы не ресайзбл
>>876034 Я хочу удалить элемент, и чтобы не осталось вместо него пустое место, а скукожилось. Постоянное копирование смущает, особенно с вот этим вот скукоживанием
Но я думаю, что я могу создать сразу очень большой массив. И вместо удаления перемещать элемент в конец массива. А поиск случайного элемента производить между первым индекстом (0) и первым пустым индексом.
Вообще странно, что в языке с такими серьезным дебаффом нет сразу встроенных функций, которые бы копировали массивы (хотя бы). Это вообще не затратно по ресурсам туда-сюда копировать массивы?
>>876035 Так не бывает. Гугли структуры данных. У тебя или массив с очень быстрым доступом, но долгим удалением. Или List с быстрым добавлением-удалением, но доступом помедленнее. Может есть гибридные структуры, хэшмапы там всякие. Вообще говоря если у тебя структура данных похожа на колоду карт, то тебе вообще не надо удалять рандомный вопрос, смекаешь? Ты можешь сначала отсортировать рандомно, а потом удалять только последний элемент, сокращая в какой то переменной размер на 1, не трогая сам массив.
>>876035 >Я хочу удалить элемент, и чтобы не осталось вместо него пустое место, а скукожилось. Постоянное копирование смущает, особенно с вот этим вот скукоживанием
Ручное скукоживание лучше автоматического, держу в курсе.
>>876036 >если у тебя структура данных похожа на колоду карт, то тебе вообще не надо удалять рандомный вопрос, смекаешь? Ты можешь сначала отсортировать рандомно, а потом удалять только последний элемент, сокращая в какой то переменной размер на 1, не трогая сам массив Спасибо, любопытная мысль. Попробую ее сейчас обдумать
>>876036 > У тебя или массив с очень быстрым доступом, но долгим удалением. Что за бред? Какое удаление нах? Нахуя вообще "удалять"? Долгое удаление, орунах, любое удаление это O(1) всегда.
Орунах, юнитидети, что за хуйню вы выдумываете?
>>876035 >Я хочу удалить элемент, и чтобы не осталось вместо него пустое место, а скукожилось. Классические sparse set. Погугли sparse set и делай свои удаелиня через них. Никто ничего не удаляет, удалениея вообще не существует, есть только запись, сброс индекса или ещё что такое. >Но я думаю, что я могу создать сразу очень большой массив. И вместо удаления перемещать элемент в конец массива. Неправильно, ты конец массива в твой элемент записываешь. Или сбрасываешь индекс. Или флаг удаляешь. Погугли просто как такое реализовать, прочитай пару книжек по программированию и структурам данных.
У меня встал... вопрос по юньке. Что будет более рационально и профитнее? Использовать дохуллион сцен с разными картами, между которыми будет перемещаться игрок. Или делать одну сцену в которой будут загружаться карты? И вообще плодить кучу сцен считается нормой?
>>876051 Какой, слот, поехавший? Слот нахуй. Че несёшь, шизоид?
Доступ к массивам производится по индексам, можешь начинать и заканчивать эти индексы где и когда угодно. У тебя это и будет "удалением".
Выделенную память под массив ты не трогаешь или трогаешь в редких случаях когда это действительно нужно. И даже тогда тебе не нужно ничего переупаковывать, это ебаный бред какой-то, ты можешь просто проставить ссылки.
>>876052 Посмотри только какой хуите ты научился. Слоты какие-то, перепаковка массивов. Сплошной бред. Прочитай книжку и перестань этой хуйней страдать, шиз.
>>876058 Используй одну сцену с картами. Будет тупо больше контроля. Рациональнее всего сделать это на ECS, чтобы миксовать твои карты как угодно и менять всё на лету.
>>876058 Юзай одну сцену как менеджер которая подгружает/выгружает карты, в ней же можешь хранить всякие данные по типу на какой карте какие объекты использованы и т.д. Скорее всего у тебя не ааа игра, поэтому можешь сразу прогрузить все карты и просто выключить, и включать по необходимости.
Когда только начинал изучать всю эту геймдев ебалу, смотрел на подобные советы и советчиков и понимал, что ничего не понимаю, но видно, что пацаны знающие. Теперь смотрю на вас хуесосов и только смех разбирает от ваших бредней. екс шизик так вообще откровенно серит просто по всей доске
>>876083 Нахуя ты делаешь это из раза в раз, шизик? Ты же буквально нихуя не понимаешь даже что такое ссылка. Зачем ты пытаешься высраться на те темы, в которых ты вообще нихуя не понимаешь, шизоид? Нахуя ты срешь этим бредом?
>>876089 >Называет список с совсем другим временем доступа массивом Ору. Это возвращение дефрагментатора стека? Он уже докачался до дефрагментации списков смотрю.
>>876094 > шизик не понимает что список это всегда набор массивов > не понимает что время доступа это временная нотация и для любых списков всегда O(1) > от натуги пытается найти своих протыков
>>876089 >Доступ к массивам производится по индексам к элементам массива, еблуша. >можешь начинать и заканчивать эти индексы постоянная величина >где и когда угодно не зависящая от времени и пространства.
> не понимаешь даже что такое ссылка. у нас тут походу ученый. Всем аккуратно!!! Он возможно даже про указатели в курсе.
>>876141 Потому что удон это лапша ебаная. Шизик не может в программирование, у него руки трясутся когда он пишет код в редакторе (я хз, это наверное психологическая травма, больного животного выебали задроты и теперь у него пролапс от кода выпадает) вот он и решил победить рациональность и писать только в лапше.
>>876144 >удон это лапша ебаная Ты путаешь UdonGraph и UdonSharp. Первое это нодовый редактор, а второе это надстройка обычного юнитивского c#, помечается вместо MonoBehaviour как UdonSharpBehaviour.
И чтобы у тебя горел зад еще больше, я напомню, что по UdonGraph миллион туториалов, где двигают ноды, а вот по UdonSharp, на котором я пытаюсь делать, практически нет
>>876141 >зачем делать мод к какой-то хуесосне, вместо нормальной игры? Это не мод, а мир для метаверса. Ты получаешь платформу, на которой уже есть аудитория и поддержка виар. И вместо того, чтобы заниматься промоушном, отладкой неткода, можно заниматься непосредственно деланием игр и творчеством
>>876178 > подсказку от IDE В подсказке в консольке юнити просто написано, что такой неймспейс чето там, нету его. Я работаю в vscode, но там подсказок нет никаких — наугад приходится все делать
Да что это за ебанутая документация, где у 90% функций нет примеров. Нет инфы какие она принимает значения, какие отдает. Хз как люди без чатгпт писали раньше код
Костяляч подскажи. по ошибке спросил в утонувшем. Продублирую тут
Можно ли имея GameObject получить его скрипт при этом без указания названия скрипта?
То есть: У меня есть геймобжект Enemy к которому приляпан EnemyScript и Enemy2 к которому приляпан Enemy2Script. В обеих скриптах есть переменная State. Enemy и Enemy2 собраны в GameObject{} Enemyes. Как можно сделать что бы цикл пробежал по массиву GameObject[]Enemyes и "дернул" State каждого из скриптов?
>>876262 >не читаешь руководство по языку Ну это да. Я быстро промогал гайд по интерфейсам, ты уверен то это то что надо? Тк мне нужно будет еще , так же пробегаясь циклом изменять переменную State в этих скриптах
>>876267 Конечно У тебя должно получиться минимум 3 файла, в них такое: 1. public enum EnemyState { ... }
2. public interface IEnemy { public EnemyState State{get;} public void SetState(EnemyState state); }
3. public class Enemy1 : MonoBehaviour, IEnemy { public EnemyState State {get; private set;} public void SetState(EnemyState state) { State = state; } }
Ну и дальше для других врагов по аналогии с Enemy1
Дальше делаешь GetComponent<IEnemy>() и делаешь с ним че хочешь
> Ну это да. Я быстро промогал гайд по интерфейсам Зря. Новичку не оьчзателньо прям глубоко шарп знать, но это супер база и без них никак
>>876323 На самом деле это круто, что чатгпт тебе помогает. Я так понял ты со старой версией 3,5 работаешь? 4я версия ещё умнее и сообразительнее. Хочу её потестить в качестве персонального учителя программирования для школьника.
>>876330 >Я так понял ты со старой версией 3,5 работаешь? 99% что со старой, потому что через одного из множества тг бота, которых рекламируют
>Хочу её потестить в качестве персонального учителя программирования для школьника. ну мне показалось, что язык всё равно немного надо знать, синтаксис запомнить и понимать сам принцип работы массивов, переменных итд.
Блять, решил добавить шейдеры в игру. Думаю, ну раз мир уже создан это не будет сложно - программировать больше не прийдется.
Это че за хуйня блять, у меня голова разрывается от дефолтного шейдера. Какой-то язык непонятный, типы переменных, которые не ебу что значат.
Узнал про ShaderLib, показалось проще - решил по гайду накидать по быстрому, обосрался, ничего не работает. Вроде как Universal PR нужно устанавливать дополнительно (тоже не ебу что это), где-то про Сюрикен пишут.
Я просто хотел быстро вкатится и добавить TV-помехи, блюр и туман на разные спрайты. Что мне делать? Учить ебучий шейдер либ, устанавливать юниверсал рп, учить стандартную хуиту на пикреле, учить всё вместе?
>>876336 Бро, у юнити существует 3 рендер пайплайна Built-in - встроенный, дефолтный Universal Render Pipeline - универсальный для всех платформ и лёгкий HIGH DEFINITION RENDER PIPELINE (HDRP) - тяжелый, для графона как в крузисе и для каждого из них куча нюансов. Хочешь что то для своей игры, гугли при этом это самое с припиской своего рендер пайплайна, например "unity gaussian blure URP"
>>876338 Почитал про пайплайны @ Все рекомендуют URP @ Устанавливаю через пакетный менеджер @ Всё просто @ Запускаю сцену @ 4 фпс @ Не могу завершить @ Краш юнити
Я понимаю, что тред немного мертвый, но хочу попросить вас посоветовать уроки конкретно по настройке персонажей. Да, я понимаю, что вопрос расплывчатый, но сам я занимаюсь 3D моделингом персонажей и меня интересует только раздел интеграции персонажа в игру и его настройке. Заранее благодарю.
>>876368 >3D моделингом персонажей и меня интересует только раздел интеграции персонажа в игру и его настройке.
У тебя есть подготовленная модель, которую ты сохраняешь в формате fbx. Потом ты импортируешь её в юнити. Настраиваешь материалы, риг. https://www.youtube.com/watch?v=0QA2O7juuWQ
>>876395 Я понимаю. Жопсам не хватает версатильности, чтобы быть настоящим маст хевом. Мы живём во время, когда 16 потоков это уже давно норма, а в иных случаях и 32. Тем временем жопсы везде, в любом гайде - это распараллелить какую то безумную математику, типа рассчитать (с какой то целью) корень и повторить 10 тысяч раз циклом в цикле. Если я не прав - ок, покажите, где жопсы что то могут кроме вот этой показушности
Делаю 2д игру, но при этом не то чтоб совсем слабую. Всё шло хорошо, а как дошло до сборки реальных уровней выяснилось что хотя в билде всё грузится нормально, в редакторе чтоб просто запустить игру после нажатия на плей приходится ждать 30-35 секунд, что заебывает пиздец.
Короче: как ускорить запуск игры железом. Как вообще сраный юнити устроен. Вот я сцену отркываю в редакторе, она надюсь хоть с SSD в RAM копируется. Ну думаю да, так хуле при нажатии на PLAY так долго ждать надо.
Короче всё тупо сводится к тому 1) Тут всё равно как-то завязан SSD и нужно покупать .м2 ёбу 2) Тут дело в герцовке ЦПУ или в количестве ядер и нужно покупать Threadripper 3) Тут дело в скорости оперативки.
Если что игра не то чтоб как-то сильно плохо написана, да и на средних сценах всё работает норм. Но вот если захотелось собрать ну довольно здоровый по контетну уровень то началось вот это всё. Ахуеть, юнити что для здоровых уровней не предназначен чтоле? Ну и ещё раз, в билде всё работает не мгновенно но с примемлимой загрузкой, ну как в любых других играх. А из редактора сука 30 секунд ждать. А заапусклаю я её по 3000 раз за сутки. Код напишу. Компильну. Запущу. И ждааать сука надо. Суууука. Короче ничего лучше чем купить железо помощнее не работает. Подскажите как именно в микродеталях работает запуск уровня из редкатора и какое железо на это больше всего влияет.
>>876590 >>876599 >>876601 Ок, но можно всё же ответить на поставленный вопрос сперва, а не только советовать "поиксать в гугле, открыть профайлер, просто сделать нормально".
Ок, посмотрю в профайлере, но вообще-то он показывает УЖЕ ЗАПУЩЕННУЮ игру, а вот момент от нажатия на плей до запуска он не записывает.
>>876599 ну открыл, ну даже если я и смогу какие-то подсистемы игры оптимизировать, ну будет 25 сек вместо 30. В билдер всё работает удовлетворительно. Так что игроку будет норм. Проблема что мне в редакторе уровень делать медленно стало, когда он здоровым стал. Короче какое железо поможет решить это. У меня кстати отрковенно слабый комп из 2015ого всё ещё.
>>876599 А вообще чего тут микрооптимизоровать. Ну 3 секунды лаг при старте из за всей хуйни. Неприятно, да, можно наверное до 2ой соптимизриовать. 1,5 сек кстати жрет редактор. Но дальше-то что.
Перед этими 3 секундами, которые происходят при УЖЕ ЗАПУЩЕННОЙ игре, надо ждать ещё 35 секунд пока всё это вообще нажмется. Ещё раз, у меня проблема между нажатием на плей и стартом игры, в профайлере это не отображдается.
Что собвенно происходит. Надеюсъ юнити не загруждает что-то с диска, например каждый блядский префаб или компилирует шойдеры.
>>876607 >>876608 Животное, не показав и нормально обьяснив что у тебя за игра тебе никак не помочь. Или давай присылай исходник посмотрю, хули ты тут высирашеься, тебе же написали, что говно наговнокодил и теперь всё виснет.
>>876611 >>876611 Пиздец у тебя низкий уровень ведения обсуждений.
Ещё раз: в какой мере какое железо влияет именно на запуск уже загруженной с жесткого диска сцены?
Насколько важна мультипоточность или важней другое?
Это первый вопрос на который я попросил ответа.
Если хочешь обсудить говнокод, то давай отдельно. Сперва насчет чисто технического вопроса запуска сцены и влияния железа на него. Или может по твоему процессор и ССД не влияет на скорость запуска?
>>876612 ТЫ тупая хуита с 10 iq, просто тупорылый гной, уёбище тупоголовое, никак не влияет вся хуйня, влияет как ты игру сделал, хуита безмозглая. Ты либо присылаешь исходник и я мокаю тебя в твой же кал, или нормально обьясняешь что где со скринами.
>>876613 >всерьез утверждает что i3 12100f 4c и i9 13900K одинаково быстро будут запускать сцену в юнити >большая часть поста это безпричинная ругань с минимальной полезной нагрузкой >>ему даже не приходит в голову что на свете могут быть исходники больше его хеллоу-ворда который конечно не тормозит, а здоровенные проекты на многие гигабайты, высылание исходников которых достаточно сложно и сборка их тоже не тривиальная задача ... ладно, забей, спасибо, лично от тебя мне помощи уже не надо, если кто-нибудь сможет добавить что-то полезное к этому обсуждению буду рад (всем буду рад, а тебе не буду, азазаззазазаззаа)
>>876619 На самом деле не прям ААА, но и не мелкую. Гигабайты это конечно контент, а не скрипты. Подозраваю именно контент при запуске на здоровом уровне и тормозит.
Короче вопрос остается прежнмим. Как конкретно загруждается сцена с момента нажатия на Плей до момента начала игры, когда запускается профайлер. Именно в этот промежуток у меня проходит 30-35 секунд.
Думаю решить эту проблему покупкой железа, просто надо сперва сообразить какого. Скорее всего поможет хороший проц. Но опять же не понятно, тут нужна тактовая частота или много тредов. А то вполно возможно юнити доп. треды не умеет использовать для такого.
Или вообще тут дело в SSD может юнити всё же что-то загруждает с диска, кажется это как-то можно мониторить кстати. Ну или плюс ddr5 в теории может быть быстрей для такого. Но я толком не знаю что влияет на время запуска сцены в юнити, вот и спрашиваю.
>>876621 Нет, спасибо. Но уже прочитал. Это именно та тема которая мне мешает, вот только... вроде у меня обе галки вообще были не-активны.
Врубил этот новый эксперементальный режим. Если врубить обе галки работает как сейчас 32 секунды в ссреднем. Если отрубить обе, то 27 секунд, что вообщем-то уже не плохо. Вот только почему-то игрок (который у меня в отдельной сцене) теперь то ли не подгружается, то ли сразу уничтожается игнорируя "Do Not Destroy On Load". Но неплохой момент.
Спасибо, хороший момент. Не знал про такое (наверное его раньше просто напросто и не было, раз Experimental стоит)
>>876607 > ну открыл, ну даже если я и смогу какие-то подсистемы игры оптимизировать, ну будет 25 сек вместо 30 Ты это щас как понял? У тебя на пике 2 секунды все занимает, значит проблема где-то еще(я прдеполагал что редактор у тебя на старте что-то делает долгое но это не так), никаких 25 секунд вместо 20 не будет.
1. Какая версия юнити? 2. Пустая сцена запускается быстро? 3. Есть зависимость между количеством кала на сцене и скоростью запуска?
>>876612 > Ещё раз: в какой мере какое железо влияет именно на запуск уже загруженной с жесткого диска сцены?
> Насколько важна мультипоточность или важней другое?
Железо не причем, если у тебя не ноут на атоме. В нормальных условиях сцена будет запускаться мгновенно, если комп совсем говнище то мгновенно умноженно на 4
>>876614 > >всерьез утверждает что i3 12100f 4c и i9 13900K одинаково быстро будут запускать сцену в юнити Конкретно в этом он абсолютно прав, у 12100 однопоток процентов на 35 медленне чем у 13900к. А многопоток тут роли не играет абсолютно.
По крайней мере, если я правильно понял, что у тебя долго идет именно нажатие на кнопку плей, а не компиляция скриптов.
ух ебать, там ещё код переписывать нужно под этот хитровыебанный отключаемый режим без “Scene / Domain Reload”. Ну ахуеть теперь, хотя 32 -> 27 это конечно не плохо. Тоесть 5 секунд он делает вот это всё.
>>876626 Я это понял увидев общую длину первого долгово фрейма 3 секунды. Ах, или может быть нужно суммировать весь "спайк" в начале? Тогда может и правда там 30сек наберётся.
1) 2019.4.18f обновлять здоровый проект с ассетами это то ещё счастье, в худшем случае ассет тупо не будет работать, в совсем худшем один ассет хочет старую версию, а другой новую 2) Да, пустая сцена быстро. 3) Да!!!! Прям прямая, чем больше объектов тем дольше этот лаг. Я как-то вроде скриптом считал количество объектов в сцене, ахуел сколько там в итоге их, уже не вспомню. Собвенно я поэтому всё же думаю что дело не в моем говнокоде (по крайней мере не только в нём), а тупо в том что там всяких мешей, спрайтов и прочего много. Мелкий кусок уровня стартует быстро, уже не помню, кстати тоже не прям мгновенно. Но на мелких уровнях на 1-7 условных кусков вообще не заметно было. А вот на здоровенном уровне финальном, с эффектиками, шейдерами, просто кучи объектов всё постепенно росло, пока не закончилось 32 секундами. Собвенно этот уровень готов, но иногда приходится его править. А просто так поправить в редакторе и сохранить не выйдет, так как в игре оно часто по другому выглядит. Приходит каждый ебучий раз ждать по 30 секунд чтоб проверить. Заебало пиздец, готов хоть RTX 4090 брать, если это поможет.
>>876620 > Или вообще тут дело в SSD может юнити всё же что-то загруждает с диска, кажется это как-то можно мониторить кстати Так у тебя юнити на ссд стоит? Или юнити на жестком диске а проект на ссд?
>>876628 Ну вот я и спрашиваю. Кстати всё хуже, у меня i5 4690k. Я тоже подозреваю что юнити не прямо уж умеет использовать 32 потока, это мало какие программы умеют даже средне. Собвенно это и есть мой вопрос, а то подозреваю что куплю ТХРЕАДРИППЕР и юнька будет на нём на первом ядре те же сраные 35 секунд выдавать и тогда мне бомбанёт уже знатно.
Да, ты совершенно правильно понял. Компиляция скриптов быстрая, не мгновенная, но засекать как-то не пытался. Конечно тоже бы приятно былоб побыстрей, но проблема не в ней. А именно в том что между нажатием на Play и реальным запуском сцены приходится ждать 30 секунд.
Я ещё в самой сцене держу только "стартувую точку" а игрока держу в другой и подгружаю её через SceneManager.LoadScene(PLAYER_SCENE_NAME, LoadSceneMode.Additive); Но опять же, может это и хуже чем префабом, но в маленьких уровнях с этим проблем нет. Так что думаю дело тупо в размере финального уровня.
>>876632 > Кстати всё хуже, у меня i5 4690k. Это вполне терпимый проц > Я тоже подозреваю что юнити не прямо уж умеет использовать 32 потока, это мало какие программы умеют даже средне Умеет, но не везде.
Короче, для чистоты эксперимента, запусти диспетчер задач и глянь, есть ли упор в 1 поток
>>876632 > Я ещё в самой сцене держу только "стартувую точку" а игрока держу в другой и подгружаю её через SceneManager.LoadScene(PLAYER_SCENE_NAME, LoadSceneMode.Additive); Но опять же, может это и хуже чем префабом Вряд ли
> Так что думаю дело тупо в размере финального уровня. Могу предположить 2 варианта - либо у тебя там настолько дохуя каких-то тяжелых скриптов в старте, что в эдиторе это все это занимает много времени(но это не должно быть во много раз дольше), либо юнити не держит в памяти все ассеты и переинициализирует их для редактора когда подгружает все сцены, тут хз, гугли.
Что делает юнити: 1. Загружает сцену со всеми ссылками с диска в память, если что-то из этого еще не было загружено 2. Запускает точку входа сцены - дергает все авейки 3. Далее, что из этого нужно попадает в видеопамять 4. Далее вызывается старт 5. Начинается PlayerLoop Выходит, диск и память важнее когда сцена еще не загружена, а далее все делают память и проц. В редакторе и в билде сцены хранятся по-разному и грузятся немного по-разному, соответственно, т.к. у тебя в билде все нормально, но сцена долго грузится в редакторе, то можно предположить что что-то не так с пунктом 1. В диагностировании этого тебе поможет профайлер, надо только переключить его с PlayMode на EditMode. Что-то подобное было у меня с пробилдером, когда он запекал кучу мешей, но у тебя может быть что-то другое. С вас косарь за консультацию
>>876645 >3. Далее, что из этого нужно попадает в видеопамять Это как вообще?
У меня на диске есть спрайт my_fucking_cat.png. Я его в сцену добавил. И открыл сцену в редакторе. Тоесть он вроде же в оперативке уже должен быть. Потом я нажал на Play. И он прям в VRAM из опееративы полетел. Как это работает вообще?
Небось примерно так. ГПУ получил комманду отрисовать my_fucking_cat.png. Хочет его отрисовать такой, а хуяк, его в VRAM и нету. И он такой "сперва загрузи, пидр, как я тебе отрисую то чего у меня нет".
Так примерно?
кооооосарь ;_; не то что особо дорого, но этож ДИВАНОН
>>876645 интересно, он показывает слева % это суммарно все 4 ядра. Просто больше 30 при запуске не скакало. но это может значить что одно (4ое судя по графику) ядро под конец по поолной загрузили. И оперативки почему-то впритык. Кстати при открытие сцены 1,5гб оперативки как не бывало.
>>876586 Отрубаешь все свои шейдеры ебаные и всё, гоняешь без шейдеров. Наверняка юнитикал шейдеры компилит или ещё какая-то калпиляция происходит. Посмотри в что там у тебя компилится при запуске в редакторе и отруби эту компиляцию и всякие шейдеры.
ЗАЛУПА ЕБАНАЯ Я ВСЕГОЛИШЬ ВЫДЕЛИЛ ПАРУ КНОПОК И ЭТА МРАЗЬ КРАШНУЛАСЬ ГАВНО СУКА
что самое обидно целый интерфейс который делал не сохранился, спасибо что скрипты блядь не откатились, движок чмошник, движок гной, тьфу блять, 40 минут коту под хвост
>>876973 Непременно слушаю. Не мешает, а наоборот, создает своеобразный колпак, под которым можно укрыться. Нередко и нужный ритм для кода задает. А вот рефакторинг, исправление багов и прочее - уже в тишине, тут требуется внимание
>>876973 Если я пишу код, значит я уже придумал решение и мне не нужно особо думать. Поэтому музыка не отвлекает. Но вот если нужно подумать над решением, тогда обычно не слушаю. Хотя когда как.
>>876973 Слушаю. Но отвлекает, особенно с русским текстом, иногда и с английским. Потому всё больше ухожу на инструментальные композиции без текста.
Олсо, у меня свой вопрос. Как боретесь с переусложнением архитектуры? Я вот начал писать новый проект, соответственно, нужен синглтон, управляющий игровым процессом. Потом класс персонажа, класс игрока, отдельная система управления. Контроллер игрока, контроллер камеры. Конечно же, нельзя чекать кнопки в контроллере камеры, нужно всё передавать сверху. Естecтвенно, движение персонажа нужно делать через стейт машину, потому нужно написать херову гору состояний и, конечно же, переключать состояния, а не просто двигать игрока из контроллера. Это же пиздец? А по-другому не могу.
>>876978 >Как боретесь с переусложнением архитектуры? Лично мой опыт что вывел для себя спустя пять лет геймдева, это компонентный тип. Для себя спустя года разработки игр вывел и понял как удобно и приятно именно мне, другим или кому-то может легко такое не подойти.
Суть проста - почти все компоненты игры стараюсь делать как бы отдельно от основного ядра скриптов, что их можно в любой момент выбросить или изменить и 90% игры не рассыпится после этого. Естественно не все компоненты получается реализовать совсем отдельно, и многие зависимости остаются. Так-же из минусов это - Увеличение скриптов прокладок между компонентами, дабы компоненты не общались напрямую используются разные второстепенные менеджеры. В идеале после оформления игры в стадию демо можно переделать архитектуры выбросив прокладки и установив нормальные прямые связи, но всегда это делать лень, т.к это еще сверху пару месяцев на допил и отловлю багов, а так-же усложнение зависимостей если вдруг что надо будет добавить или убрать.
Напомню что это личный опыт, так сказать имхо, и людям без опыта разработки или у который свой стиль совершенно точно не подойдёт.
>>876979 Ты пять лет пиздовал к тому, что юнити рекомендует из коробки? Но один хуй громозко, менеджеры эти поверх. Да и нет смысла выносить функционал в компоненты, потому что однотипные сущности по умолчанию будут иметь одинаковый набор компонентов.
ЛОЛ. Ебать point light увеличивает вершины оказывается. Решил оптимизоном заняться. Смотрю - на сцене 900К вершин, в небольшой сцене. Отключил почти все point lghts, их у меня где-то 40 штук было, я их долго и основательно раставлял, и стало показывать 47К вершин. Темно, но fps поднялся с 120 до 600. Что делать, запекать?
ЗЫ Вообще убрал все Point lights, включил ambient color - результат на скрине. Выше 70к не поднимается. Но выглядит всрато, плоско, что ожидаемо конечн. Думаю, на версии для андроида пусть такое освещение будет. Ща думаю, как сделать, чтобы тени появились хотя бы на нормалях, похоже point lights все же придется добавить, но не в таком количестве.
Пацаны, я правильно понял, что запекание и light пробы - это база, а реалтайм освещение только для специфичных случаев типа фонаря в руках, мерцающай лампа, фары проезжающей машины? Короче, realtime должно быть настолько мало, несколько это возможно. Особенно когда для мобилок делаешь
>>876989 Это даже не платина, это чистый алмаз. Используй отложенное освещение и забей хуй на вершины, если вкратце. Ты дальше ещё в шейдеры копать начнёшь, в нормали, а там тоже вершины удваиваются, ну их нахуй.
>>876988 Ну, без ооп можно неплохо пользоваться компонентами, но неудобно же, пиздец. Я всегда в фабрики сваливаюсь, когда дохожу до компонентов. И в итоге у меня есть объект, который создаётся фабрикой и на него навешиваются компоненты. Лишь бы даже палкой их не трогать
>>873990 (OP) А сколько нас тут мамкиных геймдизайнеров против работающих в геймдеве? Давайте посчитаемся. Я вот например 3 года опыта в мач3-парашах, до того ентерпрайз.
Сап. Нужно сделать бд для юнити. логин, пароль, кнопки войти и регистрация. вроде есть рабочий код и бд на phpmyadmin, но юнити не работает. что я упускаю? Что не так?
Когда создаёте новый проект - сносите нахуй все ненужные пакеты, которые туда пихают унитеки. Думал, заглючил юи тулкит, оказалось, просто заглючил коллаб, который видел изменения в uxml и каждый ёбаный раз дописывал в начало файла какие-то свои данные. А я охуевал с того, что появляются посторонние вещи на гуи.
>>877121 >сносите нахуй все ненужные пакеты Лол, так и надо делать, создаешь проект, далее заходишь в настройки проекта и настраиваешь, попутно в менеджере пакетов сносишь всё говно.
>>877138 У них лтс новая вышла, я бахнул апдейт и сразу посыпалось. Сначала проблема с инпутом, потом это. Или тут сказалось то, что версию проекта обновлять нельзя, я хуй знает, но гуй только добавил. >>877125 Бесит нахуй. Пустой проект создаёшь, а там уже насрано
>>877175 >Бесит нахуй. Пустой проект создаёшь, а там уже насрано Не забывай что юнька пытается ориентироваться на вкатунов, а в этом смысле всё правильно, всё есть из коробки, ничего тыкать не надо. А те кто шарят сами отключат что надо.
>>877175 >У них лтс новая вышла, я бахнул апдейт и сразу посыпалось. челище... никогда так не делай, жди хотя бы следующую версию или обновляйся, если это реально необходимо
>>877191 >то у неё ебанутое направление и летит не совсем не туда? А ты не пробовал прежде чем её активировать проверить её родительский трансформ и если используешь физику то обнулить до применения?
>>877182 Да проект новый, пустой считай, а тут обновление пришло. Похуй, в целом. Но осадочек остался.
Пиздос, это мне ещё надо писать состояние перехода остановку, иначе поведение получается неправильное. Я ебу, нахуй, надо что-то менять. Либо с шизой, либо с кодом.
>>873990 (OP) Напоминаю, чем больше менеджеров в вашей игре, тем более несёт гавном ваш код.
Напоминаю не использовать инвоки и корутины это значить, не создать ничего более менее вменяемого, когда используете таймеры.
Напоминаю использовать ивенты вместо менеджеров это крайне правильная стратегия.
Напоминаю, тянуть чистую парадигму ООП в свой проект и пытаться сделать игру в одной сцене это изначально провальная стратегия.
Напоминаю использовать публичные объекты в вашем проекте приведёт к точу, что например префабы созданные таким образом не смогут сами находить ссылки, так как их нужно вручную перетягивать, поэтому крайне разумно делать всё приватным , а потом в старте сначала находить объекты, а потом их использовать.
Напоминаю юнити всегда пытается вас наебать, поэтому старайтесь не усложнять код, тем самым опрощая дебаггинг проекта.
Вот это минимальный списочек который я выстрадал за несколько лет пердолинга и не создав ни одного публичного проекта.
>>877396 >>877397 Да не это нормально, что вы ничего не поняли, несколько лет когда я здесь пытался найти ответы меня постоянно наёбывали, чем то в духе не использовать корутины или использовать публичные переменные, а в редакторе вручную строить связи, благодаря таким советом я терял месяцы жизни, спасибо вам, ушлёпки. До сих пор учу C# до "умножения матриц".
>>877399 >несколько лет >До сих пор учу C# до "умножения матриц" Ты за несколько лет уже игру должен был сделать. А ты остался чмом неосилятором, при этом еще какие-то советы даешь, ну значит будь готов к тому что тебя нахуй будут слать с твоими бесполезными советами.
>>877431 Споки гавнош, никаких матриц в С# не существует, это я тебе авторитетно теперь заявляю. А то что я игру ещё не сделал, это вот благодаря подобным как ты советчикам, которые нихуя не знают, но лезут.грудь
>>877450 >а ты уёбище тупое делал игру мечты? Чмошь ты разделом промахнулся, отдел с б немного в другом месте.
Я именно тот самый не выживший который делюсь с вами даунами инфой о местах, где нужно было укреплять броню и не верить в сказки от тех кто по ошибке выжил, но вы продолжаете навешивать на меня ярлыки шизика и дауна с игрой мечты.
>>877392 Менеджеры норм. Корутины? Чтобы знать, нужны ли тебе корутины, нужно понимать, что это такое. По факту, корутина это проверка в апдейте, что прошло установленное тобой количество времени. И если да - запуск твоего кода. Не более. Можно вручную складывать дельтатаймы и сделать свои корутины. Но не нужно. >тянуть чистую парадигму ООП в свой проект и пытаться сделать игру в одной сцене это изначально провальная стратегия Абсолютно рабочая стратегия, сам делаю, брату посоветовал - он так делает, жив, цел, орёл, зависимости есть >префабы созданные таким образом не смогут сами находить ссылки Ты что, ебанутый? >потом в старте сначала находить объекты, а потом их использовать Тебе не нужно добавлять объект в приватную переменную, чтобы использовать, шиз. И даже больше, если у тебя префабы не находят ссылки - используй менеджер. Менеджер спавнит префаб и заполняет все нужные поля.
>>877452 >Можно вручную складывать дельтатаймы и сделать свои корутины. Но не нужно. Ой вей, и сколько у тебя так таймеров работает? Опреативку юзера не жалко? Более того вот этот колхозный метод авсольтно не работает, когда ДЕЙСТВИТЕЛЬНО нужно отсчитывать таймеры например при поведении АИ ботов.
>Абсолютно рабочая стратегия, сам делаю, Гвозди можно и штангелем забивать, тебе дали концепцию сцен, но нет хочу, как в настоящим ООП, с абстрактными классами и полиморфизмом ебаться.
>Ты что, ебанутый?
У меня есть префаб врага на сцене, через публичную переменную я указал, что объект преследования это игрок и всё отлично работает, пока не начитнаешь вызывать префаб автоматически, например враг это медведь который вылазиет из пещеры через определённое время, так вот когда этот враг появляется на сцене он вообще не видит игрока, потому что ты ему создавал ссылки вручную в редакторе, через публичный объект игрока. А нужно было сделать приватный объект игрока, задать поиск этого объекта по тегу или имени при старте сцену и добавление всех необходимых компонентов, только тогда префаб врага начинает работать и атаковать игрока.
>>877459 >когда ДЕЙСТВИТЕЛЬНО нужно отсчитывать таймеры У всех работает, просто ты рукожоп. >тебе дали концепцию сцен И я загружаю их в родительскую сцену, где хранятся все настройки и важные данные. Отлично работает. >У меня есть префаб врага на сцене, через публичную переменную я указал, что объект преследования это игрок А, так ты рукожоп. Враги должны спавниться менеджером. Или тебе придётся вручную расставлять их по уровню, забивать вручную все поля в скриптах и вообще, ебаться в гланды. Тупо. >через публичный объект игрока. Ты же понимаешь, что скрипту похуй, куда положить найденный гейм объект - в приватную переменную или публичную? >поиск этого объекта по тегу А вот тут мы докопались к тому, почему нельзя слушать шизов. Поиск по тегу это как раз та вещь, которую нельзя использовать вообще никогда. Примерно, как сендмесседж. Это очень хуёвая идея в плане производительности. Просто катастрофически хуёвая идея.
Че вы тут напридумывали, джуны зумерские, корутины это просто функции которые можно прерывать и продолжать, это еще в 60-х годах придумали и тогда это еще было обоссано, пиздец реально зумеры переоткрыли стейт машину.
смотрите, хуесосины выблядские, в этой игре миллиарды шкуратин и при этом используются самый уёбищные шкуратины (юнитевские), но при этом игра получилась успешной и нашла свою аудиторию...
так что никогда не слушайте итт пердов-неудачников, если игра сделала с душой и вся логика не висит в апдейте, то обязательно получите билет в лучшую жизнь
>>877547 Зачем? Я так сходу могу припомнить нужду в корутинах разве что для загрузочных экранов и экзотических случаев, когда нужно подождать один кадр для инициализации скелетных мешей после изменения.
>>877399 >несколько лет когда я здесь пытался найти ответы меня постоянно наёбывали Единственное что из твоих шизойдных высеров абсолютная правда Тред всегда был полным дерьмом и для новичков, и для продвинутых людей у которых проблемы посерьезнее и которые пытались обсуждать какой метод/алгоритм лучше использовать или как оптимизировать определенные вещи. Поэтому все давно сьебали в тематики с такими вопросами(где любят изобретать велосипеды, но хотя бы обсуждают). А тут остался начальный уровень и низкая прослойка середняка которая может разговаривать только об очевидных вещах по 100 раз
>>877392 > Напоминаю, чем больше менеджеров в вашей игре, тем более несёт гавном ваш код. Смотря какой менеджер. Если менеджер подразумевает, что мы делегируем ему управление набором объектов то норм, есть ситуации где пригодится.
> Напоминаю не использовать инвоки и корутины это значить, не создать ничего более менее вменяемого, когда используете таймеры. Кринж. Корутины кринж потому что есть юнитаск. Инвок это ваще к чему тут?
> Напоминаю использовать ивенты вместо менеджеров это крайне правильная стратегия. Кринж. Ивенты кринж, лучше взять обсерваблы. Ивентная архитектура не приспособлена для создания четкого порядка в каком все будет выполняться и ожидания когда что-то будет выполнено
> Напоминаю, тянуть чистую парадигму ООП в свой проект и пытаться сделать игру в одной сцене это изначально провальная стратегия. База
> Напоминаю использовать публичные объекты в вашем проекте приведёт к точу, что например префабы созданные таким образом не смогут сами находить ссылки, так как их нужно вручную перетягивать, поэтому крайне разумно делать всё приватным , а потом в старте сначала находить объекты, а потом их использовать. Кринж. И то и то имеет свои задачи
> Напоминаю юнити всегда пытается вас наебать, поэтому старайтесь не усложнять код, тем самым опрощая дебаггинг проекта. Юнити пытается наебать, но сложность кода тут не причем. Обычно наеб это когда что-то на стороне движка не работает как надо, а твой код пох как написан.
>>877710 >ь OnSriggerStay, но как я понимаю оно все время проверяет по апдейду Нет Плюс тебе ничего не мешает ебнуть обьект к которому прикрепил колайдер если не нашел игрока, если тебе проверка нужна только при старте игры Можешь выебнуться и сделать онтригерентер с расшыряющейся зоной(с нуля до размера которой тебе нужен) при старте Если сделаешь как сказал вот этот даун >>877711 то у тебя будет система ебаться всю сцену от этого
>>877710 Пишешь логику в OnTriggerEnter. Если объект дальше "ждет столкновения", оставляешь. Если проверка нужна только при старте, после проверки уничтожаешь/выключаешь объект.
Костылячик. еще вопрос. Как подружить между собой BoxCollider2D.size и Gizmos.DrawCube()?
Предположим я хочу что бы на весь размер комнаты в 2Д платформере был натянут триггер коллайдер и что бы зона этого триггер коллайдера закрашивалась в определенный цвет в Гизмос.
Проблема: любой повешанный на объект коллайдер принимает его форму и вне зависимости от размера объекта , если он ни больше и не меньше его ,будет иметь BoxCollider2D.size (1,1). И если его подсасывать в Gizmos.DrawCube() то Гизмо будет иметь мелкий размер.
>>877916 Долбоёб Риччителло зато то рекламное вирусное говно айрон соурс купил и назвал разработчиков идиотами... Руководство юнити, конечно, абсолютно неадекватное. Печально видеть пациентов дурки на руководящих должностях. Бедный движок, надеюсь переживёт этого хуесоса
>>877916 Дело в том, что сейчас игровая индустрия переживает упадок. Да, выручка в процентном соотношении падает на 4-5 процента в год, но остальная выручка перераспределяется и юнити сложно урвать свой кусок пирога. Крупные студии чаще всего пишут свои велосипеды, а индюшатина несколько просела после смерти гринлайта. Да, самая популярная игра в мире сделана на юнити. И это хорошо. Юнитекам бы стоило снова развенуться лицом к обычным игроделам и параллельно откусить кусочек корпоративного пирога. Иначе есть шанс закосплеить крайтек. >>877923 Ты чё, ебанутый? Очевидно же, что у него проблема из-за кривого блендера.
>>877967 В юнити тоже есть всё, что надо. Если чего то нет, то смотри гитхаб. Если и там нет, то ассетстор. Вот и выходит, что 99% необходимых технологий в юнити уже есть, достаточно пару раз кликнуть по ссылкам в интернете
>>877983 сколько человек его пилит? если ты один - тогда нинужно, потому что скоро появится движок от вкалтакте и что-то мне подсказывает, что они тоже будут делать, чтобы максимально походил на юнити
Эх, щас бы избавиться легко и без мучений от этой проблемы, когда у рядом расположенных кубов блестят края, как гирлянда. Аноны, молю, я все перепробовал, есть ли способ?
>>878073 По видео ничего не понятно, сделай скрины и обведи проблемные места. Если пованговать, то обычно это либо тени, либо сглаживание, или свет. Так-же есть кейсы когда в редакторе одно а в билде другое.
>>878078 Кому как удобнее, я вообще делаю по фасту текстуры, перекидываю модель в юньку и там на живую в бленде меняю текстуру чтоб сразу видеть как будет смотреться в игре + шейдинге юнити.
>>878081 В блендере моделирование и развёртка. Рисую только в пейнтере или дизайнере. В блендере гемора много. Там текстурирование больше для его же собственного рендеринга заточен, нежели для экспорта и использования где-нибудь ещё.
>>878082 Я не 3д артист, для меня юзать блендер уже в западлу, но приходится. А чтоб еще какие то тулзы для 3д моделирования юзать так это ваще, нах надо.
>>878114 Сможешь, я с 4гб свой проект редактировал, лагало пиздец, но вносить правки в сцены и код реально, правда если происходит утечка всё крашится к хуям (На компе даже утечку можно не всегда заметить до конца работы в нем).
>>878114 Не знаю насчёт ноута, но у меня на ПК было 8 ГБ и я спокойно работал в Unity 2018. Единственное, создание билда было долгим. Но вообще, 8 ГБ сейчас очень мало для комфортного геймдева.
Суть: 2д платформер. Делал на бэкграунд деревья с парралаксом. Решил добавить светлячков которые будут кружить меж деревьев. По причине того что шадоукастер ебет мозги(или я с ним не до конца разобрался) реализовал выключение светлячков при пролете за деревьями(и включение при вылете изза дерева)с помощью скрипта и не все деревья развесил коллайдеры.
Проблема: Во первых не нашел подходящий коллайдер которому можно было бы задать нужную форму и развесил везде ПолигонКоллайдеры. Хотел сделать три слоя деревьев по 10 штук в каждом Во вторых: когда поставил второй слой деревьев заметил что при движении персонажа ФПС падает до 1.5, как будто Сруизис в 2007ом запустил.
Вопросы: проблема в форме коллайдеров или просто в их большом количестве? Как ее решить?
>>878146 >проблема в форме коллайдеров или просто в их большом количестве? И то и другое. Полигонный коллайдер в принципе самый ресурсоемкий, так у тебя еще такое хай-поли. Попробуй очень грубый силуэт с минимум точек, или вообще несколько боксовых коллайдеров.
>>878153 Да там привыкать, по сути, не к чему, функционал бедный, поддержки css на самом деле нет, используется свой кастрированный вариант, нет фич гуя из ugui. Большой шаг назад, короче. И хуй поймёшь, почему это было сделано, у ugui был один серьёзный баг, который можно было как-то пофиксить и забыть.
>>878179 > И хуй поймёшь, почему это было сделано Для расширения редактора очень удобная штука. Раньше приходилось вручную все элементы прописывать. Это был жуткий гемор.
Стянул воду по гайдам. Вода пиздатая (как в Kingdom of two crowns). Но проблема в том что она идёт поверх только слоя Default и определенного порядка в слое а plane на который эта вода редерится не имеет настроек слоев.
Вопрос : ебусь ли я в глаза, если да то где эти настройки и есть ли они вообще?
Подскажите насколько трудно на юнити будет собирать jrpg? Похожую на sword/shield
Локации без опенворлда разделенные переходами, где будут допустимы элементарные взаимодействия: нажать кнопку, открыть дверь, войти в режим поиска в поле, менеджмент инвентаря и существ. Боевка аналогичная покемонам, но со своими типами и характеристиками.
>>878186 Вместо того, чтобы допилить югуй они делают абсолютно новый юи элементс. И не то, чтобы он был так уж удобен. Причём под капотом у элементов третий гуй, иммедиэт. Со стороны выглядит пиздец тупо, тысяча гуёв при том, что террейн энжином, например, годами никто не занимается, ецс заброшен и много других пакетов травой поросло. Лечат то, что не болит
>>878209 > ецс заброшен Сынидзе? В конце 2022 все пакеты вышли на версии 1.0 PRE. То есть пред-релизная версия. Они по сути создают новый Юнити поверх старого. Там и своя либа под сеть, своя либо под две разных физики, своя либа под работу с графикой, со звуком, хуй знает с чем ещё. Тот же UI toolkit он же тоже под ECS заточен по сути, потому что старый UI никак не используешь.
>>878212 >новый Юнити поверх старого Даже не близко. По факту это кривая пристройка из говна и палок сбоку от старой системы. >своя либа под сеть Ещё одна кривая заброшенная хуйня. >UI toolkit он же тоже под ECS заточен по сути Вообще-то, нихуя. У тулкита под капотом самый старый гуй юнити, иммедиэт. Который с ецс не связан от слова "никак", там ни одной точки соприкосновения нет. А вот, например, "старый" меканим, под ецс заточен - у него дотс типы под капотом. Только он с ецс один хуй не работает. Как там анимации поживают на ецс, кстати? Всё ещё никак? >>878213 Связи не видишь? А её и нет.
>>878205 Рапортую, пока не переустановил sdk, редактор и плагины, не топнул ножкой и позвонил в колокольчик нихуя не менялось, как только я это сделал всё заработало, я ебал
Допустим, у меня в игре есть монитор, который должен мигать разными цветами. Или лампочка, которая то становится жёлтой, то черной. В Блендере я могу без проблем сделать анимацию материала, чтобы он нужным образом менял цвета, но анимации материалов не экспортируются. Как такое сделать в Юнити? Импортировать объект с базовой текстурой, а потом вручную скриптами переключать материал? А если мне понадобится плавное изменение цвета?
>>878270 Добро пожаловать в мир Шэйдеров. Присаживайся, их писать дело не быстрое. В начале попробуй сделать скриптом или аниматором, если не выйдет, придётся долго дрочить шэйды.
>>878270 Короче смотри, есть трюк, старше тебя. Берёшь все свои цвета, картинки и прочую хероту, сохраняешь в картинку. По ширине - твой монитор, по длине монитор перемножаем на количество картинок. Если анимации - то заливаешь их в текстуру покадрово. А потом тупо тянешь ювишки. Профит.
Есть 2D противник анимированный скелеткой. Несколько противников разбросны по уровню и работают вроде в целом норм.
Но , почему то некоторые их них , при переходе в анимацию ходьбы принимают горизональное положение и косплеят Лю Кенга.
Я понимаю что вопрос из разряда "машина не заводится. Чому так?" но возможно аноны хотя бы подскажут в какую сторон искать причину. Врят ли это глюк с анимацией тк иначе все бы по стенам ходили и "ХАДУКЕН" кричали
>>878542 Уточню. Все остальные анимации у лю кенгов нормальные , то есть атакуют они как нужно, но при ходьбе опять возвращаются в горизонтальное положение
Проверить переменную в другом скрипте в плане производительности это не сильно хуже, чем просто проверить переменную в самом себе? Можно ли проверять переменную в другом скрипте каждый кадр, не плохая ли это идея?
>>878601 Все зависит от того, как ты ее получаешь. Если каждый кадр ищешь этот компонент, да еще перед этим его объект, то хуево, если один раз сохраняешь ссылку на него, то похуй.
>>878618 Это экономия на спичках, в реальности ты хуй когда увидишь разницу. >>878616 Насколько я помню, юнити умеет в кеширование поиска компонента. На счёт объекта не уверен
>>878618 Точно выигрыш в производительности будет, если объявлять переменную типа значения локально в рамках блока кода. Тогда она создается в стеке. Для ссылочного типа - вряд ли есть смысл. Еще, наверное, не имеет смысл кешировать поля структур. Но в любом случае, заниматься подобным стоит только если есть реальная потребность в оптимизации.
Хочу делать карточную игру. Карты, кнопки лучше делать в виде спрайтов или размещать на кэнвесе? По-моему, с ЮИ не так удобно работать. Например, вводить координаты через РектТрансформ.
Хочу сделать портал. Как можно сделать что бы в окно портала визуализировался слой спрайта(на него будет прикручен параллакс)и что бы этот слой спрайта был виден только в окне портала остальная же часть этого спрайта
Как лучше всего понять, что между двумя предметами преграда?
Я бросаю рейкастАлл. И как дальше определять. Лейеры и теги хочу использовать для других целей. Остается повесить компонент. Но тогда придется в апдейте помещать GetComponent<>, что не желательно. Как же тогда разумно поступить?
>>878904 >что между двумя предметами преграда Да легко. Кидаешь луч от одного предмета (А) к другому (Б). Далее проверка: если луч столкнулся с предметом Б - то преград нет, если нет, значит, луч столкнулся с чем-то другим. То есть, проверка будет типа RaycastHit raycastHit; if (Physics.Raycast(transformA.position, transformB.position - transformA.position, out raycastHit)) { if (raycastHit.collider.transform != transformB) { Debug.Log("Какая-то залупа между предметами ") } }
>>878904 >что не желательно Ты можешь чекать по тегу, что ещё хуже, потому что сравнение тегов это операция над строками. А правильный совет тебе уже дали.
Во время компиляции все свитчи с 999 вариантов превращаются в ифы, все сравнения или поиск по строкам в хэши аналогичные двоичному коду. На производительность это никак уже давно не влияет, компилятор всё упрощает.
>>878935 Нет, это же жрёт память. А интернированные строки нельзя выбросить из памяти, они там навсегда. С файндом всё очень интересно в юнити. Поиск объекта по имени будет очень быстрым, поиск по полному пути в иерархи уже медленнее. А Object.FindObjectOfType ещё медленнее. Сендмесседж и теги это злобное зло, короче.
>>878944 >А интернированные строки нельзя выбросить из памяти, они там навсегда. Я использую CompareTag. Про него написано. >compareTag does not result in a heap allocation. Это что-то меняет? >>878913 >(raycastHit.collider.transform != transformB Иногда может попасться предмет, через который можно стрелять. (Он низкий или это стекло).
>>878958 >Иногда может попасться предмет, через который можно стрелять. (Он низкий или это стекло). Мог бы и сам погуглить. В годоте для такого можно добавлять объекты в исключения. Но тут такого нет, зато есть RaycastAll где тебе вернут все хиты и дальше сам перебирай как хочешь. Если бы этого не было, я бы делал так, например выделить один слой чисто под такое, потом делать рейкаст, если объект не устраивает, временно скинуть его на этот игнорируемый слой, повторить рейкаст.
>>878967 >и дальше сам перебирай как хочешь Так в этом и вопрос, как лучше перебирать. Пожалуй, нужно учиться работать с профайлером, чтобы видеть влияние поиска по тегу и GetComponent<> (ведь по другому, кроме слоев, никак же не проверить)? Хотя, пожалуй, там влияние мизерное, просто здесь уже отписались, что теги не использовать. А в другом месте, как уже писал, тоже слышал про GetComponent<> в апдейт.
>>878967 > Но тут такого нет Ты чё, ебанутый, чё ты тут делаешь? >LayerMaskA Layer mask that is used to selectively ignore Colliders when casting a ray.
// Bit shift the index of the layer (8) to get a bit mask int layerMask = 1 << 8;
// This would cast rays only against colliders in layer 8. // But instead we want to collide against everything except layer 8. The ~ operator does this, it inverts a bitmask. layerMask = ~layerMask;
RaycastHit hit; // Does the ray intersect any objects excluding the player layer if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask)) { Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow); Debug.Log("Did Hit"); }
И еще такой вопрос про грамотный код. У меня три скрипта, которые отвечают за: 1) Анимацию. (Я вручную меняю текстуры, там билборды по типу классического Дума) 2) Стрельбу. 3) Ходьбу. Так вот, когда противник стреляет, нужно, чтобы он перестал идти и проиграла анимация. В итоге у меня такая последовательность: Скрипт стрельбы запускает корутин с аниматора, который в свою очередь запускает методы остановки и продолжения движения в третьем скрипте.
Что-то это мне не нравится. Если код будет разрастаться, так получатся жуткие спагети. Как подобное лучше организовывать?
>>878970 >Да, вроде, мусора поменьше. Так я и не использовал изначально FindObjectWithTag, а роботал через hit.collider.gameobject.CompareTag();
Котаны а зачем вы считаете те байты мусора? Это же копейки, даже с учетом что сессия игры будет пару часов, смысл так изгаляться? Сколько там набежит, ну пара сотен лишняя мб памяти, это же вообще не о чем.
>>878977 >Котаны а зачем вы считаете те байты мусора?
Лично это делаю, потому что начитался и наслушался людей, которые это сильно ругали. А так вроде даже в самом ужасном коде, который я писал для три в ряд, где был жутко перегруженный апдейт тегами и гет компонентами, я не замечал никаких лагов. А вот кривой А* в апдейте давал дичайшую нагрузку.
Анонсы, посоветуйте готовую систему сигналов/ивентов/комманд. Когда ты можешь послать сигнал определённого типа, а потом его кто-нибудь поймает и выполнит некое действие. Обычные ивенты C# не подходят.
>>879009 >уехать >GameDispatcher.SendEvent(EventType.LOAD_GAME); ? Нет. У тебя есть ссылка на менеджер по типу: MyManager. В нем есть нужная тебе функция, допустим тебе надо принимать строки она такого вида: MySignal(string SignalInfo). И всё что тебе остается из любого объекта это вызвать в нужный момент MyManager.MySignal(Тут описание сигнала), всё. Естественно можешь модернезировать или реализовать как душе угодно, но смысл понятнет думаю.
>>878987 >И смысл слои не юзать? Слои не всегда применимы. Например, если нужно обрабатывать коллизии объектов индивидуально в зависимости от каких-то их внутренних параметров, типа "высоты" в игре с видом сверху.
Сап, уже очень долгое время в голове летает мысля о геймдеве До этого пытался вкатываться в бэкенд, даже делал какие-то успехи, но все равно чувствовал что это не мое и пробовал время от времени что-то делать в юнити. Но всегда брал СЛИШКОМ высокую планку из-за чего расстраивался и все бросал В-общем вопрос - а как вообще правильно начать чтобы не наступить на те же грабли? Какой жанр самый простой для начинания и пр.
>>879022 Ну да, у тебя в зависимости от высоты будет два типа препятствий - которые не мешают стрельбе и которые мешают. Совсем-совсем нельзя сделать это слоями.
>>879028 Мой тоже не тянет, 64 бита, 32 гб оперативы, 6 cores, 12gb vram.
>>879072 А нахуя тебе такую шизофазию городить? С видом сверху персонаж даже приседать не может. Так что у тебя нет никакой произвольной высоты, есть два состояния - перекрывает обзор и не перекрывает. Всё. А высоту оставь только для графического отображения.
>>879073 Хз, шизофазия тут у тебя, наверно ты что-то не то представляешь. Я дал пример, в каких случаев слоев коллизий может быть недостаточно - симуляция 3d физики в 2d. Я такой прототип делал на другом движке, а в Юити для этого проще использовать трехмерные коллайдеры и ригидбоди.
Короче, я изменял fps с 4 до 500 - Time.fixedDeltaTime оставался неизменным.
Я правильно понял, что Time.fixedDeltaTime надо использовать когда ты планируешь изменять это значение во время игры, в целях производительности например, уменьшать, если на данный момент точность физики не критична. Если же я не собираюсь изменять, то тогда не надо добавлять в fixedUpdate deltaTime-ы
>>879225 Там же написано что не может найти файл. Вариант 1 - Переустановить хаб. Вариант 2 - Переустановить эдитор. Вариант 3 - 1+2. Вариант 4 - Проверить доступность места записи.
>>879058 > MessagePipe А как быть со случаем, когда мне нужно отслеживать сразу десяток событий? Хочу сделать класс, который будет управлять глобальный состоянием игры. Переходить из одной сцены в другую в зависимости от тех или иных событий.
Если использовать MessagePipe, то придётся передать в конструктор более 10 аргументов. Хотя, с другой стороны, можно тогда попытаться разбить этот класс на несколько мелких.
>>879230 Не придется. Там же просто по типу события подписываешься.
> Хочу сделать класс, который будет управлять глобальный состоянием игры. Переходить из одной сцены в другую в зависимости от тех или иных событий. Плохо. Нету порядка обработки события разными обработчиками, нету ожидания если оно нужно какому-то обработчику.
Реализовал наконец физическую переноску вещей. Я преодолел кучу трудностей, типа внезапного прохождения через стены, дрожания при столкновении с поверхностями, улетания в стратосферу вместе с обеъектом и т.п
>>879265 Так я и улетал в стратосферу. Я добавил проверку, что если игрок соприкасается с объектом, то его нельзя поднимать. Так это что, известная проблема? Можешь предложишь лучший вариант?
>>879268 >если игрок соприкасается с объектом, то его нельзя поднимать. Наступи на блок и спамь поочередно "прыжок" и "поднять" >известная проблема? Вроде того, но это скорее логическая проблема. Кучей проверок можно побороть. А можно так и оставить.
>>879274 Спасибо, с прыжками и правда можно улететь. Вообще может ачивку добавить лулзов ради, если игрок улетел за пределы комнаты с кубом. Или угандошить его в воздухе с фразой "только господу суждено быть вездесущим" Завтра скачаю портал, халву, может амнезию ещё, посмотрю, какое там поведение
>>879287 Бред тупого школьника. Юзаю всегда последнию версию, обновляя каждый раз когда появляется обнова, за 5 лет проблем не было, а фантазии шизиков сидящих на старом не фикшеном гумне пусть оставят при себе. Там буквально если чекать чейнджлог видно сколько всего фиксится, и не пользоваться этим просто тупо.
>>879289 Долбоеб, че ты там обновляешь, 2022 всего месяц назад неюзабельной была, в 2021 лтс был сломан нахуй инспектор для списков на протяжении месяца, а уж про баги специфичные для разных платформ я промолчу - в 2021 ЛТС НАХ совсем недавно только поправили краши в билдах.
У меня неоднократно отрыгивал проект полностью при обновлении версии юнити. Приходилось тащить из бэкапа не только папку ассетс, но и лайбриари, пакаджес и все остальные. Потому вывел золотое правило - на какой версии юнити проект начал, на той и заканчивай, а не то, блядь, пиздец.
>>879290 Ты тупорылая фантазёрная хуита, всё всегда было окей, в душе не ебу что ты там нахуевертил в своём билде, но у меня всегда всё было окей. И напоминаю, сидеть на старой версии это надо быть ебанатом. Либо безигорным который не выпускает билды и ему в принципе пох на фиксы т.к его игру никогда не увидят.
>>879293 Говно годотное троллерское, ты думаешь если ньюфаги скачают ласт версию юнити и охуеют с багов то сразу твой ссаный годот скачают? Да как бы не так.
Давно известно, что юнити можно юзать только лтс версию, сейчас это 2021. Если не лтс, то ластовая цифра должна быть хотя бы больше 8, например 2022.8, но в прод я бы такое не рекомендовал
>>873990 (OP) Сам юнитач. Спрашиваю с периодичностью в месяц. Как пофиксить баг когда при переходе из сцены в сцену и меня слетает освещение? В дефолтном редакторе со стандартными шейдерами проблем нет, но так как я юзаю самописные шейдеры, происходит эта Байда. Буду признателен за помощь.
>>879525 Просто он масквич с 300к зарплатой, вот и кекает. Алсо, Нубик это какая-то браузерная дрочильня для школьников, я очень сомневаюсь что у автора этой игры есть больше денег чтобы заплатить.
Анон тот который работал с esc в интепрайз, посоветуй esc курс или видосик на ютюбе по esc для unity. Меняю работу, нужно хотя бы базу esc чтобы проходить и собесы на проекты с esc.
>>879623 Давно известно, что gd крайне токсичный раздел, который отбивает желание делать игры. Так что прощай, никогда не возвращайся. И до завтра, анончик.
>>879647 >>879695 Вы просто им не правильно пользуетесь. Gd это гига-ораловка, сюда надо изначально заходить с рассчетом на позитив и все воспринимать с долей иронии.
В данный момент я работаю над своей первой игрой в Unity. Пытаюсь сделать игру в стиле Rhythm Heaven. Уже реализовал контроллер ритма, объект, который будет отслеживать, что, когда и как долго нужно нажимать.
Сейчас я работаю над визуальной частью. В первом уровне будут два кубика: красный будет двигаться сам по ритму, показывая пример синему кубу, которым будет управлять игрок.
На данный момент мне не удается определить наилучший способ сделать так, чтобы красный куб прыгал таким образом, чтобы он вращался и приземлялся ровно на одну из своих сторон.
До сих пор я пытался сделать это программным путем, но я не очень силен в математике, поэтому не знаю, как точно рассчитать вращение и дистанцию, на которую куб должен прыгнуть. Я пробовал и другие подходы, но они не выглядят достаточно хорошо.
Теперь я думаю, что, возможно, можно использовать некий вид анимации, основанной на key frames, и позволить компьютерной технологии магическим образом интерполировать кадры между ними.
Что думаете? Мб можете посоветовать что-то другое? Что мне нужно гуглить чтобы сделать то, что я хочу?
>>879880 > 1) Ну и что? Ну круто разве нет? 2022 наконец-то лтс будкт, и ецс наконец-то выхлдит после стольуих лет разработки. > 2) На пикче разница между жиректом 11 и 12, в чем соль пикчи? Разница в производительности
>>879888 Бляяяяя. Я конечно ответ тебе в троллерском стиле написал, но я написал все по факту и думал ты сам поймешь что хуйню спрашиваешь, на которую ответ в вопросе лежит.
Давай я напишу ровно то же самое, просто в другом виде, и с небольшими пояснениями.
1. Ецс - это охуенная вещь, которая разрабатывалась 5 лет, много раз менялось ее апи. Зачем оно надо - вперед в гугл. Как тебе кажется впринципе релиз какой-то йобы, которую 5 лет мучались-делали - это хуйня, или сам факт ее релиза это уже круто? Повторюсь, 5 лет делали.
Дальше, про версию 2022 лтс - обычно лтс выходит в марте где-то, а эту так долго мариновали и не говорили релиз дату, и вот наконец релиз дата есть. Вполне себе событие, не? Раз в год бывает, а тут еще и задержались.
2. Прирост производительности в 30% которого достигли на дроуколлах в директх12 - это супер охуенно, потому что дроу коллы это почти всегда узкое место.
На всякий случай, директх12 и ецс это разные вещи и они не связаны.
Вопрос к знатокам mirror. Как нынче разрабатывают клиент-сервер игры на нём? Один из очевидных способов - делать симлинки и запускать несколько инстансов одного проекта чтобы один был сервером, а остальные клиентами.
Есть какие то более удобные альтернативы? С меня как обычно.
>>879900 Тупорылая ты скотина Я знаю что такое ЕЦС Я знаю что такое директ 12 и про его дроуколлы
Я спросил конкретный вопрос. Почему ты такое безмозглое животное, что не можешь понять один единственный вопрос, который я задал уже три раза и сейчас задам в четвёртый раз: Почему наличие директа 12 преподносится как фича?
Мне плевать на твои там домыслы про ецс, про охуенные истории про пять лет, про ЛТС, про всё. я спросил про директ 12. Почему Наличие директа 12 преподносится как фича????
Вот что я спросил.
Хотя я уже понял. Видимо у ЛТСодебилов реально не было директа 12 всё это время.
>>879938 > Почему наличие директа 12 преподносится как фича? ДОЛБОЕБИЩЕ ХВАТИТ ТРОЛЛИТЬ >>879900 > Прирост производительности в 30% которого достигли на дроуколлах в директх12 - это супер охуенно, потому что дроу коллы это почти всегда узкое место.
> На самом деле он хуйня ебаная Не знаю хуйня он или нет, но вот информации о построении архитектуры игры на основе ДИ очень мало, к сожалению. Есть только какие-то совсем базовые вещи. Они вроде как работали в больших мобильных студиях, а значит какой-никакой опыт у них есть, а у меня его нет.
>>879957 Ну если у тебя совсем нет опыта с ди то да, посмотри.
Я просто к тому, что этих к-синдикатов так прям нахваливают, что вот вообще мощнейший курс сразу мидлом станешь! А по факту он настолько слабый оказался, что я аж охуел. Но повторюсь, как отправная точка - вполне пойдет, их архитектура - рабочая.
ку гайс, помогите мне новокеку в гд есть нпс, надо сделать так, чтобы при подходе к нему начинался выводиться текст на экран и персонаж не мог двигаться, при нажатии на любую кнопку текст меняется. После 5 реплик текст пропадал и перс мог двигаться.
>>880000 >ку гайс, помогите мне новокеку в гд Ку чел. Не вопрос.
>есть нпс Игра 2д, 3д?
>надо сделать так, чтобы при подходе к нему начинался выводиться текст на экран Если автоматическое срабатывание то самое простое через эвент триггер, или рэйкаст срабатывает и вызывается функция в менеджере диалогов.
>и персонаж не мог двигаться Во время вызова функции диалога, так-же вызывается функция заморозки персонажа, которая передает ему что нельзя двигаться и блокирует любые импуты от игрока.
>при нажатии на любую кнопку текст меняется В скрипте диалога в апдейте ждёшь ожидания нажатия любой клавиши, как произошло далее идёшь по диалогу.
>После 5 реплик текст пропадал и перс мог двигаться. Как происходит окончание диалога закругляемся, всё выключаем и посылаем персонажу сигнал что всё, можно двигаться.
>>879965 Посмотрел их курс. Оказалось там совсем поверхностный взгляд на построение архитектуры. А я ожидал совсем другого. Мда.
А не знаешь, есть какие-нибудь статьи или видео в которых показывается, как можно построить архитектуру игры с использованием DI, состояний и прочего? Как это делают в больших студиях обычно.
В игре есть UI( который меняется, в зависимости от того, что выбрано в самой сцене). Проблема в том, что когда я кликаю на ui, ui тоже меняет + походу рейкастит через ui тоже.
Как мне сделать так, чтобы логика нажатия в области ui (ui элементов) отличалась от логики нажатия на самой сцене(выбор объектов и тп)
>>880182 Навожу на ui объект. Нашел причину проблемы. Кроме event system должен быть компонент с input system. В случае new input (как у меня), нужно повесть input system ui.
Добрый вечер. Очень давно хотел попробовать себя в создании игр. Годов уже не мало как говорится, ну лучше поздно чем никогда. Взял себе курсы SkillFactory знаю, дебил, но так как я в целом без инициативен, (по крайней мере в прошлом) дабы таким способом себя мотивировать. И в целом очень нравится, но засады с программированием, так как я начал разбирать блендер и в целом движок, эта часть мне очень нравится, но С# это боль. По своей сути я гуманитарий, и понимаю, что это займёт не мало времени, но не хочу бросать начатое дело. собственно вопросы. !. Как можно облегчить себе опыт усвоения?( Помимо занятий, начал читать книжки из шапки и просто статьи которые нахожу, и которые могу понять) 2. Как по-хорошему набирать опыт и портфолио?(просто повторять написание за кем-то, пока не начну понимать и уже после этого, смогу потихоньку писать что-то своё?)
>>880291 Ну, сразу скажу - универсального пути нет, и в этом во многом и сложность. Еще и у всех свое мнение по поводу того что надо уметь, что хорошо, а что плохо. Но все возможно, не бойся если где-то в тупик зайдешь.
> И в целом очень нравится, но засады с программированием, так как я начал разбирать блендер и в целом движок, эта часть мне очень нравится, но С# это боль. По своей сути я гуманитарий, и понимаю, что это займёт не мало времени, но не хочу бросать начатое дело. А тебе в целом что конкретно нравится во всем этом процессе? Я так понимаю тебе нравится именно на сцене что-то собирать, модельки делать и добавлять, освещение настраивать и т.д., а само программирование не особо? Или программирование еще совсем не распробовал, чтобы понять нравится оно тебе или нет?
И какая у тебя цель - ты именно хочешь для себя что-то делать или в идеале работать на юнити?
Если ты хочешь подтянуть программирование - советую открыть метанит https://metanit.com/sharp/tutorial/ и изучить там главы 2, 3, 4. Прям очень хорошо изучить, переписывай оттуда примеры и развлекайся с ними - меняй что-то, если появляется вопрос "а что если я сделаю так..." - то сразу иди и делай и смотри что получится. Чем больше у тебя будет вопросов, и чем больше тв будешь эксперементировать - тем лучше. Причем чтобы было проще лучше просто в вижуал студии создай отдельный проект, чтобы без юнити все это тестить. К юнити можешь переходить после главы 3.
Когда будешь уверенно себя в них чувствовать можешь аналогично с главами 5, 6, 7, 8, 10, 11, но в них если местами что-то непонятно, например про ковариантность и контравариантность - просто забей, не сиди над этим весь день, и иди дальше.
>>880291 Советую не слушать всяких додиков. Единственный и верный путь познать юнити, и что-то на нём сделать это именно что ДЕЛАТЬ, а не читать всякие душные книжки. Еще весьма просто и полезно по видео-урокам с ютуба делать, повторяешь и сразу закрепляется на практике. Если слышишь что кто-то пишет иди читай кинжки шли нахуй, эти люди хотят чтобы у тебя отпала любая мотивация что-то делать и ты спустя месяц чтения духоты забил на это дело.
На ютубе есть куча серии по созданию игр разных жанров. Всё что тебе надо это в начале придумать в голове какую игру ты бы хотел сделать, но в весьма упрощённом виде, после первых пары опытов реальной разработке ты будешь знать и понимать что да как.
>>880312 Анон конкретно про программирование спрашивает. Все эти туториалы по Юнити учат работе с Юнити, а понять принципы программирования по ним совершенно невозможно. Максимум, заучить определенные снипеты.
Сап. Пособетуй для быстрого вката в 3д чего нить. Гитхаб примеры, это понятно. Остальное? Книженции по си шарп? А моделинг? Хочу начать наворачивать ибо тонны времени появились с больничным и есть что можно сделать.
Там это, открыли бесплатный доступ к Фотон Квантуму для всех. На нём можно создавать сетевые игры без написания сетевого кода. Просто пишешь симуляцию на ECS и она сама синхронизируется между клиентами.
Спасибо за советы аноны. Ко всему прислушаюсь. >>880306 Честно хочу поменять сферу деятельности и профессию. Понимаю что этот процесс трудный и энергозатратный, но я по крайней мере, не витаю в облаках, что даже после окончания курсов залечу в 300к/сек. Сейчас ищу стажировки, чтобы хоть чуть-чуть понюхать индустрию и понимать, что делается, да как. Но так как знаний ещё очень мало, не думаю, что выгорит в ближайшее время. Так как сейчас сейчас таких новоявленных пруд пруди. Но даже если ничего не склеится, по крайней мере, буду для себя что-то делать и узнавать.
По поводу совета>>880312 Я и сам понял, на своей шкуре, что надо делать-делать-делать и что-то получится. Но как отметил предыдущий анон, мне бы понять именно суть программирования. Так как в том же офф курсе Юнити по программированию и работе , они сразу говорят, что надо писать и как. По крайней мере, где я сейчас нахожусь.
>>880402 Это два совершенно разных подхода к написанию игры. Может для тебя проще миррор будет, не знаю. Но на квантуме можно сделать сложную игру с физикой и ИИ, без написания выделенного сервера.
>>880404 > Будут требовать деньги Онлайн придётся оплачивать, это да. Но если ты не планируешь зарабатывать на своей игре, то технология не для тебя.
>>880429 >надо делать-делать-делать и что-то получится. Не так. Надо делать в удовольствие, получая кайф от процесса. Если тебе это не интересно или ты ищешь дополнительную мотивацию, лучше как можно скорее бежать от геймдева, это совершенна не та сфера где можно будет терпеть не желание. Юнити тем и прекрасна что тебе не надо дрочить сишарп. Представляешь примитивную игру в голове. Открываешь похожие видео на ютубе, делая по аналогии пытаешься понять почему так и так, иногда гуглишь простые вопросы и документацию по функциям, всё.
Пожалуй единственное что обязательно это минимальный уровень понимания английского, потому что 99% инфы на нём что в роликах, что на форумах, ну и умение сформулировать вопрос на нем же в гугол.
>>880435 Не, мне нравится. Я, наверное, о том, что нет смысла постоянно читать что-то. Теория важна, но как всегда опыт решает. Поэтому делать-делать-делать. Английский я знаю в принципе сносно. Разговариваю, пишу, читаю. Сейчас вот в довесок начал от юнити самой смотреть уроки, всё понятно (язык имею ввиду).
Тогда вот ещё вопрос. Как я понимаю, нужно прогрессировать, надстраивая, следующее на предыдущее. Есть ли смысл, определяться с жанровой направленностью игр? То есть я люблю, РПГ Сурвайвал и Экшн хорроры, с видом сверху, от третьего лица и не люблю стратегии и гоночные симуляторы. надо ли мне дрочить навыки в этом направлении исключительно, или надо равномерно стараться развиваться так сказать по всем плоскостям и фронтам?
Кто делает гоночки? Не могу разобрать с настройками wheelcollider. Вообще не понимаю, как тут работать с настройками, то машина прыгает, то медленно разгоняется, то плохо поворачивает. И нигде не могу найти подробного гайда.
Вообще кто-то с этим разбирался? Это тонкая система настройки? Или можно пробовать писать какую-то свою упрощенную физику?
>>880495 >Или можно пробовать писать какую-то свою упрощенную физику? Можно, но вряд ли ты сможешь в одного написать лучше разработчивов. >И нигде не могу найти подробного гайда. Внезапно, мантра этого дауна >>880312 >Еще весьма просто и полезно по видео-урокам с ютуба делать, Мой совет скачать урок с официального сайта, там есть проект гоночки и попробуй сам разобраться. Но вот парадокс код разработчиков несколько продуктивней и сложнее ютубовских спецов и требует знания основ C#
>>880497 >Можно, но вряд ли ты сможешь в одного написать лучше разработчивов. Это которые сделали, что масса тела не влияет на скорость падения и где каждый случай игры от третьего или первого лица приходится костылями фиксить зацеп за стены из-за friction?
>>880514 "если принибречь сопротивлением воздуха" Точнее, если вообще вывести воздух и атмосферу из формулы.
Так-же Галилей говорил что то вроде: "скиньте ядро и дробинку с любой высоты и вы заметите, что в момент приземления ядра дробинка находится над землёй на высоте толщины двух пальцев" Эффект слабо заметен, потому что воздух неплотный. Неплотный, но это не означает СВОБОДНОЕ падение.
И чтобы закрепить для дураков: Берёшь три шарика одинакового размера, наполняешь 1 водой, второй гелием, третий воздухом. Шарик с гелием взлетит вверх, потому что его масса (ну плотность, че там ещё) меньше воздуха. Шарик с воздухом имеет массу шарика + воздуха в нём, он будет падать медленно. Шарик с водой полетит мигом вниз.
>>880515 >Шарик с воздухом имеет массу шарика + воздуха в нём По твоей логике, часть газа, изолированная от остальной массы газа, превращается в тело, находящееся в свободном падении?
Изначально анон возмутился что в физическом движке скорость падения тела не зависит от массы. На что ему ответили, что это соответствует физическим законам реального мира. Приплетать тут сопротивление воздушной среды в игровом-то движке, и еще газообразные формы материи, это уже маневрирование.
>>880429 > Честно хочу поменять сферу деятельности и профессию. Понимаю что этот процесс трудный и энергозатратный, но я по крайней мере, не витаю в облаках, что даже после окончания курсов залечу в 300к/сек. Сейчас ищу стажировки, чтобы хоть чуть-чуть понюхать индустрию и понимать, что делается, да как. Но так как знаний ещё очень мало, не думаю, что выгорит в ближайшее время. Так как сейчас сейчас таких новоявленных пруд пруди. Но даже если ничего не склеится, по крайней мере, буду для себя что-то делать и узнавать.
Так, тогда тебе надо определиться с каким-то конкретным направлением, а не лезть во все сразу: > я начал разбирать блендер Блендер нужен 3д моделерам, а не программистам все таки
>>880437 > Тогда вот ещё вопрос. Как я понимаю, нужно прогрессировать, надстраивая, следующее на предыдущее Ну, скорее у тебя есть доступно со старта несколько областей, и в каждой из них можно прогрессировать, и местами они пересекаются
Я бы выделил такие группы и на что тебе в них стоит обратить внимание на начальных этапах:
1. C# - ну тут понятно
2. Сам редактор - сначала изучать просто про префабы, скриптабл обжекты, иерархию сцены, знать где что находится, на основе этого вывести для себя какие-то практики как что удобнее делать в разных ситуациях, где префаб нужен, где со, где префаб вариант лучше сделать. Далее(пока забей, но в обозримом будущем возможно захочешь этого) тут будут кастомные редакторы.
3. Рендеринг - тут надо копаться с материалами, разными картами текстур, настройками света и т.д. Нужно понимать как устроен графон, что вот есть меши, они состоят из вершин, у вершин текстурные карты и тангенты есть. На более продвинутом уровне можешь брать шейдер граф(впринципе его уже скоро можешь поковырять по фану). Дальше там еще много всего, но пока забей.
4.1. Оптимизация геймплейного кода. Тут надо знать про нюансы юнити апи, и про нюансы си шарпа. На старте тебе достаточно просто знать про FindObjectOfType и GetComponent. Ну мб про склеивание строк. Далее(в обозримом будущем) профайлер надо учиться юзать и пулы делать.
4.2. Оптимизация рендеринга. На первых этапах надо разобраться с инстансингом и батчингом.
4.3. Оптимизация потребления памяти. Пока забей. Но знай, что она тоже есть.
5. Архитектура. Тут большое поле для прогресса и разных подходов, и оно напрямую связано с п.1 и с п.2, и почти со всеми остальными пцнктами отчасти. Это довольно сложный и важный пункт, это впринципк то как у тебя организован код, по каким принципам он написан, как работает игра. Пока что забей, но при этом когда пишешь код - обращай внимание что получилось неудобно, где ты мучался с чем-то, где что-то постоянно забывал и ошибался, и в будущем старайся сделать так, чтобы у тебя сложностей было меньше. Да и не только код. Вот если у тебч пояаилась мысль "блииин я хочу вот это вот изменить/сделать и МНЕ ТЕПЕРЬ ДЛЯ ЭТОГО НАДО ВЕЗДЕ СДЕЛАТЬ ..." - это супер важный сигнал, подумай обязательно как бы этого можно было избежать.
6. Физика. 2д физика, 3д физика, надо мочь и в редакторе что-то настроить, и написать кодом что-то, шарить там про ускорение и вращение. Надо знать про фиксед апдейт и как из кода с физикой чето делать.
7. Имплементация визуального контента. Т.е. партиклы там, модели, анимации, спрайты в игру добавлять. Готовые, само собой. И тут много нюансов, но ты сам их увидишь когда что-то будешь делать.
8. UI
Можешь на вот эти вот пункты ориентироваться и прикинуть свое понимание по каждому из них - и примерно прикидывать что у тебя по каждому из них "в обозримом будущем" намечается
> То есть я люблю, РПГ Сурвайвал и Экшн хорроры, с видом сверху, от третьего лица и не люблю стратегии и гоночные симуляторы. > надо ли мне дрочить навыки в этом направлении исключительно Ну лучше всегда делай именно то что интересно
>>880536 Мне насрать где это есть, в юнити в любом случае такого нет, а я не юзаю ничего кроме юнити. вот этот мистер >>880497 сказал >Можно, но вряд ли ты сможешь в одного написать лучше разработчивов. Вот каждый раз при старте нового проекта я фикшу этот дэбильный пхисикс, потому что он странный. + Помимо двух описанных проблем, он ещё и не даёт повторяемый результат (т.е. физикс не детерменистик, как, например, буллет физикс энжин https://www.youtube.com/watch?v=U2_bSNGEG6U) Ты только представь - ты кидаешь одинаковый объект, одинаковой массы и формы, под одинаковым углом, с одинаковой силой, а как он приземлится и потом отскочет от земли - это рандом, он может укатиться влево, вправо, вперёд, назад, может просто никуда не катиться. Вот это ваш ебейший физикс? Написать самому я не пробовал, но это не звучит как что то нереализуемое, тем более под себя ты можешь написать гораздо более удобную и нужную тебе физику, не делая всякие ненужные тебе нюансы. Проблема только во времени
Кто знает почему физическое обновление для Root Motion на аниматоре не работает, если Rb2d - кинематик?
Сидел на 2020.3, решил обновиться и внезапно отъехали анимации у объектов. Решается сменой типа rb на динамичное, но почему перестало работать в 2021 и 2022 - не понятно
Спустя два года нашел свою проблему! Оказывается во время переключения языка или рядом клацанья а клавишах, в студии автоматом добавляется какая нибудь не нужная хрень "using хуйянэйм". Это бывает очень редко, но я всё время не понимал, откуда у меня верху в заголовке вечно насрано не использующими юзингами, пиздец!
>>880461 Странно что у тебя левый класс переключает стейты, а не сама стейтмашина, стейтмашина должна сама решать сможет ли она переключить стейт и в каком стейте она сейчас находится.
Помогите с 3D моделью
Аноним22/06/23 Чтв 02:10:23№882277529
Добрый вечер. Возник у меня вопрос, благодаря SP я понял, что мне у модели нужно флипнуть нормали, я это сделал. Вопрос в другом: как не допустить этого в будущем ?
Сап, крч, ищу себе новую работу, бэкграунд 3.5 года Full-Stack Developer (.NET+JS) и щас почти 2 года Unity Developer, щитай middle+, но пытаюсь прорваться в senior.
Тяжело по вакансиям здесь, но вот одна подцепилась, дали тестовое, вроде норм, но тут одна херня выскочила, они хотят, чтобы у тебя было 3+ лет опыта в качестве мобильного разраба (Android/iOS), резюме посмотрели, сказали что типа вы нас заинтересовали, но прикол в том, что таску какую они дали, там Clean Architecture, я не знал что это такое, сказал что знаю, ибо думал стандартная хуйня в виде стандартных практик, которые знаю и имею опыт. А ОКАЗЫВАЕТСЯ, ЭТО АНДРОИДОВСКАЯ ДЖАВИСТКАЯ ХУИТА, в .NET такой хуйни нет, особенно в юнити ни разу блять не видел. Посмотрел примеры реализации этой хуйни в .NET, а там блять нахуй src/, сук, это из ебаной джавы блять, какого хуя блять в Unity, в C#, потерялась джава, ебать.
Че делать? Слать сразу нахуй вакансию? Сделать стандартным способом? Или пытаться пилить Clean Architecture из говна и палок?
сделал лайнрендерер, прицепил к нему моно с вот этим в late update: if (!_renderer.isVisible) return; где _renderer = LineRenderer. расставляет точки на рендерере согласно алгоритму, а если линию не видно, то быстро выходит из метода все работает отлично, но периодически срет какой-то непонятной хуйней: isFinite(outDistanceForSort) AABB что-то там что происходит и куда копать?
Стоит ли экспериментировать с воксельным стилем (имею в виду меши после magicavoxel) в мобилке? Что там по производительности? Или лучше не рисковать и сделать лоуполи/2д.
5ый год работаю в конторе без развития, делаем гиперказуальную-казуальную хуйню и периодически апдейтим флагманский проект и высираем его клоны.
Собственно, хочу левел-апнуться и сменить место. Во многих конторах для миддла (от 200к) просят строгое соблюдение SOLID, DI. (иногда приписывают YAGNI, DRY) Что есть почитать на тему или глянуть туториалы, чтобы сие использовалось в Юнити?
Извиняюсь за нубский вопрос. Планирую делать платформер. Нужно ваше мнение и опыт, лучше делать на чистом 2d или 2,5? Немного отстал от жизни и помнится, раньше Unity не могу в чистое 2d.
Закинул перса из блендера. Перс нормально риггается и в самом миксамо анимации работают хорошо. Из миксамо кидаю перса в т позе в юнити. Сами анимации скачиваю без скина. Анимации работают, видно что анимация бега это анимация бега, но при этом все анимации сломаны. Перс дёргается и хромает. Такая проблема есть много у кого https://www.youtube.com/watch?v=048bCHkhR4A
Пробовал делать так экспорт миксамо > блендер > юнити. Пробовал применять анимации на персах из миксамо. Также сломаны. Пробовал менять риг данные моего перса на перса миксамо. Анимации ломались ещё сильнее.
Как фиксить? Мне всего лишь нужны простые анимации idle, прыжок, бег, атака и тд.
В самом блендере анимации тоже ломаются если применить их к персонажу, но уже иначе: большая часть анимации работает хорошо, но руки лагают. Также перс поворачивается на 90 градусов вправо.
>>895435 >анимации mixamo >idle, прыжок, бег, атака Во время анимации коллайдеры на руках/ногах сталкиваются друг с другом. Либо делать меньше коллайдеры, либо ставить им триггер.
>>873990 (OP) Поясните ньюфагу, как создаются непрерывные левелы? к примеру я хочу сделать игру 2д + 3д и необходимый для меня параметр это бесшовность этапов игры (повествование в стиле фильма). Можно (нужно) ли делать весь сюжет/все места/все левелы не отрывая вместе? Для меня проще сделать все вместе, ибо я сразу буду видеть все локации но я так полагаю ошибок будет хульен...
Поясните: Inside или little nightmares это 2д или 3д? я усыновил юньку и мне выпали выборы: 2d 3d 2d(urp) и так далее, а под что попадает inside? Поисковик говорит игра 2d, но можно ли будет строить в 2д такие же сцены словно это 3д?
И нужен ли мне этот 2d urp? Говорят там эффекты пиздатые но чем то жертовать нужно..
Сап, юнитачи! Я UI/UX дизайнер, понял, что хочу в ar/vr. Вернее, начинал ещё пару лет назад, но бросил, так как полный ноль в программировании. Может, кто посоветует годные гайды по ar/vr, кроме learn.unity?
>>873990 (OP) Скачал юньку, запустил, создал новый проект и тут выдает: "unity is running with administrator privileges which is not supported" Как фиксить эту поеботу? я буквально сегодня только поставил
>>898305 быстродополнение" Что пробовал: - Флажок флажка в свойствах запуска за адмена не было, как в пабе так и просто в юньке, так что выключать его не пришлось и так и так не работает. - Параметр контроля тоже выкрутил.
>>898282 Элементарные видосы с Ютуба и накатывать Автохенд с ворованных сторов. ВР хуета слишком комплексная и в написании контроллера ты не осишилишь. Перебирай готовые варианты и собирай уже по имеющимся возможностям.
>>899529 Flax Engine, Stride Engine (бывший Xenko Engine), Falco Engine. Перекот болезненный, ключевых фич будет нехватать, но похуй.
А пока что на данный момент - тупо сиди перди, разрабатывай на Юнити пока пыль не уляжется. Все медийные петухи высрались, закукарекали что пизда. Посмотрим к чему придут в стадии торгов.
Кто сидит на Реддите или форуме Юнити? Закиньте им туда это.
Will you stop blathering and destabilising the situation around Unity? I have information from a knowledgeable person that Unity Technologies is expected to make real changes soon. After they stabilise the situation with mobile slobs and f2p shit. Then royalties will be cancelled altogether, the engine can be used in any way you want and you won't have to pay anything even if you earn millions of dollars. The source code will be opened and developed, Epics and Godot won't be able to do anything. The important thing right now is to keep our heads down.
We're required to sit tight. After it's done, we'll be fine. Everyone will be paid like professional developers - everyone will ride like cheese in butter, they will give everyone a coupon for $500 in Asset Store. The main thing now is to sit quietly and don't make a fuss. No engine changes, no boycotts. Just wait it out and everything will be fine, they've got it all covered.
Привет! Можете пожалуйста посоветовать систему визуального программирования? есть ли однозначный №1 среди них? смотрю есть допустим бесплатный Bolt и платный PlayMaker - чем первый уступает? или может стоит обратить внимание на какой-то другой вариант?
И еще вопрос пожалуйста, их использование сильно влияет на вес игр? (интересует именно WebApp) или незначительно?
Хочу вкатываться, но слышал, что куколдские условия юнити начало предлагать. Пытаюсь выбрать между godot и unity. Мне нравятся игры на юнити больше чем на анриле.
Наверное больше чисто вопрос по алгоритмам, чем конкретно по юнити Но вдруг пиздец заинтересовало а как можно выделять регионы на сгенерированой карте Обьясню на примере популярной серии игр, называется цивилизация. И там начиная с пятой части каждый континент имеет свое имя. Вот сука как они так круто делают? Сначала показалось очевидным, что прямо в процессе генерации, а не после. Но когда попробовал, оказалось что нет, нихуя не очевидно