Прошлый тред: >>858859 (OP) → (OP)
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На 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х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
БЛя че за оппик хуевый такой?
Называется векторная графика.
В этом изображении отражается основные особенности движка и его имя.
это соевые стандарты, если что, а где негр кстати?
Бампаю вопросом из прошлого треда
Сап юнитач. Поясни за анимацию.
Работаю в бленде, анимирую сам, через инверсную кинематику, закидываю в движок и всегда обсираюсь. Ноги скользят по земле даже в идле.
Пробовал через слои, ставить галочки на самой анимаци, чтобы только ноги опирались на землю ничего, не помогает.
Проблема системная и тянется уже несколько лет, в дефолтных проектах или скелет миксамо без инверсии или с инверсией, но почему то не скользит.
Странно, что на годоте такой проблемы в принципе нет.
а, забейте, все платно.
В принципе, можно купить подписку на месяц, за 20$, понаделать мульон деревьев, и отменить
Отдыхаю от геймдева много лет, зависимость есть.
Сегодня был в книжном.
Unity в действии. Мультиплатформенная разработка на C#. 3-е межд. издание Хокинг Джозеф уже перевели на русский и книга стала толще в 1.5 раза.
Обновили нет, а то недавно второе издание читал, там пол книги устаревшая инфа
На неделю отвлекись
Взял книгу этого гандона по случаю выгорания сижу читаю.
Я пробовал унити, учился, даже игру очень простую создал, но оконачетльно переехал на годо, потому что у него связка годоскрипта, оно же питон, + С++, намного мощнее, 80% ты делаешь на скрипте, а там где надо, точечно изпользуешь С++, например где работа с массивами
Да.
Все научились гуглить и теперь делают игры, не до треда.
А перекатываться всё равно некуда. Уеч не подходит для индюшатины, а остальные движки - сырое говно.
Перекатился в уеч. Никаких проблем не испытываю. Блюпринты достаточно простая хуйня, с ней только дебил не справится. Плюсы тоже хуйня. От шарпа отличаются только если ты байтоеб, на базовом уровне тоже самое.
> на базовом уровне тоже самое.
О, да? Там завезли дженерики, linq, конктракты для интерфейсов, абстрактных классов и ридонли структур, хорошую стандартную библиотеку, сильную типизацию, паттерн матчинг, асинк авейт, аттрибуты, рефлексию? Круть, надо будет обязательно перейти на анрил и сделать игру на ecs. Ecs же тоже завезли, правда? ;)
Для эффектов тебе почти всегда понадобится и фотошоп и партикл система. Иногда какой-нибудь треил рендерер. Иногда шейдеры. Короче разные комбинации из всего этого под разные задачи.
Конкретно у тебя на пике просто покадровая анимация, поэтому хз какие именно "такие" ты имеешь в виду.
>>874693
https://youtu.be/4WBkOzjJMWY?t=407
Примерно что-то типа такого (когда скелета бафнули). Через что проще сделать появление щита и его анимацию?
Дотвин + шейдер
Я так и делал, но когда сделал почти половину всех уровней, начал пилить дизайн, ибо заебался, мне уже было лень прогать, и мне срочно нужно было отвлечься на что-то другое.
Пол и стены готовы, ща за дверной порог и потолок возьмусь.
Вообще стиль будет максимально минималистичный. Я сначала пытался сделать, как на фотках разных лабораторий, но быстро понял, что в одиночку не потяну такое. Точнее, потяну, но на это уйдут годы. Так что пол, потолок, возможно, двери, - всё будут серым и непримечатальным. Цветными и красивыми будет только объекты, с которыми можно взаимойдействовать, толкать.
>Цветными и красивыми будет только объекты, с которыми можно взаимойдействовать, толкать.
это главная особенность твоей игры? когда релиз в стиме?
>год игру пилить буду
опасная затея, по моему маня мнению низкий шанс, что такое выстрелит, лучше бы сначала пилил на том чем легче заРАБотать, например кликер или идлер, жалко тебя вообщем
>какие готовые решения сейчас считаются фундаментом
базовые понятия об архитектуре программы.
Ебать у меня аж монитор треснул из-за превышения максимального безопасного уровня базы
Если кто-то еще выжил, то добиваю:
- MemoryPack
- LeoECS Lite
- NaughtyAttributes
Vcontainer это более базированная версия зенжекта, если его юзать вместо зенжекта то будут уыажать
MessagePipe это более базированная версия сигналов из зенжекта
Ецс это само по себе база
Так вот у меня почти 500 строчек только стартовых вызовов где происходят всякие настройки, это нормально так делать? Там же еще вызываются скрипты которые в свою очередь далее вызывают более низшие скрипты и так может быть до десятка вложений.
Всё работает и окей, и вроде так и должно быть, но мб делать надо как то по другому?
По логике я делал так - До игры прогружаем все нужные ресурсы и скрипты, настраиваем ui, создаем нужные префабы и так далее. Подобная инициализация происходит и при старте/загрузки игры, но там намного меньше, тоже самое по аналогии, но в более узкой форме.
У каждого свое понимание нормальности. Но я хуй знает что там можно в 500 строчек вызвать, если у тебя по факту ну пиздец не больше 10 систем высшего уровня иерархии.
640x360, 0:04
>2к23
>нет кривых биде
>попытка запилить синематик = перелом хуя и жопы
кек лол хех мда
> Zenject
Он перегружен, он не поддерживается, он продвигает плохие практики. VContainer лучше. И он продвигает правильные практики, когда в монобехейверах вообще не используется инъекция.
Типа,
if (GameController.kek) {}
х 200 раз за апдейт
>>875701
>>875702
>>875704
Сорян, я тупой. Ивентами это надо передать контроллеру "себя" и ждать, когда контроллер вызовет что то, типа "EnemyScript.UpdatePosition()" да? А как передать контроллеру себя? Нужен будет как то записать себя в лист, не хуже ли это в плане производительности, иметь лист, вместо того, что "контроллер" меняет свою одну переменную, а все "получатели" сами реагируют на это?
Объясняю. Во время инстанса объекта из менеджера, этот самый менеджер сохраняет объект в список и потом можно делать что угодно с этим списком, посылать или находить, активировать, удалять, тем самым сам объект ничего не должен находить по сцене или делать, кроме внутренней логике.
Шизиков про эвенты не слушай, их вообще не юзай. Эвенты дрочат как и апдейт каждый кадр всю сцену, это худшее что есть.
https://www.youtube.com/watch?v=MOw8a5RmMjU
>Вроде звучит просто?
Да, задача на первую неделю изучения любого языка программирования с нуля.
Так разбиваешь свою хотелку на более мелки задачи и реализуешь, что сложного?
Если я правильно понял, то твою задумку не сложно реализовать, как и любой другой вопрос передачи данных по сети.
>Так разбиваешь свою хотелку на более мелки задачи и реализуешь, что сложного?
Не врубаюсь, как передать инфу о уже созданном и отредактированном в процессе игры массиве игрокам, которые присоединились позже к сессии
вообще интересно, что когда я задаю вопросы, то в голове будто бы появляется решение (почти)
>Не врубаюсь, как передать инфу о уже созданном и отредактированном в процессе игры массиве игрокам, которые присоединились позже к сессии
Во первых тебе надо понять как происходит синхронизация. По типу лана, один игрок хост, другие подсоединяются, или выделенный сервер?
Любые данные можно передавать и синхронизировать, но стоит помнить что гонять string по сети не стоит, хоть ты и переводишь всё в байты, это слишком жирно. Исключением составляют подобие чатов где строки гоняются не каждый кадр.
>выделенный сервер
Это. В приложенном видео даже описаны методы, которыми можно делать синхронизацию в этом конкретном случае (игре). И как я понял, массив нельзя редактировать в сишарпе. Только списки можно
>массив нельзя редактировать в сишарпе
В смысле? Ты можешь что угодно, как угодно редактировать, либо реализовывать своими силами + брать готовое и допилить под себя. Нет задачи которую нельзя было бы решить, максимум это костыль.
Ну прочитал, что массив не может менять размер в сишарпе. Типа если я удалю элемент, то останется пустой индекс
Так ты что реализуешь? Может для этого не массив нужен? Вообще прежде чем лезть в сетевую часть настоятельно стоит сделать пару простых игр, чтобы просто понимать как, что делается.
Сетевая игра это сразу х2 к сложности разработки, без опыта это очень больно делать.
Я делаю мир для метаверса. Пару месяцев назад освоил базу, сделал мирок, но в нем игровой опыт был минимален (надо было искать предметы и ввести код для победы, но всё это было локально). А сейчас хочу сделать карточную игру, и на моменте, когда всё со всем надо синхронить, сломался немного.
По плану я буду в проект погружать текстовый файл с фразами (каждая с новой строки). Этот файл я распилю в массив со стартом игры. И по нажатию кнопку «получить карту» будет браться рандомный элемент из массива (фраза), передаваться в новосозданный объект «карта», и удаляться из массива.
И надо чтобы этот массив синхронился у всех игроков (ну это легко при нажатии кнопки), НО и у тех, кто только зашел в игру (как понимаю, у них будет создаваться массив снова из файла, без информации о том, какие элементы были удалены в процессе игры других челов)
Это чтобы вручную не создавать 3000 карт и не перетаскивать их ручками в массив
Не знаю на сколько понял твою задумку, но если речь про сотни объектов, то тебе понадобится 2 списка, или 2 массива. Первый это общий хранится на сервере, второй генерируется на клиентах. При удаление из массива запускаешь сортировку с заполнением свободного слота и всё.
>НО и у тех, кто только зашел в игру
Так тебе в любом случаи надо хранить всю инфу лишь на сервере, и просто отправляешь её игроку функцией GenericMyArray(); Хоть пчелик только зашел, хоть массив был изменен, хоть челик дисконектнулся на 15 сек и массив изменился.
Тут уже больше идёт вопрос в логике и архитектуре, стоит подумать как это лучше реализовать. Гонять такие массивы каждый раз когда кто-то пукнет не есть гуд.
>Гонять такие массивы каждый раз когда кто-то пукнет не есть гуд.
Тогда может мне создать префаб карточки, в коде прописать спавн 300 карточек на старте через цикл, где текст будет заменяться на строку из текстового файла. Таким образом у каждого игрока будет это происходить один раз при загрузке, а потом карточки будут синхронизировать свой трансформ на клиентах индивидуально? Так проще будет по идее
Тут помочь будет тебе трудно советом т.к никто не знает что там у тебя, и как устроено, скажут одно, а ситуэйшен у тебя в проекте другой. Но общая логика проста -> В начале игры происходит загрузка + прогрузка всех ресурсов + тут же синхронизация -> Далее по игре уже небольшие данные туда сюда гоняются -> Profit.
Всё же советую сделать твою задумку хотябы как отдельные механики в сингл версии, а потом когда увидишь что вообще тебе надо, попытаться реализовать с неткодом.
Зашел в твою игру хакнутым клиентом, добавляю в массив любые карты какие хочу и раздаю их игрокам, твои действия?
>метаверса
пахахахаха
https://docs.unity3d.com/ru/2019.4/ScriptReference/Array.html
открывается только на русском, на англюсике сразу пишет Сорри
нажимаешь на Add в табличке, сообщает что это только для яваскрипта, а не для шарпа. Каво, блядь. Как добавлять в массив-то?
Кто-нибудь может пояснить, что нужно пофиксить, чтоб игра стала реагировать на команды WASD (или вообще любые другие player input-команды)?
Только вкатился в юнити, старательно делал все по гайдам с ютуба, а из 5 разных скриптов сработал только один, и то, в котором не нужно было ничего на клавиатуре жать, насколько помню. Уже скачал новую инпут-систему, где все упрощено для нубов- а все равно, не помогло. В дебаггере при этом показывается, что инпут с клавиатуры регистрируется. В коде ошибок нет.
Возможно, дело в ошибке пикрил (кстати, что она означает?), но там речь о визуале, а не о коде. Конкретно на ошибки в коде юнити не ругается сейчас от слова совсем.
А, да, забыл уточнить, для чего именно команды. Пытаюсь в базовое движение вперед-назад-лево-право. Игру делаю 2d, не платформер, а просто вид сверху.
>чтоб игра стала реагировать на команды 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 скрипта, далее выбрасываешь что не надо, всё работает из коробки.
>требуется для VRChat
У меня полыхает зад. Чтобы сделать неткод для VRchat надо использовать ихний udonSharp, а в ихнем udonSharp нельзя использовать списки
А как без списков, если в шарпе массивы не ресайзбл
Я хочу удалить элемент, и чтобы не осталось вместо него пустое место, а скукожилось. Постоянное копирование смущает, особенно с вот этим вот скукоживанием
Но я думаю, что я могу создать сразу очень большой массив. И вместо удаления перемещать элемент в конец массива. А поиск случайного элемента производить между первым индекстом (0) и первым пустым индексом.
Вообще странно, что в языке с такими серьезным дебаффом нет сразу встроенных функций, которые бы копировали массивы (хотя бы). Это вообще не затратно по ресурсам туда-сюда копировать массивы?
Так не бывает. Гугли структуры данных. У тебя или массив с очень быстрым доступом, но долгим удалением. Или List с быстрым добавлением-удалением, но доступом помедленнее. Может есть гибридные структуры, хэшмапы там всякие.
Вообще говоря если у тебя структура данных похожа на колоду карт, то тебе вообще не надо удалять рандомный вопрос, смекаешь? Ты можешь сначала отсортировать рандомно, а потом удалять только последний элемент, сокращая в какой то переменной размер на 1, не трогая сам массив.
>Я хочу удалить элемент, и чтобы не осталось вместо него пустое место, а скукожилось. Постоянное копирование смущает, особенно с вот этим вот скукоживанием
Ручное скукоживание лучше автоматического, держу в курсе.
>если у тебя структура данных похожа на колоду карт, то тебе вообще не надо удалять рандомный вопрос, смекаешь? Ты можешь сначала отсортировать рандомно, а потом удалять только последний элемент, сокращая в какой то переменной размер на 1, не трогая сам массив
Спасибо, любопытная мысль. Попробую ее сейчас обдумать
Потому что VRChat работает на юнити 2019.4.31f
> У тебя или массив с очень быстрым доступом, но долгим удалением.
Что за бред? Какое удаление нах? Нахуя вообще "удалять"? Долгое удаление, орунах, любое удаление это O(1) всегда.
Орунах, юнитидети, что за хуйню вы выдумываете?
>>876035
>Я хочу удалить элемент, и чтобы не осталось вместо него пустое место, а скукожилось.
Классические sparse set. Погугли sparse set и делай свои удаелиня через них.
Никто ничего не удаляет, удалениея вообще не существует, есть только запись, сброс индекса или ещё что такое.
>Но я думаю, что я могу создать сразу очень большой массив. И вместо удаления перемещать элемент в конец массива.
Неправильно, ты конец массива в твой элемент записываешь. Или сбрасываешь индекс. Или флаг удаляешь. Погугли просто как такое реализовать, прочитай пару книжек по программированию и структурам данных.
Из массива вообще нельзя удалить слот, шиз. Тебе надо перепаковывать его, копируя все элементы после удаленного.
> прочитай пару книжек по программированию
С чатгпт общаюсь и его подсказки читаю по программированию
Какой, слот, поехавший? Слот нахуй. Че несёшь, шизоид?
Доступ к массивам производится по индексам, можешь начинать и заканчивать эти индексы где и когда угодно. У тебя это и будет "удалением".
Выделенную память под массив ты не трогаешь или трогаешь в редких случаях когда это действительно нужно. И даже тогда тебе не нужно ничего переупаковывать, это ебаный бред какой-то, ты можешь просто проставить ссылки.
>>876052
Посмотри только какой хуите ты научился. Слоты какие-то, перепаковка массивов. Сплошной бред. Прочитай книжку и перестань этой хуйней страдать, шиз.
для AA игр да
Используй одну сцену с картами. Будет тупо больше контроля. Рациональнее всего сделать это на ECS, чтобы миксовать твои карты как угодно и менять всё на лету.
Юзай одну сцену как менеджер которая подгружает/выгружает карты, в ней же можешь хранить всякие данные по типу на какой карте какие объекты использованы и т.д.
Скорее всего у тебя не ааа игра, поэтому можешь сразу прогрузить все карты и просто выключить, и включать по необходимости.
1920x1080, 0:06
база, у меня вообще ощущение, что тут 90%+ постеров - безигорные хуесосиксы
>Слоты какие-то, перепаковка массивов
Какие слоны?
Зачем мне читать дрочево для нёрдов, если я хочу делать игры...
>Какие слоны?
Действительно, какие слоны? Таблетки, шизик, тебя глючит, читать нормально не можешь.
Это такой троллинг тупостью? То есть ты только что завел второй массив индексов, чтобы выяснять, какие элементы массива ты удалил?
>Доступ к массивам производится по индексам, можешь начинать и заканчивать эти индексы где и когда угодно. У тебя это и будет "удалением".
>ты можешь просто проставить ссылки.
Просто набор выпуков бессмысленный.
>можешь начинать и заканчивать эти индексы где и когда угодно. У тебя это и будет "удалением".
>можешь начинать и заканчивать эти индексы где и когда угодно. У тебя это и будет "удалением".
>Называет список с совсем другим временем доступа массивом
Ору. Это возвращение дефрагментатора стека? Он уже докачался до дефрагментации списков смотрю.
> шизик не понимает что список это всегда набор массивов
> не понимает что время доступа это временная нотация и для любых списков всегда O(1)
> от натуги пытается найти своих протыков
>Доступ к массивам производится по индексам
к элементам массива, еблуша.
>можешь начинать и заканчивать эти индексы
постоянная величина
>где и когда угодно
не зависящая от времени и пространства.
> не понимаешь даже что такое ссылка.
у нас тут походу ученый. Всем аккуратно!!! Он возможно даже про указатели в курсе.
Даже без примеров кода. Кто-то может понять, как задать нужную кость?
https://docs.vrchat.com/docs/player-positions#getbonerotation
Потому что удон это лапша ебаная. Шизик не может в программирование, у него руки трясутся когда он пишет код в редакторе (я хз, это наверное психологическая травма, больного животного выебали задроты и теперь у него пролапс от кода выпадает) вот он и решил победить рациональность и писать только в лапше.
>удон это лапша ебаная
Ты путаешь UdonGraph и UdonSharp. Первое это нодовый редактор, а второе это надстройка обычного юнитивского c#, помечается вместо MonoBehaviour как UdonSharpBehaviour.
Хз, зачем ты не разобравшись серишь. А я тем временем нашел более лучшую документацию:
https://udonsharp.docs.vrchat.com/vrchat-api/#vrcobjectpool
И чтобы у тебя горел зад еще больше, я напомню, что по UdonGraph миллион туториалов, где двигают ноды, а вот по UdonSharp, на котором я пытаюсь делать, практически нет
>зачем делать мод к какой-то хуесосне, вместо нормальной игры?
Это не мод, а мир для метаверса. Ты получаешь платформу, на которой уже есть аудитория и поддержка виар. И вместо того, чтобы заниматься промоушном, отладкой неткода, можно заниматься непосредственно деланием игр и творчеством
слыш, сам ты удон
Ну, я пытался, когда-то у меня получится насрать кому-то получше.
С такими вопросами тебя только искусственный интеллект поймет. Хотя не уверен что твой пост написан живым человеком.
почему тебе не хватило мозгов увидеть подсказку от IDE? или ты в блокноте делаешь?
> подсказку от IDE
В подсказке в консольке юнити просто написано, что такой неймспейс чето там, нету его.
Я работаю в vscode, но там подсказок нет никаких — наугад приходится все делать
Ну я устанавливал какие-то штуки
Нейрошиз, это структура без функций. Ты умеешь вообще воспринимать информацию, написанную черным по белому?
по ошибке спросил в утонувшем. Продублирую тут
Можно ли имея GameObject получить его скрипт при этом без указания названия скрипта?
То есть: У меня есть геймобжект Enemy к которому приляпан EnemyScript и Enemy2 к которому приляпан Enemy2Script. В обеих скриптах есть переменная State.
Enemy и Enemy2 собраны в GameObject{} Enemyes.
Как можно сделать что бы цикл пробежал по массиву GameObject[]Enemyes и "дернул" State каждого из скриптов?
Котенька для привлечения внимания
Создай интерфейс
interface IEnemy
{
EnemyState { get; }
}
Реализуй его в классах врагов. Далее чере GetComponent получи желаемое:
foreach (var enemyObject in enemiesObjects)
{
var enemy = enemyObject.GetComponent<IEnemy>();
enemy.State......
}
Ну, например не читаешь руководство по языку. Буквально напиши в гугли си шарп интерфейсы и почитай минут 10
>не читаешь руководство по языку
Ну это да. Я быстро промогал гайд по интерфейсам, ты уверен то это то что надо? Тк мне нужно будет еще , так же пробегаясь циклом изменять переменную State в этих скриптах
Конечно
У тебя должно получиться минимум 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>() и делаешь с ним че хочешь
> Ну это да. Я быстро промогал гайд по интерфейсам
Зря. Новичку не оьчзателньо прям глубоко шарп знать, но это супер база и без них никак
Конечно
У тебя должно получиться минимум 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>() и делаешь с ним че хочешь
> Ну это да. Я быстро промогал гайд по интерфейсам
Зря. Новичку не оьчзателньо прям глубоко шарп знать, но это супер база и без них никак
ты реально не шаришь
ну просто я этой ебанине должен дать на вход инфу про кость, которую я хочу оттречить, а я не понимаю как.
Но вообще я с гуглежом и чатгпт сделал ту игру, что хотел. Работает у всех игроков
На самом деле это круто, что чатгпт тебе помогает. Я так понял ты со старой версией 3,5 работаешь? 4я версия ещё умнее и сообразительнее. Хочу её потестить в качестве персонального учителя программирования для школьника.
>Я так понял ты со старой версией 3,5 работаешь?
99% что со старой, потому что через одного из множества тг бота, которых рекламируют
>Хочу её потестить в качестве персонального учителя программирования для школьника.
ну мне показалось, что язык всё равно немного надо знать, синтаксис запомнить и понимать сам принцип работы массивов, переменных итд.
Это че за хуйня блять, у меня голова разрывается от дефолтного шейдера. Какой-то язык непонятный, типы переменных, которые не ебу что значат.
Узнал про ShaderLib, показалось проще - решил по гайду накидать по быстрому, обосрался, ничего не работает. Вроде как Universal PR нужно устанавливать дополнительно (тоже не ебу что это), где-то про Сюрикен пишут.
Я просто хотел быстро вкатится и добавить TV-помехи, блюр и туман на разные спрайты. Что мне делать? Учить ебучий шейдер либ, устанавливать юниверсал рп, учить стандартную хуиту на пикреле, учить всё вместе?
Бро, у юнити существует 3 рендер пайплайна
Built-in - встроенный, дефолтный
Universal Render Pipeline - универсальный для всех платформ и лёгкий
HIGH DEFINITION RENDER PIPELINE (HDRP) - тяжелый, для графона как в крузисе
и для каждого из них куча нюансов. Хочешь что то для своей игры, гугли при этом это самое с припиской своего рендер пайплайна, например "unity gaussian blure URP"
https://docs.unity3d.com/Manual/render-pipelines-feature-comparison.html
https://docs.unity3d.com/2020.2/Documentation/Manual/srp-setting-render-pipeline-asset.html
Пшел нах, сам найду и сделаю игры
Почитал про пайплайны
@
Все рекомендуют URP
@
Устанавливаю через пакетный менеджер
@
Всё просто
@
Запускаю сцену
@
4 фпс
@
Не могу завершить
@
Краш юнити
лучше всего начать с нужного пайплайна и делать на нём от начала до конца. Это ты странный, зачем-то начал менять всё на пол пути
>3D моделингом персонажей и меня интересует только раздел интеграции персонажа в игру и его настройке.
У тебя есть подготовленная модель, которую ты сохраняешь в формате fbx. Потом ты импортируешь её в юнити. Настраиваешь материалы, риг.
https://www.youtube.com/watch?v=0QA2O7juuWQ
> жобс
Обертка над многопотоком
> почему именно стракт
Локальность данных + отсутствие лишних аллокаций
>жобс
Да что вообще может этот ваш жобс? Ни найти геймобджект, ни получить компонент
Было бы удобно, если бы хоть был список того, на что эта тварь способна
Посмотрю, благодарю.
Это был намек на правильное использование жопсов. Кто понял тот понял. Это не для тех, кто таскает ассеты мышкой.
Я понимаю. Жопсам не хватает версатильности, чтобы быть настоящим маст хевом. Мы живём во время, когда 16 потоков это уже давно норма, а в иных случаях и 32.
Тем временем жопсы везде, в любом гайде - это распараллелить какую то безумную математику, типа рассчитать (с какой то целью) корень и повторить 10 тысяч раз циклом в цикле. Если я не прав - ок, покажите, где жопсы что то могут кроме вот этой показушности
Если игра на ецс то многопоток жестко ебашит
А так многопоток еще юзается в рендеринге, физике, анимациях, но там уже все сделано за тебя
POLYGON Sci-Fi Worlds что-то нигде не могу найти...
Хм, то есть это мой мегафон выёбывается что ли.
Чел, прям с оф сайта юнити можешь граббером выкачивать любые ассеты, берётся с гита.
Короче: как ускорить запуск игры железом. Как вообще сраный юнити устроен. Вот я сцену отркываю в редакторе, она надюсь хоть с SSD в RAM копируется. Ну думаю да, так хуле при нажатии на PLAY так долго ждать надо.
Короче всё тупо сводится к тому
1) Тут всё равно как-то завязан SSD и нужно покупать .м2 ёбу
2) Тут дело в герцовке ЦПУ или в количестве ядер и нужно покупать Threadripper
3) Тут дело в скорости оперативки.
Если что игра не то чтоб как-то сильно плохо написана, да и на средних сценах всё работает норм. Но вот если захотелось собрать ну довольно здоровый по контетну уровень то началось вот это всё. Ахуеть, юнити что для здоровых уровней не предназначен чтоле? Ну и ещё раз, в билде всё работает не мгновенно но с примемлимой загрузкой, ну как в любых других играх. А из редактора сука 30 секунд ждать. А заапусклаю я её по 3000 раз за сутки. Код напишу. Компильну. Запущу. И ждааать сука надо. Суууука. Короче ничего лучше чем купить железо помощнее не работает. Подскажите как именно в микродеталях работает запуск уровня из редкатора и какое железо на это больше всего влияет.
а название есть? даже не знаю что гуглить
360x360, 0:27
> после нажатия на плей приходится ждать 30-35 секунд
ты чё даун? фиксится одной кнопкой в настройках
какой?
Ну так открой профайлер и посмотри прчему так. У психически здоровых людей моментально запускается
Ты Явноооо что-то делаешь не так. Большие миры на десятки километров запускаются за пару сек.
>>876599
>>876601
Ок, но можно всё же ответить на поставленный вопрос сперва, а не только советовать "поиксать в гугле, открыть профайлер, просто сделать нормально".
Ок, посмотрю в профайлере, но вообще-то он показывает УЖЕ ЗАПУЩЕННУЮ игру, а вот момент от нажатия на плей до запуска он не записывает.
ну открыл, ну даже если я и смогу какие-то подсистемы игры оптимизировать, ну будет 25 сек вместо 30. В билдер всё работает удовлетворительно. Так что игроку будет норм. Проблема что мне в редакторе уровень делать медленно стало, когда он здоровым стал. Короче какое железо поможет решить это. У меня кстати отрковенно слабый комп из 2015ого всё ещё.
А вообще чего тут микрооптимизоровать. Ну 3 секунды лаг при старте из за всей хуйни. Неприятно, да, можно наверное до 2ой соптимизриовать. 1,5 сек кстати жрет редактор. Но дальше-то что.
Перед этими 3 секундами, которые происходят при УЖЕ ЗАПУЩЕННОЙ игре, надо ждать ещё 35 секунд пока всё это вообще нажмется. Ещё раз, у меня проблема между нажатием на плей и стартом игры, в профайлере это не отображдается.
Что собвенно происходит. Надеюсъ юнити не загруждает что-то с диска, например каждый блядский префаб или компилирует шойдеры.
>>876611
Пиздец у тебя низкий уровень ведения обсуждений.
Ещё раз: в какой мере какое железо влияет именно на запуск уже загруженной с жесткого диска сцены?
Насколько важна мультипоточность или важней другое?
Это первый вопрос на который я попросил ответа.
Если хочешь обсудить говнокод, то давай отдельно. Сперва насчет чисто технического вопроса запуска сцены и влияния железа на него. Или может по твоему процессор и ССД не влияет на скорость запуска?
ТЫ тупая хуита с 10 iq, просто тупорылый гной, уёбище тупоголовое, никак не влияет вся хуйня, влияет как ты игру сделал, хуита безмозглая.
Ты либо присылаешь исходник и я мокаю тебя в твой же кал, или нормально обьясняешь что где со скринами.
>всерьез утверждает что i3 12100f 4c и i9 13900K одинаково быстро будут запускать сцену в юнити
>большая часть поста это безпричинная ругань с минимальной полезной нагрузкой
>>ему даже не приходит в голову что на свете могут быть исходники больше его хеллоу-ворда который конечно не тормозит, а здоровенные проекты на многие гигабайты, высылание исходников которых достаточно сложно и сборка их тоже не тривиальная задача
... ладно, забей, спасибо, лично от тебя мне помощи уже не надо, если кто-нибудь сможет добавить что-то полезное к этому обсуждению буду рад (всем буду рад, а тебе не буду, азазаззазазаззаа)
Нахуй ты пиздишь чморота, нету у тебя никакой игры уёбок, просто нахуй из треда пошел.
Сразу видно ебасосину тебе по жизни не били, и за базар ты нихуя не отвечаешь, падаль ебучая.
может это просто спам бот с руганью лол, не отвечай ему
На самом деле не прям ААА, но и не мелкую. Гигабайты это конечно контент, а не скрипты. Подозраваю именно контент при запуске на здоровом уровне и тормозит.
Короче вопрос остается прежнмим. Как конкретно загруждается сцена с момента нажатия на Плей до момента начала игры, когда запускается профайлер. Именно в этот промежуток у меня проходит 30-35 секунд.
Думаю решить эту проблему покупкой железа, просто надо сперва сообразить какого. Скорее всего поможет хороший проц. Но опять же не понятно, тут нужна тактовая частота или много тредов. А то вполно возможно юнити доп. треды не умеет использовать для такого.
Или вообще тут дело в SSD может юнити всё же что-то загруждает с диска, кажется это как-то можно мониторить кстати. Ну или плюс ddr5 в теории может быть быстрей для такого. Но я толком не знаю что влияет на время запуска сцены в юнити, вот и спрашиваю.
>Как конкретно загруждается сцена с момента нажатия на Плей
Читал?
https://docs.unity3d.com/Manual/ConfigurableEnterPlayMode.html
Нет, спасибо. Но уже прочитал. Это именно та тема которая мне мешает, вот только... вроде у меня обе галки вообще были не-активны.
Врубил этот новый эксперементальный режим. Если врубить обе галки работает как сейчас 32 секунды в ссреднем. Если отрубить обе, то 27 секунд, что вообщем-то уже не плохо. Вот только почему-то игрок (который у меня в отдельной сцене) теперь то ли не подгружается, то ли сразу уничтожается игнорируя "Do Not Destroy On Load". Но неплохой момент.
Спасибо, хороший момент. Не знал про такое (наверное его раньше просто напросто и не было, раз Experimental стоит)
Тем не менее про железно мне тоже интересно.
> ну открыл, ну даже если я и смогу какие-то подсистемы игры оптимизировать, ну будет 25 сек вместо 30
Ты это щас как понял?
У тебя на пике 2 секунды все занимает, значит проблема где-то еще(я прдеполагал что редактор у тебя на старте что-то делает долгое но это не так), никаких 25 секунд вместо 20 не будет.
1. Какая версия юнити?
2. Пустая сцена запускается быстро?
3. Есть зависимость между количеством кала на сцене и скоростью запуска?
> Ещё раз: в какой мере какое железо влияет именно на запуск уже загруженной с жесткого диска сцены?
> Насколько важна мультипоточность или важней другое?
Железо не причем, если у тебя не ноут на атоме. В нормальных условиях сцена будет запускаться мгновенно, если комп совсем говнище то мгновенно умноженно на 4
> >всерьез утверждает что i3 12100f 4c и i9 13900K одинаково быстро будут запускать сцену в юнити
Конкретно в этом он абсолютно прав, у 12100 однопоток процентов на 35 медленне чем у 13900к. А многопоток тут роли не играет абсолютно.
По крайней мере, если я правильно понял, что у тебя долго идет именно нажатие на кнопку плей, а не компиляция скриптов.
>>876626
Я это понял увидев общую длину первого долгово фрейма 3 секунды. Ах, или может быть нужно суммировать весь "спайк" в начале? Тогда может и правда там 30сек наберётся.
1) 2019.4.18f обновлять здоровый проект с ассетами это то ещё счастье, в худшем случае ассет тупо не будет работать, в совсем худшем один ассет хочет старую версию, а другой новую
2) Да, пустая сцена быстро.
3) Да!!!! Прям прямая, чем больше объектов тем дольше этот лаг. Я как-то вроде скриптом считал количество объектов в сцене, ахуел сколько там в итоге их, уже не вспомню. Собвенно я поэтому всё же думаю что дело не в моем говнокоде (по крайней мере не только в нём), а тупо в том что там всяких мешей, спрайтов и прочего много. Мелкий кусок уровня стартует быстро, уже не помню, кстати тоже не прям мгновенно. Но на мелких уровнях на 1-7 условных кусков вообще не заметно было. А вот на здоровенном уровне финальном, с эффектиками, шейдерами, просто кучи объектов всё постепенно росло, пока не закончилось 32 секундами. Собвенно этот уровень готов, но иногда приходится его править. А просто так поправить в редакторе и сохранить не выйдет, так как в игре оно часто по другому выглядит. Приходит каждый ебучий раз ждать по 30 секунд чтоб проверить. Заебало пиздец, готов хоть RTX 4090 брать, если это поможет.
> Или вообще тут дело в SSD может юнити всё же что-то загруждает с диска, кажется это как-то можно мониторить кстати
Так у тебя юнити на ссд стоит? Или юнити на жестком диске а проект на ссд?
Короче и то и то должно быть на ссд.
Ну вот я и спрашиваю. Кстати всё хуже, у меня i5 4690k. Я тоже подозреваю что юнити не прямо уж умеет использовать 32 потока, это мало какие программы умеют даже средне. Собвенно это и есть мой вопрос, а то подозреваю что куплю ТХРЕАДРИППЕР и юнька будет на нём на первом ядре те же сраные 35 секунд выдавать и тогда мне бомбанёт уже знатно.
Да, ты совершенно правильно понял. Компиляция скриптов быстрая, не мгновенная, но засекать как-то не пытался. Конечно тоже бы приятно былоб побыстрей, но проблема не в ней. А именно в том что между нажатием на Play и реальным запуском сцены приходится ждать 30 секунд.
Я ещё в самой сцене держу только "стартувую точку" а игрока держу в другой и подгружаю её через SceneManager.LoadScene(PLAYER_SCENE_NAME, LoadSceneMode.Additive); Но опять же, может это и хуже чем префабом, но в маленьких уровнях с этим проблем нет. Так что думаю дело тупо в размере финального уровня.
> Кстати всё хуже, у меня i5 4690k.
Это вполне терпимый проц
> Я тоже подозреваю что юнити не прямо уж умеет использовать 32 потока, это мало какие программы умеют даже средне
Умеет, но не везде.
>>876633
Не это норм ссд вряд ли в нем дело.
Короче, для чистоты эксперимента, запусти диспетчер задач и глянь, есть ли упор в 1 поток
>>876632
> Я ещё в самой сцене держу только "стартувую точку" а игрока держу в другой и подгружаю её через SceneManager.LoadScene(PLAYER_SCENE_NAME, LoadSceneMode.Additive); Но опять же, может это и хуже чем префабом
Вряд ли
> Так что думаю дело тупо в размере финального уровня.
Могу предположить 2 варианта - либо у тебя там настолько дохуя каких-то тяжелых скриптов в старте, что в эдиторе это все это занимает много времени(но это не должно быть во много раз дольше), либо юнити не держит в памяти все ассеты и переинициализирует их для редактора когда подгружает все сцены, тут хз, гугли.
1. Загружает сцену со всеми ссылками с диска в память, если что-то из этого еще не было загружено
2. Запускает точку входа сцены - дергает все авейки
3. Далее, что из этого нужно попадает в видеопамять
4. Далее вызывается старт
5. Начинается PlayerLoop
Выходит, диск и память важнее когда сцена еще не загружена, а далее все делают память и проц.
В редакторе и в билде сцены хранятся по-разному и грузятся немного по-разному, соответственно, т.к.
у тебя в билде все нормально, но сцена долго грузится в редакторе, то можно предположить что что-то не так с пунктом 1.
В диагностировании этого тебе поможет профайлер, надо только переключить его с PlayMode на EditMode.
Что-то подобное было у меня с пробилдером, когда он запекал кучу мешей, но у тебя может быть что-то другое.
С вас косарь за консультацию
>3. Далее, что из этого нужно попадает в видеопамять
Это как вообще?
У меня на диске есть спрайт my_fucking_cat.png. Я его в сцену добавил. И открыл сцену в редакторе. Тоесть он вроде же в оперативке уже должен быть. Потом я нажал на Play. И он прям в VRAM из опееративы полетел. Как это работает вообще?
Небось примерно так. ГПУ получил комманду отрисовать my_fucking_cat.png. Хочет его отрисовать такой, а хуяк, его в VRAM и нету. И он такой "сперва загрузи, пидр, как я тебе отрисую то чего у меня нет".
Так примерно?
кооооосарь ;_; не то что особо дорого, но этож ДИВАНОН
интересно, он показывает слева % это суммарно все 4 ядра. Просто больше 30 при запуске не скакало. но это может значить что одно (4ое судя по графику) ядро под конец по поолной загрузили. И оперативки почему-то впритык. Кстати при открытие сцены 1,5гб оперативки как не бывало.
Немец, может просто пердимоноколь свой доисторический обновишь? У тебя там компьютер универс есть.
Отрубаешь все свои шейдеры ебаные и всё, гоняешь без шейдеров. Наверняка юнитикал шейдеры компилит или ещё какая-то калпиляция происходит. Посмотри в что там у тебя компилится при запуске в редакторе и отруби эту компиляцию и всякие шейдеры.
Вообще ниразу не пользовался. Вся структура это отдельные гейм обджекты соединённые менеджерами.
что самое обидно целый интерфейс который делал не сохранился, спасибо что скрипты блядь не откатились, движок чмошник, движок гной, тьфу блять, 40 минут коту под хвост
Struct нужен для маленьких типов данных, которые часто используются. Типа Vector3. Ну и ещё struct используют в ECS для оптимизации.
Короче не парься.
Непременно слушаю. Не мешает, а наоборот, создает своеобразный колпак, под которым можно укрыться. Нередко и нужный ритм для кода задает. А вот рефакторинг, исправление багов и прочее - уже в тишине, тут требуется внимание
Если я пишу код, значит я уже придумал решение и мне не нужно особо думать. Поэтому музыка не отвлекает. Но вот если нужно подумать над решением, тогда обычно не слушаю. Хотя когда как.
Слушаю. Но отвлекает, особенно с русским текстом, иногда и с английским. Потому всё больше ухожу на инструментальные композиции без текста.
Олсо, у меня свой вопрос. Как боретесь с переусложнением архитектуры? Я вот начал писать новый проект, соответственно, нужен синглтон, управляющий игровым процессом. Потом класс персонажа, класс игрока, отдельная система управления. Контроллер игрока, контроллер камеры. Конечно же, нельзя чекать кнопки в контроллере камеры, нужно всё передавать сверху. Естecтвенно, движение персонажа нужно делать через стейт машину, потому нужно написать херову гору состояний и, конечно же, переключать состояния, а не просто двигать игрока из контроллера. Это же пиздец? А по-другому не могу.
>Как боретесь с переусложнением архитектуры?
Лично мой опыт что вывел для себя спустя пять лет геймдева, это компонентный тип.
Для себя спустя года разработки игр вывел и понял как удобно и приятно именно мне, другим или кому-то может легко такое не подойти.
Суть проста - почти все компоненты игры стараюсь делать как бы отдельно от основного ядра скриптов, что их можно в любой момент выбросить или изменить и 90% игры не рассыпится после этого. Естественно не все компоненты получается реализовать совсем отдельно, и многие зависимости остаются.
Так-же из минусов это - Увеличение скриптов прокладок между компонентами, дабы компоненты не общались напрямую используются разные второстепенные менеджеры.
В идеале после оформления игры в стадию демо можно переделать архитектуры выбросив прокладки и установив нормальные прямые связи, но всегда это делать лень, т.к это еще сверху пару месяцев на допил и отловлю багов, а так-же усложнение зависимостей если вдруг что надо будет добавить или убрать.
Напомню что это личный опыт, так сказать имхо, и людям без опыта разработки или у который свой стиль совершенно точно не подойдёт.
Ты пять лет пиздовал к тому, что юнити рекомендует из коробки? Но один хуй громозко, менеджеры эти поверх.
Да и нет смысла выносить функционал в компоненты, потому что однотипные сущности по умолчанию будут иметь одинаковый набор компонентов.
Ебать point light увеличивает вершины оказывается.
Решил оптимизоном заняться. Смотрю - на сцене 900К вершин, в небольшой сцене. Отключил почти все point lghts, их у меня где-то 40 штук было, я их долго и основательно раставлял, и стало показывать 47К вершин. Темно, но fps поднялся с 120 до 600. Что делать, запекать?
Вообще убрал все Point lights, включил ambient color - результат на скрине. Выше 70к не поднимается. Но выглядит всрато, плоско, что ожидаемо конечн. Думаю, на версии для андроида пусть такое освещение будет.
Ща думаю, как сделать, чтобы тени появились хотя бы на нормалях, похоже point lights все же придется добавить, но не в таком количестве.
Не, это ведь для красоты, для более реалистичного отображения? А если запеку, то вершины увеличиватся не будут?
Да и запекание такое долгое... Запек, подождал - результат не понравился - снова настраиваешь лампы - опять запекаешь - ждешь.
У меня видюха ни оч, 1660 super
Короче, realtime должно быть настолько мало, несколько это возможно. Особенно когда для мобилок делаешь
Это даже не платина, это чистый алмаз. Используй отложенное освещение и забей хуй на вершины, если вкратце. Ты дальше ещё в шейдеры копать начнёшь, в нормали, а там тоже вершины удваиваются, ну их нахуй.
>>876988
Ну, без ооп можно неплохо пользоваться компонентами, но неудобно же, пиздец. Я всегда в фабрики сваливаюсь, когда дохожу до компонентов. И в итоге у меня есть объект, который создаётся фабрикой и на него навешиваются компоненты. Лишь бы даже палкой их не трогать
А сколько нас тут мамкиных геймдизайнеров против работающих в геймдеве?
Давайте посчитаемся.
Я вот например 3 года опыта в мач3-парашах, до того ентерпрайз.
логин, пароль, кнопки войти и регистрация.
вроде есть рабочий код и бд на phpmyadmin, но юнити не работает.
что я упускаю?
Что не так?
ты равно проебал, е6ланч3к
Господи, как же ты тупой, геймдев точно не для тебя...
>сносите нахуй все ненужные пакеты
Лол, так и надо делать, создаешь проект, далее заходишь в настройки проекта и настраиваешь, попутно в менеджере пакетов сносишь всё говно.
Юнити выкидывает эксепшн, но при этом выполняет эту же строку.
Где я в мозги ебусь?
>Бесит нахуй. Пустой проект создаёшь, а там уже насрано
Не забывай что юнька пытается ориентироваться на вкатунов, а в этом смысле всё правильно, всё есть из коробки, ничего тыкать не надо. А те кто шарят сами отключат что надо.
>У них лтс новая вышла, я бахнул апдейт и сразу посыпалось.
челище... никогда так не делай, жди хотя бы следующую версию или обновляйся, если это реально необходимо
334x150, 0:08
>то у неё ебанутое направление и летит не совсем не туда?
А ты не пробовал прежде чем её активировать проверить её родительский трансформ и если используешь физику то обнулить до применения?
Да проект новый, пустой считай, а тут обновление пришло. Похуй, в целом. Но осадочек остался.
Пиздос, это мне ещё надо писать состояние перехода остановку, иначе поведение получается неправильное. Я ебу, нахуй, надо что-то менять. Либо с шизой, либо с кодом.
Напоминаю, чем больше менеджеров в вашей игре, тем более несёт гавном ваш код.
Напоминаю не использовать инвоки и корутины это значить, не создать ничего более менее вменяемого, когда используете таймеры.
Напоминаю использовать ивенты вместо менеджеров это крайне правильная стратегия.
Напоминаю, тянуть чистую парадигму ООП в свой проект и пытаться сделать игру в одной сцене это изначально провальная стратегия.
Напоминаю использовать публичные объекты в вашем проекте приведёт к точу, что например префабы созданные таким образом не смогут сами находить ссылки, так как их нужно вручную перетягивать, поэтому крайне разумно делать всё приватным , а потом в старте сначала находить объекты, а потом их использовать.
Напоминаю юнити всегда пытается вас наебать, поэтому старайтесь не усложнять код, тем самым опрощая дебаггинг проекта.
Вот это минимальный списочек который я выстрадал за несколько лет пердолинга и не создав ни одного публичного проекта.
У него в посте странная смесь шизы и троллинга наоборот. Либо это так тонко что никто не понял.
>>877397
Да не это нормально, что вы ничего не поняли, несколько лет когда я здесь пытался найти ответы меня постоянно наёбывали, чем то в духе не использовать корутины или использовать публичные переменные, а в редакторе вручную строить связи, благодаря таким советом я терял месяцы жизни, спасибо вам, ушлёпки.
До сих пор учу C# до "умножения матриц".
архитектуру кода изучай долбошлеп, а не матрицы и советы с говнача.
>несколько лет
>До сих пор учу C# до "умножения матриц"
Ты за несколько лет уже игру должен был сделать. А ты остался чмом неосилятором, при этом еще какие-то советы даешь, ну значит будь готов к тому что тебя нахуй будут слать с твоими бесполезными советами.
Споки гавнош, никаких матриц в С# не существует, это я тебе авторитетно теперь заявляю.
А то что я игру ещё не сделал, это вот благодаря подобным как ты советчикам, которые нихуя не знают, но лезут.грудь
>а ты уёбище тупое делал игру мечты?
Чмошь ты разделом промахнулся, отдел с б немного в другом месте.
Я именно тот самый не выживший который делюсь с вами даунами инфой о местах, где нужно было укреплять броню и не верить в сказки от тех кто по ошибке выжил, но вы продолжаете навешивать на меня ярлыки шизика и дауна с игрой мечты.
Менеджеры норм.
Корутины? Чтобы знать, нужны ли тебе корутины, нужно понимать, что это такое. По факту, корутина это проверка в апдейте, что прошло установленное тобой количество времени. И если да - запуск твоего кода. Не более. Можно вручную складывать дельтатаймы и сделать свои корутины. Но не нужно.
>тянуть чистую парадигму ООП в свой проект и пытаться сделать игру в одной сцене это изначально провальная стратегия
Абсолютно рабочая стратегия, сам делаю, брату посоветовал - он так делает, жив, цел, орёл, зависимости есть
>префабы созданные таким образом не смогут сами находить ссылки
Ты что, ебанутый?
>потом в старте сначала находить объекты, а потом их использовать
Тебе не нужно добавлять объект в приватную переменную, чтобы использовать, шиз. И даже больше, если у тебя префабы не находят ссылки - используй менеджер. Менеджер спавнит префаб и заполняет все нужные поля.
>Можно вручную складывать дельтатаймы и сделать свои корутины. Но не нужно.
Ой вей, и сколько у тебя так таймеров работает? Опреативку юзера не жалко? Более того вот этот колхозный метод авсольтно не работает, когда ДЕЙСТВИТЕЛЬНО нужно отсчитывать таймеры например при поведении АИ ботов.
>Абсолютно рабочая стратегия, сам делаю,
Гвозди можно и штангелем забивать, тебе дали концепцию сцен, но нет хочу, как в настоящим ООП, с абстрактными классами и полиморфизмом ебаться.
>Ты что, ебанутый?
У меня есть префаб врага на сцене, через публичную переменную я указал, что объект преследования это игрок и всё отлично работает, пока не начитнаешь вызывать префаб автоматически, например враг это медведь который вылазиет из пещеры через определённое время, так вот когда этот враг появляется на сцене он вообще не видит игрока, потому что ты ему создавал ссылки вручную в редакторе, через публичный объект игрока.
А нужно было сделать приватный объект игрока, задать поиск этого объекта по тегу или имени при старте сцену и добавление всех необходимых компонентов, только тогда префаб врага начинает работать и атаковать игрока.
>менеджер. Менеджер
>Менеджер
В следующий раз начинай с этих слов, чтобы я не тратил время на необучаемых.
>когда ДЕЙСТВИТЕЛЬНО нужно отсчитывать таймеры
У всех работает, просто ты рукожоп.
>тебе дали концепцию сцен
И я загружаю их в родительскую сцену, где хранятся все настройки и важные данные. Отлично работает.
>У меня есть префаб врага на сцене, через публичную переменную я указал, что объект преследования это игрок
А, так ты рукожоп. Враги должны спавниться менеджером. Или тебе придётся вручную расставлять их по уровню, забивать вручную все поля в скриптах и вообще, ебаться в гланды. Тупо.
>через публичный объект игрока.
Ты же понимаешь, что скрипту похуй, куда положить найденный гейм объект - в приватную переменную или публичную?
>поиск этого объекта по тегу
А вот тут мы докопались к тому, почему нельзя слушать шизов. Поиск по тегу это как раз та вещь, которую нельзя использовать вообще никогда. Примерно, как сендмесседж. Это очень хуёвая идея в плане производительности. Просто катастрофически хуёвая идея.
>>877462
Я литеррали начал с этих слов, шиз
+++
https://store.steampowered.com/app/1259440/Mist_Legacy
так что никогда не слушайте итт пердов-неудачников, если игра сделала с душой и вся логика не висит в апдейте, то обязательно получите билет в лучшую жизнь
Да корутины это не хорошо, и не плохо. Они просто не нужны, кроме редких случаев. И корутины это и есть вся логика в апдейте, лол.
> Они просто не нужны, кроме редких случаев
В чистом виде может не особо нужны. Но тот же DOTween - БАЗА.
Зачем? Я так сходу могу припомнить нужду в корутинах разве что для загрузочных экранов и экзотических случаев, когда нужно подождать один кадр для инициализации скелетных мешей после изменения.
Ты тут местный дурачок?
Шиз, дотс даже юнитеки забросили. Всё, забудь это мертворожденное говно
>несколько лет когда я здесь пытался найти ответы меня постоянно наёбывали
Единственное что из твоих шизойдных высеров абсолютная правда
Тред всегда был полным дерьмом и для новичков, и для продвинутых людей у которых проблемы посерьезнее и которые пытались обсуждать какой метод/алгоритм лучше использовать или как оптимизировать определенные вещи. Поэтому все давно сьебали в тематики с такими вопросами(где любят изобретать велосипеды, но хотя бы обсуждают). А тут остался начальный уровень и низкая прослойка середняка которая может разговаривать только об очевидных вещах по 100 раз
В остальном, твои посты говно и пользы не несут
Мимо
> Напоминаю, чем больше менеджеров в вашей игре, тем более несёт гавном ваш код.
Смотря какой менеджер. Если менеджер подразумевает, что мы делегируем ему управление набором объектов то норм, есть ситуации где пригодится.
> Напоминаю не использовать инвоки и корутины это значить, не создать ничего более менее вменяемого, когда используете таймеры.
Кринж. Корутины кринж потому что есть юнитаск. Инвок это ваще к чему тут?
> Напоминаю использовать ивенты вместо менеджеров это крайне правильная стратегия.
Кринж. Ивенты кринж, лучше взять обсерваблы. Ивентная архитектура не приспособлена для создания четкого порядка в каком все будет выполняться и ожидания когда что-то будет выполнено
> Напоминаю, тянуть чистую парадигму ООП в свой проект и пытаться сделать игру в одной сцене это изначально провальная стратегия.
База
> Напоминаю использовать публичные объекты в вашем проекте приведёт к точу, что например префабы созданные таким образом не смогут сами находить ссылки, так как их нужно вручную перетягивать, поэтому крайне разумно делать всё приватным , а потом в старте сначала находить объекты, а потом их использовать.
Кринж. И то и то имеет свои задачи
> Напоминаю юнити всегда пытается вас наебать, поэтому старайтесь не усложнять код, тем самым опрощая дебаггинг проекта.
Юнити пытается наебать, но сложность кода тут не причем. Обычно наеб это когда что-то на стороне движка не работает как надо, а твой код пох как написан.
> А нужно было сделать приватный объект игрока, задать поиск этого объекта по тегу или имени
Пиздец. Гугли фабрики
>приватный объект игрока, задать поиск этого объекта по тегу или имени
либо совсем тупой, либо слишком жирный. я не разумию.
У меня нет игр, иди нахуй.
Может дебил все таки ты, если без менеджера не можешь?
Мне нужно что бы на старте игры проверялось находится ли игрок в зоне триггер коллайдера.
Можно было бы использовать OnSriggerStay, но как я понимаю оно все время проверяет по апдейду и грузит систему .
Есть ли способ как то иначе проверить находится ли игрок в зоне коллайдера?
Ответившему заранее предоставляю котика
Изи, запускаешь внутри скрипта корутину на допустим 10 сек, если чел не найден он вырубается.
>ь OnSriggerStay, но как я понимаю оно все время проверяет по апдейду
Нет
Плюс тебе ничего не мешает ебнуть обьект к которому прикрепил колайдер если не нашел игрока, если тебе проверка нужна только при старте игры
Можешь выебнуться и сделать онтригерентер с расшыряющейся зоной(с нуля до размера которой тебе нужен) при старте
Если сделаешь как сказал вот этот даун >>877711 то у тебя будет система ебаться всю сцену от этого
Тогда статика(сервис локатор или ивент бас) или инжектить в геймобжект через ди.
В start()/awake() прописываешь проверку либо на заданный радиус/координаты либо через Distance()
Пишешь логику в OnTriggerEnter.
Если объект дальше "ждет столкновения", оставляешь.
Если проверка нужна только при старте, после проверки уничтожаешь/выключаешь объект.
Как подружить между собой BoxCollider2D.size и Gizmos.DrawCube()?
Предположим я хочу что бы на весь размер комнаты в 2Д платформере был натянут триггер коллайдер и что бы зона этого триггер коллайдера закрашивалась в определенный цвет в Гизмос.
Проблема: любой повешанный на объект коллайдер принимает его форму и вне зависимости от размера объекта , если он ни больше и не меньше его ,будет иметь BoxCollider2D.size (1,1). И если его подсасывать в Gizmos.DrawCube() то Гизмо будет иметь мелкий размер.
Как можно их подружить ?
По традиции с меня котик
584x404, 0:05
Долбоёб Риччителло зато то рекламное вирусное говно айрон соурс купил и назвал разработчиков идиотами...
Руководство юнити, конечно, абсолютно неадекватное. Печально видеть пациентов дурки на руководящих должностях. Бедный движок, надеюсь переживёт этого хуесоса
сыглы, обидно что двигаются не туда + долбаёб у руля
блять сука оказывается чтоб сделать игру надо кучу хуйни закодить, это пиздец, я уже дохуя всего сделал, а по факту еще не начал
В пандемию дохуя народу понабирали, теперь скидывают балласт.
Дело в том, что сейчас игровая индустрия переживает упадок. Да, выручка в процентном соотношении падает на 4-5 процента в год, но остальная выручка перераспределяется и юнити сложно урвать свой кусок пирога. Крупные студии чаще всего пишут свои велосипеды, а индюшатина несколько просела после смерти гринлайта. Да, самая популярная игра в мире сделана на юнити. И это хорошо. Юнитекам бы стоило снова развенуться лицом к обычным игроделам и параллельно откусить кусочек корпоративного пирога. Иначе есть шанс закосплеить крайтек.
>>877923
Ты чё, ебанутый? Очевидно же, что у него проблема из-за кривого блендера.
В юнити тоже есть всё, что надо. Если чего то нет, то смотри гитхаб. Если и там нет, то ассетстор. Вот и выходит, что 99% необходимых технологий в юнити уже есть, достаточно пару раз кликнуть по ссылкам в интернете
Ты не умеешь скачиваь?
сколько человек его пилит? если ты один - тогда нинужно, потому что скоро появится движок от вкалтакте и что-то мне подсказывает, что они тоже будут делать, чтобы максимально походил на юнити
Фалько, шиз, угомонись уже
Аноны, молю, я все перепробовал, есть ли способ?
По видео ничего не понятно, сделай скрины и обведи проблемные места.
Если пованговать, то обычно это либо тени, либо сглаживание, или свет. Так-же есть кейсы когда в редакторе одно а в билде другое.
Кому как удобнее, я вообще делаю по фасту текстуры, перекидываю модель в юньку и там на живую в бленде меняю текстуру чтоб сразу видеть как будет смотреться в игре + шейдинге юнити.
В блендере моделирование и развёртка.
Рисую только в пейнтере или дизайнере. В блендере гемора много. Там текстурирование больше для его же собственного рендеринга заточен, нежели для экспорта и использования где-нибудь ещё.
Я не 3д артист, для меня юзать блендер уже в западлу, но приходится. А чтоб еще какие то тулзы для 3д моделирования юзать так это ваще, нах надо.
сглаживание включи
Сможешь, я с 4гб свой проект редактировал, лагало пиздец, но вносить правки в сцены и код реально, правда если происходит утечка всё крашится к хуям (На компе даже утечку можно не всегда заметить до конца работы в нем).
Не знаю насчёт ноута, но у меня на ПК было 8 ГБ и я спокойно работал в Unity 2018. Единственное, создание билда было долгим. Но вообще, 8 ГБ сейчас очень мало для комфортного геймдева.
Суть: 2д платформер. Делал на бэкграунд деревья с парралаксом. Решил добавить светлячков которые будут кружить меж деревьев.
По причине того что шадоукастер ебет мозги(или я с ним не до конца разобрался) реализовал выключение светлячков при пролете за деревьями(и включение при вылете изза дерева)с помощью скрипта и не все деревья развесил коллайдеры.
Проблема:
Во первых не нашел подходящий коллайдер которому можно было бы задать нужную форму и развесил везде ПолигонКоллайдеры. Хотел сделать три слоя деревьев по 10 штук в каждом
Во вторых: когда поставил второй слой деревьев заметил что при движении персонажа ФПС падает до 1.5, как будто Сруизис в 2007ом запустил.
Вопросы: проблема в форме коллайдеров или просто в их большом количестве? Как ее решить?
1918x942, 0:09
>проблема в форме коллайдеров или просто в их большом количестве?
И то и другое.
Полигонный коллайдер в принципе самый ресурсоемкий, так у тебя еще такое хай-поли. Попробуй очень грубый силуэт с минимум точек, или вообще несколько боксовых коллайдеров.
Через пол-годик начну тоже осваивать, это как с новым импутом, надо дать время настояться, да и то по привычки юзаешь старое проверенное.
Да там привыкать, по сути, не к чему, функционал бедный, поддержки css на самом деле нет, используется свой кастрированный вариант, нет фич гуя из ugui. Большой шаг назад, короче. И хуй поймёшь, почему это было сделано, у ugui был один серьёзный баг, который можно было как-то пофиксить и забыть.
> И хуй поймёшь, почему это было сделано
Для расширения редактора очень удобная штука. Раньше приходилось вручную все элементы прописывать. Это был жуткий гемор.
Стянул воду по гайдам. Вода пиздатая (как в Kingdom of two crowns). Но проблема в том что она идёт поверх только слоя Default и определенного порядка в слое а plane на который эта вода редерится не имеет настроек слоев.
Вопрос : ебусь ли я в глаза, если да то где эти настройки и есть ли они вообще?
Я могу что то не понимать , но эти смена этих слоев ничего не даёт.
Плейн перекрывает только спрайты у которых в сапрайтрендерер стоит слой default и ордер ин Леер ниже 0.
Хотел знать где в плейне настройки этих слоев
Перефразируя. Плейн всегда идёт Soting layer Defailt и ордер ин Леер -0.
Где я могу найти настройки плейн или его компонентов что бы он был в другом сортинг леере?
Локации без опенворлда разделенные переходами, где будут допустимы элементарные взаимодействия: нажать кнопку, открыть дверь, войти в режим поиска в поле, менеджмент инвентаря и существ. Боевка аналогичная покемонам, но со своими типами и характеристиками.
Юнити универсальный движок. Очень удобный для индюков, которые в соло создают игры.
> насколько трудно
Это зависит от твоих навыков. У Юнити есть все возможности. C# знаешь? Если нет, то тебе сначала нужно освоить программирование.
Основная проблема это графика и эффекты, делать любую игру кодом достаточно просто.
Из-за этой жопы заебался ебаться с визуал кодом, вурнулся на студию.
Вместо того, чтобы допилить югуй они делают абсолютно новый юи элементс. И не то, чтобы он был так уж удобен. Причём под капотом у элементов третий гуй, иммедиэт. Со стороны выглядит пиздец тупо, тысяча гуёв при том, что террейн энжином, например, годами никто не занимается, ецс заброшен и много других пакетов травой поросло. Лечат то, что не болит
Одна галочка унижает двачеров, смотреть без смс и регистрации. Никогда такого не было и вот опять
> ецс заброшен
Сынидзе? В конце 2022 все пакеты вышли на версии 1.0 PRE. То есть пред-релизная версия. Они по сути создают новый Юнити поверх старого. Там и своя либа под сеть, своя либо под две разных физики, своя либа под работу с графикой, со звуком, хуй знает с чем ещё. Тот же UI toolkit он же тоже под ECS заточен по сути, потому что старый UI никак не используешь.
>Тот же UI toolkit он же тоже под ECS заточен по сути,
>потому что старый UI никак не используешь.
Только я не вижу тут причинно-следственной связи?
>новый Юнити поверх старого
Даже не близко. По факту это кривая пристройка из говна и палок сбоку от старой системы.
>своя либа под сеть
Ещё одна кривая заброшенная хуйня.
>UI toolkit он же тоже под ECS заточен по сути
Вообще-то, нихуя. У тулкита под капотом самый старый гуй юнити, иммедиэт. Который с ецс не связан от слова "никак", там ни одной точки соприкосновения нет.
А вот, например, "старый" меканим, под ецс заточен - у него дотс типы под капотом. Только он с ецс один хуй не работает. Как там анимации поживают на ецс, кстати? Всё ещё никак?
>>878213
Связи не видишь? А её и нет.
У меня как раз проблем в создании графики и эффектов нету. Проблема в кодинге.
Sorting layers только для 2d спрайтов.
Рапортую, пока не переустановил sdk, редактор и плагины, не топнул ножкой и позвонил в колокольчик нихуя не менялось, как только я это сделал всё заработало, я ебал
Скачал взломанный ридер, хуй похуй нахуй все работает заебись четко без топаний
Добро пожаловать в мир Шэйдеров. Присаживайся, их писать дело не быстрое. В начале попробуй сделать скриптом или аниматором, если не выйдет, придётся долго дрочить шэйды.
А что не выйдет, Color.Lerp написать?
Короче смотри, есть трюк, старше тебя. Берёшь все свои цвета, картинки и прочую хероту, сохраняешь в картинку. По ширине - твой монитор, по длине монитор перемножаем на количество картинок. Если анимации - то заливаешь их в текстуру покадрово. А потом тупо тянешь ювишки. Профит.
Аниматором анимируешь свойства материала
Но , почему то некоторые их них , при переходе в анимацию ходьбы принимают горизональное положение и косплеят Лю Кенга.
Я понимаю что вопрос из разряда "машина не заводится. Чому так?" но возможно аноны хотя бы подскажут в какую сторон искать причину. Врят ли это глюк с анимацией тк иначе все бы по стенам ходили и "ХАДУКЕН" кричали
Уточню. Все остальные анимации у лю кенгов нормальные , то есть атакуют они как нужно, но при ходьбе опять возвращаются в горизонтальное положение
может код свой покажешь или сам проанализируешь? Может где-то около включения анимации ходьбы что то поворачивает его?
Нечего сказать - молчи
Все зависит от того, как ты ее получаешь. Если каждый кадр ищешь этот компонент, да еще перед этим его объект, то хуево, если один раз сохраняешь ссылку на него, то похуй.
конечно я сохраняю ссылку. А вот насколько похуй? Чуть чуть мене похуй, чем если бы я просто локальную переменную проверял?
Точно выигрыш в производительности будет, если объявлять переменную типа значения локально в рамках блока кода. Тогда она создается в стеке. Для ссылочного типа - вряд ли есть смысл.
Еще, наверное, не имеет смысл кешировать поля структур.
Но в любом случае, заниматься подобным стоит только если есть реальная потребность в оптимизации.
Советую почти всё делать спрайтами, через UI по минимум элементов. Это по собственному опыту говорю.
Хочу сделать портал.
Как можно сделать что бы в окно портала визуализировался слой спрайта(на него будет прикручен параллакс)и что бы этот слой спрайта был виден только в окне портала остальная же часть этого спрайта
Остальная же часть этого спрайта была скрыта под другими слоями
Я бросаю рейкастАлл. И как дальше определять. Лейеры и теги хочу использовать для других целей. Остается повесить компонент. Но тогда придется в апдейте помещать GetComponent<>, что не желательно. Как же тогда разумно поступить?
>что между двумя предметами преграда
Да легко. Кидаешь луч от одного предмета (А) к другому (Б).
Далее проверка: если луч столкнулся с предметом Б - то преград нет, если нет, значит, луч столкнулся с чем-то другим.
То есть, проверка будет типа
RaycastHit raycastHit;
if (Physics.Raycast(transformA.position, transformB.position -
transformA.position, out raycastHit)) {
if (raycastHit.collider.transform != transformB) {
Debug.Log("Какая-то залупа между предметами ")
}
}
>что не желательно
Ты можешь чекать по тегу, что ещё хуже, потому что сравнение тегов это операция над строками. А правильный совет тебе уже дали.
> что ещё хуже, потому что сравнение тегов это операция над строками.
Там разве интернирование не работает?
На производительность это никак уже давно не влияет, компилятор всё упрощает.
>все свитчи с 999 вариантов превращаются в ифы
наоборот, свичи быстрее, это буквально jmp[table[value]]
Нет, это же жрёт память. А интернированные строки нельзя выбросить из памяти, они там навсегда. С файндом всё очень интересно в юнити. Поиск объекта по имени будет очень быстрым, поиск по полному пути в иерархи уже медленнее. А Object.FindObjectOfType ещё медленнее. Сендмесседж и теги это злобное зло, короче.
>А интернированные строки нельзя выбросить из памяти, они там навсегда.
Я использую CompareTag. Про него написано.
>compareTag does not result in a heap allocation.
Это что-то меняет?
>>878913
>(raycastHit.collider.transform != transformB
Иногда может попасться предмет, через который можно стрелять. (Он низкий или это стекло).
>Иногда может попасться предмет, через который можно стрелять. (Он низкий или это стекло).
Мог бы и сам погуглить. В годоте для такого можно добавлять объекты в исключения. Но тут такого нет, зато есть RaycastAll где тебе вернут все хиты и дальше сам перебирай как хочешь. Если бы этого не было, я бы делал так, например выделить один слой чисто под такое, потом делать рейкаст, если объект не устраивает, временно скинуть его на этот игнорируемый слой, повторить рейкаст.
>и дальше сам перебирай как хочешь
Так в этом и вопрос, как лучше перебирать. Пожалуй, нужно учиться работать с профайлером, чтобы видеть влияние поиска по тегу и GetComponent<> (ведь по другому, кроме слоев, никак же не проверить)? Хотя, пожалуй, там влияние мизерное, просто здесь уже отписались, что теги не использовать. А в другом месте, как уже писал, тоже слышал про GetComponent<> в апдейт.
> Но тут такого нет
Ты чё, ебанутый, чё ты тут делаешь?
>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();
>Котаны а зачем вы считаете те байты мусора?
Лично это делаю, потому что начитался и наслушался людей, которые это сильно ругали. А так вроде даже в самом ужасном коде, который я писал для три в ряд, где был жутко перегруженный апдейт тегами и гет компонентами, я не замечал никаких лагов. А вот кривой А* в апдейте давал дичайшую нагрузку.
Время сессии особо не важно, просто если дохуя срать, то вызывается сборщик мусора. А это может вызывать лаги. Собственно, и всё.
И смысл слои не юзать? Можно написать своё расширение, которое позволит "игнорировать объект", как, скорее всего, и сделано в упомянутом выше говнеце.
https://forum.unity.com/threads/idea-for-a-new-physics-raycast-overload.1049321/
Но это гарантированно хуже слоёв.
Используй обычный менеджер со списком, что тут думать, и производительно и ООПэшно.
Любой сигнал -> Менеджер -> Нужная цель, изи пизи.
>уехать
>GameDispatcher.SendEvent(EventType.LOAD_GAME); ?
Нет. У тебя есть ссылка на менеджер по типу: MyManager. В нем есть нужная тебе функция, допустим тебе надо принимать строки она такого вида: MySignal(string SignalInfo). И всё что тебе остается из любого объекта это вызвать в нужный момент MyManager.MySignal(Тут описание сигнала), всё. Естественно можешь модернезировать или реализовать как душе угодно, но смысл понятнет думаю.
>тебе надо принимать строки
тебе надо за щеку принимать, хуесоска безигорная, безработная, говно без судьбы и личности
Безигорная хуеска тут только ты, считающая байты, но не сделавшая не одной игры.
>И смысл слои не юзать?
Слои не всегда применимы. Например, если нужно обрабатывать коллизии объектов индивидуально в зависимости от каких-то их внутренних параметров, типа "высоты" в игре с видом сверху.
Предоставь к осмотру свои игры, или ты
>хуесоска безигорная, безработная, говно без судьбы и личности
Хотел делать игру на UE, но мой комп его не тянет (32-бит, 3,75 Гб оперативки). Смогу ли я что-то сделать на юнити?
Конкретно я хотел сделать симулятор фехтования типа Hellish Quart.
> 3,75 Гб оперативки
Это мало для юнити. Если только ставить древнюю версию. Лучше рассмотри MonoGame:
https://www.monogame.net/
Можно, зависит конечно от игры, и надо быть готовым к боли при разработке.
До этого пытался вкатываться в бэкенд, даже делал какие-то успехи, но все равно чувствовал что это не мое и пробовал время от времени что-то делать в юнити. Но всегда брал СЛИШКОМ высокую планку из-за чего расстраивался и все бросал
В-общем вопрос - а как вообще правильно начать чтобы не наступить на те же грабли? Какой жанр самый простой для начинания и пр.
>Совсем-совсем нельзя сделать это слоями.
Ага - для сотни объектов каждый с произвольной высотой в float
А нахуя тебе такую шизофазию городить? С видом сверху персонаж даже приседать не может. Так что у тебя нет никакой произвольной высоты, есть два состояния - перекрывает обзор и не перекрывает. Всё. А высоту оставь только для графического отображения.
Хз, шизофазия тут у тебя, наверно ты что-то не то представляешь.
Я дал пример, в каких случаев слоев коллизий может быть недостаточно - симуляция 3d физики в 2d. Я такой прототип делал на другом движке, а в Юити для этого проще использовать трехмерные коллайдеры и ригидбоди.
скорость камеры в редакторе.
Глупости какие-то, слои отлично подойдут
Да, помойму F, или точка, или это в блендере, уже не помню, но точно можно.
Если то, что выполняется в FixedUpdate, будет выполнятся одинаково на всех машинах от 1 до 999 fps?
1) Нет, если у тебя фиксед апдейт 50 раз в сек, а фпс только 30, то он будет выполняться по 2 раза за фрейм
2) Для времени в фиксед апдейте существует https://docs.unity3d.com/ScriptReference/Time-fixedDeltaTime.html
Значение Time.fixedDeltaTime изменяется в зависимости от fps?
Я правильно понял, что Time.fixedDeltaTime надо использовать когда ты планируешь изменять это значение во время игры, в целях производительности например, уменьшать, если на данный момент точность физики не критична. Если же я не собираюсь изменять, то тогда не надо добавлять в fixedUpdate deltaTime-ы
No code плагины подскажите
Не используй это уг
Сам незнаю, но знаю что это облегчает
Там же написано что не может найти файл.
Вариант 1 - Переустановить хаб.
Вариант 2 - Переустановить эдитор.
Вариант 3 - 1+2.
Вариант 4 - Проверить доступность места записи.
Целиком переустановил VS и Unity (в этот раз юнити установил из инсталлятора VS). Теперь все нормально. Спасибо
проиграл с капчи
Дополню: этот пак ошибок появляется в эдиторе 2022 версии, а в 2021 такой проблемы не возникает.
> MessagePipe
А как быть со случаем, когда мне нужно отслеживать сразу десяток событий? Хочу сделать класс, который будет управлять глобальный состоянием игры. Переходить из одной сцены в другую в зависимости от тех или иных событий.
Если использовать MessagePipe, то придётся передать в конструктор более 10 аргументов. Хотя, с другой стороны, можно тогда попытаться разбить этот класс на несколько мелких.
Не придется. Там же просто по типу события подписываешься.
> Хочу сделать класс, который будет управлять глобальный состоянием игры. Переходить из одной сцены в другую в зависимости от тех или иных событий.
Плохо. Нету порядка обработки события разными обработчиками, нету ожидания если оно нужно какому-то обработчику.
пропатчить через HxD
1280x720, 0:08
Так я и улетал в стратосферу. Я добавил проверку, что если игрок соприкасается с объектом, то его нельзя поднимать.
Так это что, известная проблема? Можешь предложишь лучший вариант?
>если игрок соприкасается с объектом, то его нельзя поднимать.
Наступи на блок и спамь поочередно "прыжок" и "поднять"
>известная проблема?
Вроде того, но это скорее логическая проблема. Кучей проверок можно побороть. А можно так и оставить.
Спасибо, с прыжками и правда можно улететь.
Вообще может ачивку добавить лулзов ради, если игрок улетел за пределы комнаты с кубом. Или угандошить его в воздухе с фразой "только господу суждено быть вездесущим"
Завтра скачаю портал, халву, может амнезию ещё, посмотрю, какое там поведение
>2021 юнити
Никогда не понимал таких даунов, зачем брать старый кал когда есть новая версия...
https://docs.unity3d.com/Manual/index.html
Или это только у меня так?
Так открывается последняя LTS, рекомендованная версия.
Released a new AI Navigation package which will eventually replace the core Navigation and Pathfinding feature
О, заебись
Бред тупого школьника.
Юзаю всегда последнию версию, обновляя каждый раз когда появляется обнова, за 5 лет проблем не было, а фантазии шизиков сидящих на старом не фикшеном гумне пусть оставят при себе.
Там буквально если чекать чейнджлог видно сколько всего фиксится, и не пользоваться этим просто тупо.
Долбоеб, че ты там обновляешь, 2022 всего месяц назад неюзабельной была, в 2021 лтс был сломан нахуй инспектор для списков на протяжении месяца, а уж про баги специфичные для разных платформ я промолчу - в 2021 ЛТС НАХ совсем недавно только поправили краши в билдах.
Ты тупорылая фантазёрная хуита, всё всегда было окей, в душе не ебу что ты там нахуевертил в своём билде, но у меня всегда всё было окей.
И напоминаю, сидеть на старой версии это надо быть ебанатом. Либо безигорным который не выпускает билды и ему в принципе пох на фиксы т.к его игру никогда не увидят.
Я и не гей, я с блендера в юнити, а там всё русское.
Говно годотное троллерское, ты думаешь если ньюфаги скачают ласт версию юнити и охуеют с багов то сразу твой ссаный годот скачают? Да как бы не так.
Давно известно, что юнити можно юзать только лтс версию, сейчас это 2021. Если не лтс, то ластовая цифра должна быть хотя бы больше 8, например 2022.8, но в прод я бы такое не рекомендовал
>Магазин ассетов: https://unity3d.com/ru/asset-store
А где лежат бесплатные? Прям куча бесплатного говна надо
Ба п
Сам юнитач. Спрашиваю с периодичностью в месяц.
Как пофиксить баг когда при переходе из сцены в сцену и меня слетает освещение?
В дефолтном редакторе со стандартными шейдерами проблем нет, но так как я юзаю самописные шейдеры, происходит эта Байда. Буду признателен за помощь.
Емнип можно зайти в окно Lighting, и снять/перепоставить галочку на автоматическом запекании лайтмапов.
у меня почему-то бесплатно
Просто он масквич с 300к зарплатой, вот и кекает.
Алсо, Нубик это какая-то браузерная дрочильня для школьников, я очень сомневаюсь что у автора этой игры есть больше денег чтобы заплатить.
Двач в целом один негатив вызывает. Так что мысли хорошая. Лучше заниматься эскапизмом.
Давно известно, что gd крайне токсичный раздел, который отбивает желание делать игры. Так что прощай, никогда не возвращайся. И до завтра, анончик.
В данный момент я работаю над своей первой игрой в Unity. Пытаюсь сделать игру в стиле Rhythm Heaven. Уже реализовал контроллер ритма, объект, который будет отслеживать, что, когда и как долго нужно нажимать.
Сейчас я работаю над визуальной частью. В первом уровне будут два кубика: красный будет двигаться сам по ритму, показывая пример синему кубу, которым будет управлять игрок.
На данный момент мне не удается определить наилучший способ сделать так, чтобы красный куб прыгал таким образом, чтобы он вращался и приземлялся ровно на одну из своих сторон.
До сих пор я пытался сделать это программным путем, но я не очень силен в математике, поэтому не знаю, как точно рассчитать вращение и дистанцию, на которую куб должен прыгнуть. Я пробовал и другие подходы, но они не выглядят достаточно хорошо.
Теперь я думаю, что, возможно, можно использовать некий вид анимации, основанной на key frames, и позволить компьютерной технологии магическим образом интерполировать кадры между ними.
Что думаете? Мб можете посоветовать что-то другое? Что мне нужно гуглить чтобы сделать то, что я хочу?
Дерьмо быка!
https://blog.unity.com/engine-platform/unity-2022-lts-is-coming-in-june
> 1) Ну и что?
Ну круто разве нет? 2022 наконец-то лтс будкт, и ецс наконец-то выхлдит после стольуих лет разработки.
> 2) На пикче разница между жиректом 11 и 12, в чем соль пикчи?
Разница в производительности
>Разница в производительности
ДА НИЧЕГО СЕБЕ?! А Х У Е Н Н А!112313123121
Я спрашиваю... почему это преподносится как фича? Директа 12 в юните не было раньше или что?
блять это что за тугодумище
Хайпуешь от того, что это в ЛТС? В тех стриме это уже давно
Бляяяяя. Я конечно ответ тебе в троллерском стиле написал, но я написал все по факту и думал ты сам поймешь что хуйню спрашиваешь, на которую ответ в вопросе лежит.
Давай я напишу ровно то же самое, просто в другом виде, и с небольшими пояснениями.
1. Ецс - это охуенная вещь, которая разрабатывалась 5 лет, много раз менялось ее апи. Зачем оно надо - вперед в гугл. Как тебе кажется впринципе релиз какой-то йобы, которую 5 лет мучались-делали - это хуйня, или сам факт ее релиза это уже круто? Повторюсь, 5 лет делали.
Дальше, про версию 2022 лтс - обычно лтс выходит в марте где-то, а эту так долго мариновали и не говорили релиз дату, и вот наконец релиз дата есть. Вполне себе событие, не? Раз в год бывает, а тут еще и задержались.
2. Прирост производительности в 30% которого достигли на дроуколлах в директх12 - это супер охуенно, потому что дроу коллы это почти всегда узкое место.
На всякий случай, директх12 и ецс это разные вещи и они не связаны.
Вопрос к знатокам mirror. Как нынче разрабатывают клиент-сервер игры на нём? Один из очевидных способов - делать симлинки и запускать несколько инстансов одного проекта чтобы один был сервером, а остальные клиентами.
Есть какие то более удобные альтернативы? С меня как обычно.
https://nnmclub.to/forum/viewtopic.php?t=1504205
На самом деле он хуйня ебаная, ну если совсем начинающий то норм
Тупорылая ты скотина
Я знаю что такое ЕЦС
Я знаю что такое директ 12 и про его дроуколлы
Я спросил конкретный вопрос. Почему ты такое безмозглое животное, что не можешь понять один единственный вопрос, который я задал уже три раза и сейчас задам в четвёртый раз:
Почему наличие директа 12 преподносится как фича?
Мне плевать на твои там домыслы про ецс, про охуенные истории про пять лет, про ЛТС, про всё.
я спросил про директ 12.
Почему
Наличие
директа 12
преподносится как фича????
Вот что я спросил.
Хотя я уже понял. Видимо у ЛТСодебилов реально не было директа 12 всё это время.
А, бля, это такой тонкий или жирный или как там щас модно.
Только щас понял
Ну хули, зря на дваче спрашивать что то начал, сам виноват
О, спасибо, братишка!
> На самом деле он хуйня ебаная
Не знаю хуйня он или нет, но вот информации о построении архитектуры игры на основе ДИ очень мало, к сожалению. Есть только какие-то совсем базовые вещи. Они вроде как работали в больших мобильных студиях, а значит какой-никакой опыт у них есть, а у меня его нет.
Ну если у тебя совсем нет опыта с ди то да, посмотри.
Я просто к тому, что этих к-синдикатов так прям нахваливают, что вот вообще мощнейший курс сразу мидлом станешь! А по факту он настолько слабый оказался, что я аж охуел. Но повторюсь, как отправная точка - вполне пойдет, их архитектура - рабочая.
есть нпс, надо сделать так, чтобы при подходе к нему начинался выводиться текст на экран и персонаж не мог двигаться, при нажатии на любую кнопку текст меняется. После 5 реплик текст пропадал и перс мог двигаться.
Легко.
>ку гайс, помогите мне новокеку в гд
Ку чел. Не вопрос.
>есть нпс
Игра 2д, 3д?
>надо сделать так, чтобы при подходе к нему начинался выводиться текст на экран
Если автоматическое срабатывание то самое простое через эвент триггер, или рэйкаст срабатывает и вызывается функция в менеджере диалогов.
>и персонаж не мог двигаться
Во время вызова функции диалога, так-же вызывается функция заморозки персонажа, которая передает ему что нельзя двигаться и блокирует любые импуты от игрока.
>при нажатии на любую кнопку текст меняется
В скрипте диалога в апдейте ждёшь ожидания нажатия любой клавиши, как произошло далее идёшь по диалогу.
>После 5 реплик текст пропадал и перс мог двигаться.
Как происходит окончание диалога закругляемся, всё выключаем и посылаем персонажу сигнал что всё, можно двигаться.
Вопросы, вопросики?
Посмотрел их курс. Оказалось там совсем поверхностный взгляд на построение архитектуры. А я ожидал совсем другого. Мда.
А не знаешь, есть какие-нибудь статьи или видео в которых показывается, как можно построить архитектуру игры с использованием DI, состояний и прочего? Как это делают в больших студиях обычно.
В игре есть UI( который меняется, в зависимости от того, что выбрано в самой сцене).
Проблема в том, что когда я кликаю на ui, ui тоже меняет + походу рейкастит через ui тоже.
Как мне сделать так, чтобы логика нажатия в области ui (ui элементов) отличалась от логики нажатия на самой сцене(выбор объектов и тп)
>Нашел EventSystem.current.IsPointerOverGameObject(), но это херня постоянно false возвращает
А почему должно быть тру?
Навожу на ui объект.
Нашел причину проблемы. Кроме event system должен быть компонент с input system. В случае new input (как у меня), нужно повесть input system ui.
собственно вопросы.
!. Как можно облегчить себе опыт усвоения?( Помимо занятий, начал читать книжки из шапки и просто статьи которые нахожу, и которые могу понять)
2. Как по-хорошему набирать опыт и портфолио?(просто повторять написание за кем-то, пока не начну понимать и уже после этого, смогу потихоньку писать что-то своё?)
Ну, сразу скажу - универсального пути нет, и в этом во многом и сложность. Еще и у всех свое мнение по поводу того что надо уметь, что хорошо, а что плохо. Но все возможно, не бойся если где-то в тупик зайдешь.
> И в целом очень нравится, но засады с программированием, так как я начал разбирать блендер и в целом движок, эта часть мне очень нравится, но С# это боль. По своей сути я гуманитарий, и понимаю, что это займёт не мало времени, но не хочу бросать начатое дело.
А тебе в целом что конкретно нравится во всем этом процессе?
Я так понимаю тебе нравится именно на сцене что-то собирать, модельки делать и добавлять, освещение настраивать и т.д., а само программирование не особо? Или программирование еще совсем не распробовал, чтобы понять нравится оно тебе или нет?
И какая у тебя цель - ты именно хочешь для себя что-то делать или в идеале работать на юнити?
Если ты хочешь подтянуть программирование - советую открыть метанит https://metanit.com/sharp/tutorial/
и изучить там главы 2, 3, 4. Прям очень хорошо изучить, переписывай оттуда примеры и развлекайся с ними - меняй что-то, если появляется вопрос "а что если я сделаю так..." - то сразу иди и делай и смотри что получится. Чем больше у тебя будет вопросов, и чем больше тв будешь эксперементировать - тем лучше.
Причем чтобы было проще лучше просто в вижуал студии создай отдельный проект, чтобы без юнити все это тестить. К юнити можешь переходить после главы 3.
Когда будешь уверенно себя в них чувствовать можешь аналогично с главами 5, 6, 7, 8, 10, 11, но в них если местами что-то непонятно, например про ковариантность и контравариантность - просто забей, не сиди над этим весь день, и иди дальше.
Советую не слушать всяких додиков.
Единственный и верный путь познать юнити, и что-то на нём сделать это именно что ДЕЛАТЬ, а не читать всякие душные книжки.
Еще весьма просто и полезно по видео-урокам с ютуба делать, повторяешь и сразу закрепляется на практике.
Если слышишь что кто-то пишет иди читай кинжки шли нахуй, эти люди хотят чтобы у тебя отпала любая мотивация что-то делать и ты спустя месяц чтения духоты забил на это дело.
На ютубе есть куча серии по созданию игр разных жанров. Всё что тебе надо это в начале придумать в голове какую игру ты бы хотел сделать, но в весьма упрощённом виде, после первых пары опытов реальной разработке ты будешь знать и понимать что да как.
Анон конкретно про программирование спрашивает. Все эти туториалы по Юнити учат работе с Юнити, а понять принципы программирования по ним совершенно невозможно. Максимум, заучить определенные снипеты.
Хочу начать наворачивать ибо тонны времени появились с больничным и есть что можно сделать.
https://blog.photonengine.com/photon-quantum-is-now-free-for-development/
>Single developers can also get access to this for $125 per month.
Хуйня. Будут требовать деньги если не сразу, то потом.
>>880306
Честно хочу поменять сферу деятельности и профессию. Понимаю что этот процесс трудный и энергозатратный, но я по крайней мере, не витаю в облаках, что даже после окончания курсов залечу в 300к/сек. Сейчас ищу стажировки, чтобы хоть чуть-чуть понюхать индустрию и понимать, что делается, да как. Но так как знаний ещё очень мало, не думаю, что выгорит в ближайшее время. Так как сейчас сейчас таких новоявленных пруд пруди. Но даже если ничего не склеится, по крайней мере, буду для себя что-то делать и узнавать.
По поводу совета>>880312
Я и сам понял, на своей шкуре, что надо делать-делать-делать и что-то получится. Но как отметил предыдущий анон, мне бы понять именно суть программирования. Так как в том же офф курсе Юнити по программированию и работе , они сразу говорят, что надо писать и как. По крайней мере, где я сейчас нахожусь.
Это два совершенно разных подхода к написанию игры. Может для тебя проще миррор будет, не знаю. Но на квантуме можно сделать сложную игру с физикой и ИИ, без написания выделенного сервера.
>>880404
> Будут требовать деньги
Онлайн придётся оплачивать, это да. Но если ты не планируешь зарабатывать на своей игре, то технология не для тебя.
>надо делать-делать-делать и что-то получится.
Не так. Надо делать в удовольствие, получая кайф от процесса. Если тебе это не интересно или ты ищешь дополнительную мотивацию, лучше как можно скорее бежать от геймдева, это совершенна не та сфера где можно будет терпеть не желание.
Юнити тем и прекрасна что тебе не надо дрочить сишарп. Представляешь примитивную игру в голове. Открываешь похожие видео на ютубе, делая по аналогии пытаешься понять почему так и так, иногда гуглишь простые вопросы и документацию по функциям, всё.
Пожалуй единственное что обязательно это минимальный уровень понимания английского, потому что 99% инфы на нём что в роликах, что на форумах, ну и умение сформулировать вопрос на нем же в гугол.
Не, мне нравится. Я, наверное, о том, что нет смысла постоянно читать что-то. Теория важна, но как всегда опыт решает. Поэтому делать-делать-делать.
Английский я знаю в принципе сносно. Разговариваю, пишу, читаю. Сейчас вот в довесок начал от юнити самой смотреть уроки, всё понятно (язык имею ввиду).
Тогда вот ещё вопрос. Как я понимаю, нужно прогрессировать, надстраивая, следующее на предыдущее. Есть ли смысл, определяться с жанровой направленностью игр? То есть я люблю, РПГ Сурвайвал и Экшн хорроры, с видом сверху, от третьего лица и не люблю стратегии и гоночные симуляторы.
надо ли мне дрочить навыки в этом направлении исключительно, или надо равномерно стараться развиваться так сказать по всем плоскостям и фронтам?
Убил бы за такое.
Да. Ты говно безигорное только бегаешь и срешь по тредам, плюс 24/7 сидишь в движкотреде и там срешь, уёбище, я тебя знаю.
Вот ты свою жопу и проиграл, я здесь раз в месяц бываю, чтобы убедиться в том, что как вы были на дне, так там и остались.
Вообще кто-то с этим разбирался? Это тонкая система настройки? Или можно пробовать писать какую-то свою упрощенную физику?
>Или можно пробовать писать какую-то свою упрощенную физику?
Можно, но вряд ли ты сможешь в одного написать лучше разработчивов.
>И нигде не могу найти подробного гайда.
Внезапно, мантра этого дауна >>880312
>Еще весьма просто и полезно по видео-урокам с ютуба делать,
Мой совет скачать урок с официального сайта, там есть проект гоночки и попробуй сам разобраться.
Но вот парадокс код разработчиков несколько продуктивней и сложнее ютубовских спецов и требует знания основ C#
>Можно, но вряд ли ты сможешь в одного написать лучше разработчивов.
Это которые сделали, что масса тела не влияет на скорость падения и где каждый случай игры от третьего или первого лица приходится костылями фиксить зацеп за стены из-за friction?
>масса тела не влияет на скорость падения
А схуяли она должна влиять? ИРЛ тоже не влияет. Только аэродинамика, сопротивление воздушной среды.
На Земле всё влияет. Не влияет только в вакууме.
24 кг гиря и футбольный мяч упадут за одинаковое время?
F = ma;
c гравитацией
F = mg
где m - масса, g - ускорение свободного падения
Нет, мяч упадет быстрее.
>24 кг гиря и футбольный мяч упадут за одинаковое время?
Не поверишь, но да.
https://www.youtube.com/watch?v=wFVDcuGT4eM
"если принибречь сопротивлением воздуха"
Точнее, если вообще вывести воздух и атмосферу из формулы.
Так-же Галилей говорил что то вроде: "скиньте ядро и дробинку с любой высоты и вы заметите, что в момент приземления ядра дробинка находится над землёй на высоте толщины двух пальцев"
Эффект слабо заметен, потому что воздух неплотный. Неплотный, но это не означает СВОБОДНОЕ падение.
И чтобы закрепить для дураков:
Берёшь три шарика одинакового размера, наполняешь 1 водой, второй гелием, третий воздухом.
Шарик с гелием взлетит вверх, потому что его масса (ну плотность, че там ещё) меньше воздуха. Шарик с воздухом имеет массу шарика + воздуха в нём, он будет падать медленно. Шарик с водой полетит мигом вниз.
>Шарик с воздухом имеет массу шарика + воздуха в нём
По твоей логике, часть газа, изолированная от остальной массы газа, превращается в тело, находящееся в свободном падении?
Изначально анон возмутился что в физическом движке скорость падения тела не зависит от массы. На что ему ответили, что это соответствует физическим законам реального мира. Приплетать тут сопротивление воздушной среды в игровом-то движке, и еще газообразные формы материи, это уже маневрирование.
Приведи пример физического движка, в котором масса тела влияет на скорость падения
> Честно хочу поменять сферу деятельности и профессию. Понимаю что этот процесс трудный и энергозатратный, но я по крайней мере, не витаю в облаках, что даже после окончания курсов залечу в 300к/сек. Сейчас ищу стажировки, чтобы хоть чуть-чуть понюхать индустрию и понимать, что делается, да как. Но так как знаний ещё очень мало, не думаю, что выгорит в ближайшее время. Так как сейчас сейчас таких новоявленных пруд пруди. Но даже если ничего не склеится, по крайней мере, буду для себя что-то делать и узнавать.
Так, тогда тебе надо определиться с каким-то конкретным направлением, а не лезть во все сразу:
> я начал разбирать блендер
Блендер нужен 3д моделерам, а не программистам все таки
>>880437
> Тогда вот ещё вопрос. Как я понимаю, нужно прогрессировать, надстраивая, следующее на предыдущее
Ну, скорее у тебя есть доступно со старта несколько областей, и в каждой из них можно прогрессировать, и местами они пересекаются
Я бы выделил такие группы и на что тебе в них стоит обратить внимание на начальных этапах:
1. C# - ну тут понятно
2. Сам редактор - сначала изучать просто про префабы, скриптабл обжекты, иерархию сцены, знать где что находится, на основе этого вывести для себя какие-то практики как что удобнее делать в разных ситуациях, где префаб нужен, где со, где префаб вариант лучше сделать. Далее(пока забей, но в обозримом будущем возможно захочешь этого) тут будут кастомные редакторы.
3. Рендеринг - тут надо копаться с материалами, разными картами текстур, настройками света и т.д. Нужно понимать как устроен графон, что вот есть меши, они состоят из вершин, у вершин текстурные карты и тангенты есть. На более продвинутом уровне можешь брать шейдер граф(впринципе его уже скоро можешь поковырять по фану). Дальше там еще много всего, но пока забей.
4.1. Оптимизация геймплейного кода. Тут надо знать про нюансы юнити апи, и про нюансы си шарпа. На старте тебе достаточно просто знать про FindObjectOfType и GetComponent. Ну мб про склеивание строк. Далее(в обозримом будущем) профайлер надо учиться юзать и пулы делать.
4.2. Оптимизация рендеринга. На первых этапах надо разобраться с инстансингом и батчингом.
4.3. Оптимизация потребления памяти. Пока забей. Но знай, что она тоже есть.
5. Архитектура. Тут большое поле для прогресса и разных подходов, и оно напрямую связано с п.1 и с п.2, и почти со всеми остальными пцнктами отчасти. Это довольно сложный и важный пункт, это впринципк то как у тебя организован код, по каким принципам он написан, как работает игра. Пока что забей, но при этом когда пишешь код - обращай внимание что получилось неудобно, где ты мучался с чем-то, где что-то постоянно забывал и ошибался, и в будущем старайся сделать так, чтобы у тебя сложностей было меньше. Да и не только код. Вот если у тебч пояаилась мысль "блииин я хочу вот это вот изменить/сделать и МНЕ ТЕПЕРЬ ДЛЯ ЭТОГО НАДО ВЕЗДЕ СДЕЛАТЬ ..." - это супер важный сигнал, подумай обязательно как бы этого можно было избежать.
6. Физика. 2д физика, 3д физика, надо мочь и в редакторе что-то настроить, и написать кодом что-то, шарить там про ускорение и вращение. Надо знать про фиксед апдейт и как из кода с физикой чето делать.
7. Имплементация визуального контента. Т.е. партиклы там, модели, анимации, спрайты в игру добавлять. Готовые, само собой. И тут много нюансов, но ты сам их увидишь когда что-то будешь делать.
8. UI
Можешь на вот эти вот пункты ориентироваться и прикинуть свое понимание по каждому из них - и примерно прикидывать что у тебя по каждому из них "в обозримом будущем" намечается
> То есть я люблю, РПГ Сурвайвал и Экшн хорроры, с видом сверху, от третьего лица и не люблю стратегии и гоночные симуляторы.
> надо ли мне дрочить навыки в этом направлении исключительно
Ну лучше всегда делай именно то что интересно
> Честно хочу поменять сферу деятельности и профессию. Понимаю что этот процесс трудный и энергозатратный, но я по крайней мере, не витаю в облаках, что даже после окончания курсов залечу в 300к/сек. Сейчас ищу стажировки, чтобы хоть чуть-чуть понюхать индустрию и понимать, что делается, да как. Но так как знаний ещё очень мало, не думаю, что выгорит в ближайшее время. Так как сейчас сейчас таких новоявленных пруд пруди. Но даже если ничего не склеится, по крайней мере, буду для себя что-то делать и узнавать.
Так, тогда тебе надо определиться с каким-то конкретным направлением, а не лезть во все сразу:
> я начал разбирать блендер
Блендер нужен 3д моделерам, а не программистам все таки
>>880437
> Тогда вот ещё вопрос. Как я понимаю, нужно прогрессировать, надстраивая, следующее на предыдущее
Ну, скорее у тебя есть доступно со старта несколько областей, и в каждой из них можно прогрессировать, и местами они пересекаются
Я бы выделил такие группы и на что тебе в них стоит обратить внимание на начальных этапах:
1. C# - ну тут понятно
2. Сам редактор - сначала изучать просто про префабы, скриптабл обжекты, иерархию сцены, знать где что находится, на основе этого вывести для себя какие-то практики как что удобнее делать в разных ситуациях, где префаб нужен, где со, где префаб вариант лучше сделать. Далее(пока забей, но в обозримом будущем возможно захочешь этого) тут будут кастомные редакторы.
3. Рендеринг - тут надо копаться с материалами, разными картами текстур, настройками света и т.д. Нужно понимать как устроен графон, что вот есть меши, они состоят из вершин, у вершин текстурные карты и тангенты есть. На более продвинутом уровне можешь брать шейдер граф(впринципе его уже скоро можешь поковырять по фану). Дальше там еще много всего, но пока забей.
4.1. Оптимизация геймплейного кода. Тут надо знать про нюансы юнити апи, и про нюансы си шарпа. На старте тебе достаточно просто знать про FindObjectOfType и GetComponent. Ну мб про склеивание строк. Далее(в обозримом будущем) профайлер надо учиться юзать и пулы делать.
4.2. Оптимизация рендеринга. На первых этапах надо разобраться с инстансингом и батчингом.
4.3. Оптимизация потребления памяти. Пока забей. Но знай, что она тоже есть.
5. Архитектура. Тут большое поле для прогресса и разных подходов, и оно напрямую связано с п.1 и с п.2, и почти со всеми остальными пцнктами отчасти. Это довольно сложный и важный пункт, это впринципк то как у тебя организован код, по каким принципам он написан, как работает игра. Пока что забей, но при этом когда пишешь код - обращай внимание что получилось неудобно, где ты мучался с чем-то, где что-то постоянно забывал и ошибался, и в будущем старайся сделать так, чтобы у тебя сложностей было меньше. Да и не только код. Вот если у тебч пояаилась мысль "блииин я хочу вот это вот изменить/сделать и МНЕ ТЕПЕРЬ ДЛЯ ЭТОГО НАДО ВЕЗДЕ СДЕЛАТЬ ..." - это супер важный сигнал, подумай обязательно как бы этого можно было избежать.
6. Физика. 2д физика, 3д физика, надо мочь и в редакторе что-то настроить, и написать кодом что-то, шарить там про ускорение и вращение. Надо знать про фиксед апдейт и как из кода с физикой чето делать.
7. Имплементация визуального контента. Т.е. партиклы там, модели, анимации, спрайты в игру добавлять. Готовые, само собой. И тут много нюансов, но ты сам их увидишь когда что-то будешь делать.
8. UI
Можешь на вот эти вот пункты ориентироваться и прикинуть свое понимание по каждому из них - и примерно прикидывать что у тебя по каждому из них "в обозримом будущем" намечается
> То есть я люблю, РПГ Сурвайвал и Экшн хорроры, с видом сверху, от третьего лица и не люблю стратегии и гоночные симуляторы.
> надо ли мне дрочить навыки в этом направлении исключительно
Ну лучше всегда делай именно то что интересно
Кошмар.
Понял, спасибо за развернутый ответ.
Мне насрать где это есть, в юнити в любом случае такого нет, а я не юзаю ничего кроме юнити.
вот этот мистер >>880497
сказал
>Можно, но вряд ли ты сможешь в одного написать лучше разработчивов.
Вот каждый раз при старте нового проекта я фикшу этот дэбильный пхисикс, потому что он странный.
+ Помимо двух описанных проблем, он ещё и не даёт повторяемый результат (т.е. физикс не детерменистик, как, например, буллет физикс энжин https://www.youtube.com/watch?v=U2_bSNGEG6U)
Ты только представь - ты кидаешь одинаковый объект, одинаковой массы и формы, под одинаковым углом, с одинаковой силой, а как он приземлится и потом отскочет от земли - это рандом, он может укатиться влево, вправо, вперёд, назад, может просто никуда не катиться. Вот это ваш ебейший физикс?
Написать самому я не пробовал, но это не звучит как что то нереализуемое, тем более под себя ты можешь написать гораздо более удобную и нужную тебе физику, не делая всякие ненужные тебе нюансы. Проблема только во времени
ну и стоит добавить, что в юньке PhysX нифига не на видяхе работает
Сидел на 2020.3, решил обновиться и внезапно отъехали анимации у объектов. Решается сменой типа rb на динамичное, но почему перестало работать в 2021 и 2022 - не понятно
Спустя два года нашел свою проблему! Оказывается во время переключения языка или рядом клацанья а клавишах, в студии автоматом добавляется какая нибудь не нужная хрень "using хуйянэйм". Это бывает очень редко, но я всё время не понимал, откуда у меня верху в заголовке вечно насрано не использующими юзингами, пиздец!
>>880622 (OP)
Странно что у тебя левый класс переключает стейты, а не сама стейтмашина, стейтмашина должна сама решать сможет ли она переключить стейт и в каком стейте она сейчас находится.
Сап, крч, ищу себе новую работу, бэкграунд 3.5 года Full-Stack Developer (.NET+JS) и щас почти 2 года Unity Developer, щитай middle+, но пытаюсь прорваться в senior.
Тяжело по вакансиям здесь, но вот одна подцепилась, дали тестовое, вроде норм, но тут одна херня выскочила, они хотят, чтобы у тебя было 3+ лет опыта в качестве мобильного разраба (Android/iOS), резюме посмотрели, сказали что типа вы нас заинтересовали, но прикол в том, что таску какую они дали, там Clean Architecture, я не знал что это такое, сказал что знаю, ибо думал стандартная хуйня в виде стандартных практик, которые знаю и имею опыт. А ОКАЗЫВАЕТСЯ, ЭТО АНДРОИДОВСКАЯ ДЖАВИСТКАЯ ХУИТА, в .NET такой хуйни нет, особенно в юнити ни разу блять не видел. Посмотрел примеры реализации этой хуйни в .NET, а там блять нахуй src/, сук, это из ебаной джавы блять, какого хуя блять в Unity, в C#, потерялась джава, ебать.
Че делать? Слать сразу нахуй вакансию? Сделать стандартным способом? Или пытаться пилить Clean Architecture из говна и палок?
Может что-то не то нажал. Гуглить не получилось
> игровая сцена не двигается
Все спасибо разобрался нахуй. Закрыл сцену и открыл ее зонного. Сранно что закрытие проекта до этого не помогло.
Отлично работает, перешел 4 года назад, тогда просто на голову райдер был лучше студии, сейчас возвращаться не планирую.
if (!_renderer.isVisible) return;
где _renderer = LineRenderer.
расставляет точки на рендерере согласно алгоритму, а если линию не видно, то быстро выходит из метода
все работает отлично, но периодически срет какой-то непонятной хуйней:
isFinite(outDistanceForSort)
AABB что-то там
что происходит и куда копать?
забыл сказать что если эту проверку убрать то ошибки исчезают.
Или лучше не рисковать и сделать лоуполи/2д.
Собственно, хочу левел-апнуться и сменить место. Во многих конторах для миддла (от 200к) просят строгое соблюдение SOLID, DI. (иногда приписывают YAGNI, DRY)
Что есть почитать на тему или глянуть туториалы, чтобы сие использовалось в Юнити?
Планирую делать платформер.
Нужно ваше мнение и опыт, лучше делать на чистом 2d или 2,5?
Немного отстал от жизни и помнится, раньше Unity не могу в чистое 2d.
А в Unity завезли? Там же .NET 2
Закинул перса из блендера. Перс нормально риггается и в самом миксамо анимации работают хорошо.
Из миксамо кидаю перса в т позе в юнити. Сами анимации скачиваю без скина. Анимации работают, видно что анимация бега это анимация бега, но при этом все анимации сломаны. Перс дёргается и хромает. Такая проблема есть много у кого https://www.youtube.com/watch?v=048bCHkhR4A
Пробовал делать так экспорт миксамо > блендер > юнити. Пробовал применять анимации на персах из миксамо. Также сломаны. Пробовал менять риг данные моего перса на перса миксамо. Анимации ломались ещё сильнее.
Как фиксить? Мне всего лишь нужны простые анимации idle, прыжок, бег, атака и тд.
В самом блендере анимации тоже ломаются если применить их к персонажу, но уже иначе: большая часть анимации работает хорошо, но руки лагают. Также перс поворачивается на 90 градусов вправо.
>анимации mixamo
>idle, прыжок, бег, атака
Во время анимации коллайдеры на руках/ногах сталкиваются друг с другом. Либо делать меньше коллайдеры, либо ставить им триггер.
Справку отрой, дебс
автоматически не синхронизируется с подобъектами на клиенте, это нормально?
Поясните ньюфагу, как создаются непрерывные левелы? к примеру я хочу сделать игру 2д + 3д и необходимый для меня параметр это бесшовность этапов игры (повествование в стиле фильма). Можно (нужно) ли делать весь сюжет/все места/все левелы не отрывая вместе?
Для меня проще сделать все вместе, ибо я сразу буду видеть все локации но я так полагаю ошибок будет хульен...
нэт
Inside или little nightmares это 2д или 3д? я усыновил юньку и мне выпали выборы:
2d 3d 2d(urp) и так далее, а под что попадает inside?
Поисковик говорит игра 2d, но можно ли будет строить в 2д такие же сцены словно это 3д?
И нужен ли мне этот 2d urp? Говорят там эффекты пиздатые но чем то жертовать нужно..
какие там криетрии для аффекта?
Flax Engine глянь.
Скачал юньку, запустил, создал новый проект и тут выдает:
"unity is running with administrator privileges which is not supported"
Как фиксить эту поеботу? я буквально сегодня только поставил
быстродополнение"
Что пробовал:
- Флажок флажка в свойствах запуска за адмена не было, как в пабе так и просто в юньке, так что выключать его не пришлось и так и так не работает.
- Параметр контроля тоже выкрутил.
пофиксил рестартом пеки ....
Элементарные видосы с Ютуба и накатывать Автохенд с ворованных сторов.
ВР хуета слишком комплексная и в написании контроллера ты не осишилишь. Перебирай готовые варианты и собирай уже по имеющимся возможностям.
https://www.youtube.com/watch?v=QidFW-jniBw
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.
Мне нравятся игры на юнити больше чем на анриле.
там условия, что если ты зарабатываешь больше, емним 200000 долларов в год, то нужно % с установок просить
так что если ты не главный разработчик какого-нибудь Геншин Импакт, то выбирай Юнити
Но вдруг пиздец заинтересовало а как можно выделять регионы на сгенерированой карте
Обьясню на примере популярной серии игр, называется цивилизация.
И там начиная с пятой части каждый континент имеет свое имя.
Вот сука как они так круто делают?
Сначала показалось очевидным, что прямо в процессе генерации, а не после. Но когда попробовал, оказалось что нет, нихуя не очевидно