Последние новости: анонсирован Unity 6, который выйдет в конце 2024
https://www.youtube.com/watch?v=8ZIdejTiXAE
Прошлый тред: >>931357 (OP)
Официальный сайт: https://unity.com/ru
Документация: https://docs.unity3d.com/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com
Магазин ассетов: https://assetstore.unity.com
На Unity сделано много замечательных игр: Hearthstone, VRChat, Escape from Tarkov, Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие.
Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
Какие у Unity сильные стороны?
Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
Какие у Unity слабые стороны?
Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
На каких языках я могу писать скрипты для Unity?
Поддерживается написание скриптов на C# 9.0
https://docs.unity3d.com/Manual/CSharpCompiler.html
Какие есть готовые решения для создания мультиплеерной игры?
https://www.photonengine.com
https://mirror-networking.com
https://playfab.com
На каких платформах работают созданные с помощью 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х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
Шапка:
https://pastebin.com/yAjs3gav
Нах вы продолжаете делать перекат в тематике на 500 посте, но где бамплимит 1000 постов?
Ебанутые?
Какой утонул ньюфажина блять. Тут треды висят которым по несколько лет.
Вот такой какой-то как ты залетный сделал перекат на 500, и остальные дегроиды стали продолжать эту традицию.
1920x1080, 0:06
Нахуй пошёл отсюда, шизоид ёбаный. Если у тебя претензии к разделу, то в /d/ обращайся, хуесос. Не засирай тред.
У меня другая идея - можно ли некоторые ассеты выборочно сделать незашифрованными, либо зашифрованными в таком формате каждый файлик, что если файлы изменять или удалять, то игра не ломается, а просто ассеты в игре не отображаются?
Ну вы поняли задумку, каждый эти открытые файлики мог бы изменять как хочет.
Прямо так вы сами учились сразу 3D или по книгам про C#?
>Курсов по 2D подкиньте
На сайте Юнити есть хорошие туториалы. Например вот
https://learn.unity.com/project/ruby-s-2d-rpg
А вот здесь показывают как создать рогалик
https://learn.unity.com/project/2d-roguelike-tutorial
Здесь ещё разные туторы
https://learn.unity.com/search?k=%5B%22q%3A2D%20Game%22%5D
Есть много туторов на ютубе. Используй яндекс браузер, чтобы перевести их на русский.
Алсо, я оговорился - я понимаю что они НЕ ШИФРУЮТся, а просто сжаты, но этот формат .assets очень плохой и нужно стать программистом, чтоб расшифруовывать эти ассеты и потом всё в куче сложенно в виде кала, я хотел бы пользователям облегчить муки, ибо понимаю какого это.
Ну просто блин как не сжимать выборочно файлы проекта, чтоб они лежали открыты в папке игры?
Я уже много формуов официальных перечитал, но везде бе ме пук серьк. Всем настолько пофиг на не программистов, что словами не передать. Если б я хотел программировать, то тогда бы уж скачал анрил чтоб делать конфетку.
Так реализовывай свой метод шифрования и все.
Спасибо! Видел на сайте Unity тьюториалы. Подумал, что английский меня сейчас напряжёт очень сильно. Но, видимо, судьба...
>английский меня сейчас напряжёт очень сильно
чел ты... ты... ты явно не справишься с управлением..
>что английский меня сейчас напряжёт очень сильно
Пофикси это. После русского, английский язык самый родной.
Ах ДА, я и забыл чет про эту...
А нельзя ли их в этой папке каком-то простым методом сжать файлы в непопулярный формат, но чтоб для модеров ни малейших проблем их вскрыть, а также они бы видели все пути и папки, ну то есть файлы по отдельности, ну чтоб мимокроки не могли читерить и смотреть их? А то тогда мотивация играть может исчезнуть лул.
Я имел в виду непосредственно в этой папке Стриминг, гайд где надо писать скрипт мне не подойдёт однако, я слишком плох в этом, сколько не пытался.
А че ты мне кинул? Это к юнити не имеет отношение.
504x896, 0:38
Хочу из скрипта PlayerMove получать переменную _speed, увеличивать ее на 0,05f при срабатывании метода AddOne() (он срабатывает при подборе пассажира), добавлять на экран и потом отправлять обратно в скрипт PlayerMove, уже обновленную.
Как это правильно сделать?
Мне кажется правильнее было зафигачить ивент на подборе, а всю остальную логику подписать на нее. А скорость лучше бы оставить приватной и не трогать в других классах.
Лучше бы не доллары прибавлялись, а количество лет, которые придётся отсидеть после.
А проект после билда весит больше, чем все его ассеты распакованные вместе весят. ЭТО КАК?
Байтишь на движкосрач? А про размер проекта после билда ты епта подумай что такое вообще движок и нахуя люди с нуля игры не делают. Ты наверное ахуеешь но в каждый билд помимо ассетов игры еще и целый рантайм движка запихать надо.
Байчу, что юнити говно не приведя альтернатив. Вот. Так что движко срача не увидим. =(
>громоздкое
Нет, не громоздкий.
>неуклюжее
Нет, не неуклюжий.
>фичи зааналены
Нет такого.
>Сишарп хуйня
Сишарп бомба, идеальный ЯП.
>префабами ещё вообще дрисня
Префабы более чем удобны.
>проект после билда весит больше, чем все его ассеты распакованные вместе весят
Ненамного больше. Билд можно по-максимуму урезать. Не зря же на юнити создают браузерки и мобильные игры, которые весят копейки.
>проект после билда весит больше
Хуй знает что надо делать с проектом чтоб он много весил. Разве что запихать кучу неоптимизированных 3д моделек с 2д пнг картинками.
Мои конечные игры что 2д что 3д весят в районе 1.5гб. Из них блять пол гига это музыка и эффекты.
Он действительно не неуклюжий и не громоздкий, а префабы имеют смысл.
Но фичи зааналены, куча легаси, а сишарп говно.
>а сишарп говно.
Литералли лучший ЯП для создания игр. ООП, удобные классы, всё супер.
>фичи зааналены, куча легаси
Максимум вот тут соглашусь, что куча фич и ебучего легаси если будешь рыться в чужом коде, но это так, доёбка на грани 5%.
1920x1080, 0:36
Хочу чтобы количество денег (_money) оставалось после начала новой игры.
Два дня парился с ChatGPT - если что-то в коде смущает, то это не я, а он.
1920x996, 0:35
Исправил.
Теперь количество денег остается.
При нажатии на покупку продолжения игры (скрипт PlayerDeathMenu, BuyLife()) игра продолжается - но деньги не списываются и скорость игрока падает практически до нуля.
Как это поправить?
Код запушил.
https://github.com/GrandTheftAuto6/TaxiRunner
Короче, если коротко:
в скрипте PlayerDeath устанавливалось следующее -
PlayerMove.Instance.Speed = 0f;
То есть скорость обнулялась при касании барьера.
Добавил в метод BuyLife() в скрипте PlayerDeathMenu строчку:
PlayerMove.Instance.Speed = 3f;
и все заработало - не только скорость нормализовалась, но и деньги начали списываться.
Не знаю как это все друг от друга зависело.
Кому интересно, все запушил на гитхаб.
Заодно можете код покритиковать.
P.S. ChatGPT - отстой.
Единственное что он нормально смог - создать методы AddMoney() и SpendMoney(), после этого всякую дичь нес.
Пока что Восстание Машин откладывается.
Помогите разобраться новому новичку с анимацией растительности, деревья с травой не раскачиваются, не реагируют на wind zone, гайдов по этой теме хуй. Но в демосцене ассета они движутся. Спиздил префаб прям с этой сцены и закинул на свою, и О ЧУДО, вся трава и деревья, которые размещал после этого, начали шевелиться. Потом опять что-то сделал и сбросилось нахуй. Лазил во все properties и инспекторы, везде где хоть что-то связано с анимацией, wind settings, но не нашел этой волшебной кнопки, чтобы оно снова зашевелилось. Возможно вместе с префабом на сцену закинулись какие-то ещё настройки, которых не было изначально, я вообще ничего не понимаю, изучаю юньку без году неделя, поэтому заранее извиняюсь за нубский вопрос форумчане
Поросёнок здесь как раз ты. Пришёл в тред к уважаемым юнити-господам и начал ХРУКАТЬ. То тебе не нравится, это тебе не нравится. Почему нас должно это ебать? Со своими шизопроблемами иди в движкосрач >>618624 (OP)
Всегда юзай только последний билд и версию юнити. Они буквально каждую неделю что-то фиксят и улучшают.
Нет, лучше сидеть на LTS до последнего.
В общем, есть условно сцена Level. На ней запечено освещение. Я создал новую сцену для тестов. Взял из сцены Level окружение и установил ссылку на Light Data Asset. После этого к окружению подцепилось запечённое освещение. Всё круто и так далее. Стал дальше экспериментировать и в результате всё сломал. Почему-то запечённое освещение не применяется к окружению. Попытался повторить все шаги на новой сцене и опять освещение не подцепилось. Я не представляю с чем это вообще связанно. Удалял папку Library, чтобы проект по новой собрался - результатов хуй. Смотре текстовые исходники сцены, показывается что правильная ссылка на Light Data Asset, всё ок.
В производительности вообще нет разницы
Unity пишет что билд завершился успешно, но когда запускаю игру в браузере (с помощью XAMPP) - игра не грузится.
Как думаете, почему?
Что-то пошло не так, очевидно
А есть ли смысл с той же 2019 переходить на 2022?
"Search string not found in index.html
UnityEngine.Debug:LogWarning (object)
YG.EditorScr.BuildModify.ModifyBuildManager:SetBackgroundFormat () (at Assets/YandexGame/ScriptsYG/Editor/PostProcessBuild/ModifyIndexFile/BackgroundFormat.cs:14)
System.Reflection.RuntimeMethodInfo:Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
YG.EditorScr.BuildModify.ModifyBuildManager:ModifyIndex (string) (at Assets/YandexGame/ScriptsYG/Editor/PostProcessBuild/ModifyIndexFile/ModifyBuildManager.cs:34)
YG.EditorScr.BuildModify.PostProcessBuild:ModifyBuildDo (UnityEditor.BuildTarget,string) (at Assets/YandexGame/ScriptsYG/Editor/PostProcessBuild/PostProcessBuild.cs:26)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)"
В одной из ТГ-групп мне указали на то, что проблема с текстовым полем, в которое я вставляю число, полученное из PlayerPrefs:
bestMainMenuScore = PlayerPrefs.GetInt("BestScore", 0);
Казалось бы, все должно работать - даже если число не получено, ставится 0.
Но с ним не работает, а без него все нормально пашет.
Как думаете, в чем может быть проблема?
P.S. На одном из скриншотов код не закомментированный - и он не работает.
На втором код закомментирован - и все работает, из главного меню я (нажав на кнопку "Играть") попадаю в сцену с игровым процессом.
Что ты блять творишь то А?
Не понимаю как ты можешь обосрать в какой-то базе нахуй. И где ты берешь код который не понимаешь?
Какая версия юнити?
И последнее, начни ты блять с БАЗЫ нахуй, сделай уровень с простым и понятным для себя кодом, посмотри как работает.
Unity 2022.3.4
Как получается обосраться?
Не знаю.
Казалось бы, надо просто получить PlayerPrefs - но и здесь какая-то непонятная мне ошибка.
Причем когда запускаю игру в Unity - все работает нормально.
Я не баба ванга чтоб ванговать где в проекте ты мог обосраться лишь по паре строчек кода.
Попробуй копать в сторону плэерпрефа, правильно ли с ним работает, и вообще работает ли он у тебя.
>Unity - все работает нормально.
В редакторе Юнити и в реальном проекте многое может отличаться по работе, особенно касается с работой файлов.
https://github.com/GrandTheftAuto6/TaxiRunner
Переменную в PlayerPrefs добавляю в скрипте PassengerManager, получаю в скрипте MainMenu.
Ошибка в том что ты вообще PlayerPrefs используешь. Это само по себе хуйня забагованная которая работает или нет в зависимости от того какая ОС, браузер, виртуальная машина и т.п. у юзера. Она существует только для того чтобы у ньюфаней попка не болела от необходимости написать класс для работы с файлами.
Просто сохраняй все нужные данные в файл и проблем не будет.
Когда он уже выйдет? Всё жду чтоб перекатить проектик.
Я сижу на версии 2021 LTS и мне заябися. Через год-два перекачусь на 2022 LTS.
Бля, у тебя как не пост, все сюр. Какого хуя у тебя любые классы напрямую читают данные и обрабатывают их, в чем проблема то блять. Класс блять мейн меню, какого хуя он хранит бестскор. Читай и вчитывайся, ты когда в аптеку приходишь за таблетками, ты не берешь их сам с полки, ты говоришь аптекарю "дайте мне пожалуйста %нейм% таблетки", так же блять и в проектировании игры, у тебя класс мейн меню, если ему нужны какие то сохраненные данные он должен обратиться к кому то за ними, в данном случае у тебя должен быть еще один класс плеердата который и выдаст эти самые данные по просьбе. Я на 100% уверен что у тебя такая хуйня абсолютно во всех класс, они тупо выполняют все и делают что хотят, от туда и вся эта хуйня. Это блять даже не говнокод, это просто здоровенная куча жидкого дерьма которая еще и растекается в разные стороны бесконечно.
Блять, щас полазил по гиту, ну это пиздец, здоровья пострадавшим. У заядлых нариков зависимостей и то меньше.
Я все делал по курсу "Яндекс игры для разработчиков".
Какой курс, по-твоему, может научить правильно кодить?
>Какой курс, по-твоему, может научить правильно кодить?
Необучаемые блять.. НИКАКОЙ. Любой курс это инфоцыганская хуйня. Курсы помогут только исключительно для ознакомления с тем на чем планируешь работать.
Кодингу блять даже учиться не надо, поебать даже на всякие патерны, абсолютно, кодинг это блять не знание языка и его возможностей, кодинг это алгоритмы, достаточно бошки на плечах чтоб понять что ты делаешь полную хуйню.
Никакие курсы нахуй не нужны чтобы освоиться в движке либо изучить яп, это все делается самостоятельно по необходимости, сначала ты представляешь алгоритм в голове, условно: тебе нужно встать со стула, какие твои действия? правильно, Опереться руками -> начать ими отталкиваться от поверхности -> вы поднялись; потом ты идешь и гуглишь как тебе в яп%нейм% опереться руками, как начать отталкиваться и повторяешь. Таким образом из за того что ты потребляешь информацию которая тебе в данный момент необходима так или иначе начинаешь понимать какая строчка в коде и для чего, и из за чего могла вылезти ошибка. А когда бездумно хуячишь под предлогом "а мне так на курсах рассказали" ты нихуя ничему не учишься, а значит нихуя и не понимаешь че происходит, собственно ты, и многие другие которые писали итт, тому доказательство.
>Какой курс, по-твоему, может научить правильно кодить?
Я всем рекомендую начать изучать C# отдельно от Юнити, по книгам. Нужно иметь именно бумажный вариант книги, чтобы она у тебя всегда была на руках. И начинать работать в обычной консоли, изучая самые базовые основы. Это старый, проверенный многими способ. Так ты сможешь детально понять, что происходит в коде который тебе предлагают курсы и сможешь писать самостоятельно такой же или ещё круче.
>изучать C# отдельно от Юнити
Ты ебанулся?? Если человек хочет делать игры на юнити, ему нахуй не надо это, это супер вредный совет.
>по книгам
Ну пиздец, ты откуда, из нулевых вылез? Книги это атавизм, пока современный человек будет её читать он уже сто раз дропнет разработку от духоты. Нахуй не надо.
>Нужно иметь именно бумажный вариант книги
Просто ебанутый.
>И начинать работать в обычной консоли
Я даже не знаю, это либо реально ебанутый дед, или жирный троллинг.
>изучая самые базовые основы
Вот это единственный полезный совет. Начинать изучать юнити надо с основ по ЮНИТИ, смотришь гайды, повторяешь, потом пытаешься делать свою механику по подобию.
Максимум что надо это гуглить мехи, и почитывать офф доки.
Неистово двачую этого просветлённого. Жму руку.
Алсо, вышеописанное
> бездумно хуячишь под предлогом "а мне так на курсах рассказали"
На канале Грипинского, например, называют "шаманством".
Чего ты кидаешься на всех, как бешенная псина? Я написал, что это проверенный способ. Он проверен лично мною, потому что я успешно реализовался и как C# программист, и как геймдевелопер. Он проверен моими друзьями, которые сейчас работают геймдевелоперами в других странах.
>делать игры на юнити
Создавать игры сложно. Нужно понимать, что ты делаешь. Без хорошего знания языка ты будешь постоянно биться о стены, как слепой котёнок. Конечно, если твой предел мечтаний - это кликер для яндекс залупы, то тогда нет смысла изучать язык. Можно обойтись курсами и чатгпт.
>потому что я успешно реализовался и как C# программист, и как геймдевелопер.
А я успешно реализовался как президент успешной компании, бля буду, верь мне.
>Он проверен моими друзьями, которые сейчас работают геймдевелоперами в других странах.
Дефолтная манипуляция пиздабола - сказать что у тебя крутые знакомые для усиления вымышленного аргумента.
>Создавать игры сложно.
>Без хорошего знания языка ты будешь постоянно биться о стены
Ну тут ты уже и запалился окончательно безигорник. Начну с того что писать код это самое простое что может быть в создании игры, а закончу тем что знание языка никак не влияет на сложность написания логики, на работу с точными науками, на работу с функционалом движка. Вы конечно, фантазеры, потрясающие ребята, в ваших фантазиях язык программирования это что то нечто невероятное когда по факту яп это тупо синтаксис с горстью функций.
Анон правильно сказал, углубляться в изучения яп отдельно от движка нет абсолютно никакого смысла ибо это тупо блять не профитно. И любой адекватный девелопер это понимает, кроме вас конечно фантазеров-пиздаболов.
Как я говорил, говорю, и буду говорить - самый лучший и правильный способ вкатиться: учишь базовую базу языка -> тыкаешь кнопочки в движке -> гуглишь информацию которая нужна здесь и сейчас. Не осилил?, - не осилил бы никогда, даже если бы прошел тысячи курсов, не осилил бы, смирись.
>учишь базовую базу языка -> тыкаешь кнопочки в движке -> гуглишь информацию которая нужна здесь и сейчас.
ЭТО БАЗА
>>4838
Вы оба во многом правы. Я считаю что для инди-геймдева нужен баланс между этими противоположными подходами.
Достаточно иметь представление о популярных алгоритмах и структурах данным, знать ООП и несколько популярных паттернов. По сути, нужен только Синглтон, Композиция и Наблюдатель. Ну может еще и Фабрика.
Если углубляться в кодерство глубже то сразу появится желание не игру делать, а писать еба-универсальные-расширяемые решения с поддержкой кроссплатформенности и модинга. Или хуже, анон будет заниматься байтоебством, многопоточностью, оптимизацией производительнсоти скриптов и тогда все, пиздец, долгострой на 5 лет.
Нужно понимать что инди-игры мало общего с энтерпрайзом и разработкой серьезного софта имеют. Но и без начальных знаний получится такой >>4605 говнокод с которым невозможно работать будет.
Оседлай Торрент.
Моя игра не подразумевает 3д ассеты.
Я ничего не понял. На ютубе только один идус уроки сонным голом преподаёт. Можно видео с демонстрацией, обзор, пример игры как я описал, хоть что-то чтоб время не тратить?
Я что-то нигде никогда не видел модов игр на юнити, кроме как если авторы игр сами не включали поддержку моддинга.
Это невозможно, да?
Какие индусы, зайди на сайт, глянь туториалы, скачай обучающий проект.
https://orkframework.com/guide/tutorials/2d-rpg-quickstart/start-2d-rpg-quickstart/
Чего вас носом во всё тыкать надо..
Примеры игр, ну вот например
https://youtu.be/wUQQqRsqRfQ
Это тоже делалось раньше на нём, сейчас хз
https://store.steampowered.com/app/1104600/Rune_Fencer_Illyia/
Там на форуме есть раздел шоукейсов, можно посмотреть проекты.
>Это невозможно, да?
https://wiki.nexusmods.com/index.php/Unity_modding_tools
Автор программы для работы с архивами Unity активно её продает.
https://forum.zoneofgames.ru/topic/36240-unityex/
Попробуй и тут отпишись.
Короче есть ui. Когда чел кликает на кнопку "настройки", то закрывается панель с главным меню и открывается панель настроек. Я забиндил, что когда чел жмёт на геймпаде кнопку "B", то перекидываем чела назад - закрываем настройки, показываем главное меню.
Проблема в том, что в настройках есть dropdown-ы. Если какой-то из них открыт, то, при нажатии на "B", выпадающий список закрывается. Это реализовано самой юнити.
Поэтому вопрос: как сдетектить, что сейчас открыт какой-то dropdown? Чтобы при нажатии на "B" не перекидывать чела назад, в главное меню, ведь чел хочет закрыть dropdown, а не перейти назад
Я не тот анон которому ты отвечал, но скажу что выглядит довольно интересно.
Правда, что плохо, этот фреймворк явно сделан с прицелом на нокод-разработчиков. То есть там будет много ебатни с кастомными юнити интерфейсами которые существуют только для того чтобы нокод-манькам не приходилось программировать.
Помните, был фреймворк Fungus? Вот, он в итоге и загнулся от такой идеологии. Разработчик просто устал делать тулзы для нокод-макак.
Алсо, а ты сам им пользовался, анон? Чем он тебе в первую очередь понравился? Какие самые крупные подводные камни?
Я пользовался более старой второй версией. Привлекло как раз то, что куча функционала реализовано из коробки и не надо делать сложные фичи с нуля (что заняло бы кучу времени).
В отличии от других подобных ассетов, где у тебя захардкожен какой-то функционал, а чтобы что-то поправить/допилить проще всё переписать с нуля, эта штука более гибкая и можно экспериментировать с тасканием нодов как душе угодно.
Подводные камни могу сказать по старой версии 2.
Например она была заточена полностью под 3д, чтобы адаптировать проект под 2д, пришлось немножко покодить. Потыкал новую версию, вижу там они добавили полноценную поддержку 2д.
Второй минус - хреновый встроенный редактор меню.
Всё что касается создания UI это боль. В новой версии вроде как тоже это исправили, но досконально её ещё не щупал.
Третий минус - я так до конца и не разобрался с api. Какие-то вещи могу делать через него (типа вытащить значения статов игрока), какие-то остаются для меня загадкой, а документация не особо полезна. Но может просто я тугой.
Начал потихоньку осваивать юнити и с# вместе с ним
В планах попробовать свои силы в гей-деве (до этого 10 лет, да и сейчас пашу в ентерпрайзе)
Есть какой-то чат, куда я могу обращаться с тупыми вопросами новичка? (ну типа, что такое префаб, нахера он нужен, где лучше писать обработку хп персонажа, итд итп)
Пока что иду по англоязычным роликам с ютуба, но все пишут по разному, а хотелось бы понять как правильно.
Например у одного:
Collider2D[] collider = Physics2D.OverlapCircleAll(groundСheckObj.transform.position, 0.3f);
А у другого
RaycastHit2D rayCastHit = Physics2D.Raycast(groundRay.transform.position, -Vector2.up);
Или можно прямо тут такую хуйню спрашивать?
> Например у одного
> А у другого
Так это разные вещи.
> Collider2D[] collider = Physics2D.OverlapCircleAll(groundСheckObj.transform.position, 0.3f);
Коллайдер - это фигура и с помощью нее ты можешь вычислить пересечения с в определенной зоне.
> RaycastHit2D rayCastHit = Physics2D.Raycast(groundRay.transform.position, -Vector2.up);
Рейкаст это очевидно линия которая собирает и с помощью нее ты вычисляешь столкновения в определенном направлении.
> Можно ли?
Можно все, но желательно перед этим попробовать спросить у гугла
> до этого 10 лет, да и сейчас пашу в ентерпрайзе
> я могу обращаться с тупыми вопросами новичка?
Охуенно ты поработал в тырпрайзе, что до сих пор себя новичком считаешь и не можешь самостоятельно выяснить в документации, что такое
> Collider2D[] collider = Physics2D.OverlapCircleAll(groundСheckObj.transform.position, 0.3f);
или
> RaycastHit2D rayCastHit = Physics2D.Raycast(groundRay.transform.position, -Vector2.up);
мимо
Обычные решения вроде Орка слишком уж завязаны на монобех, но дело даже не в скриптах на мобах, а в том что слишком много жрет навигация, просчет физики активных объектов и просчет кадров анимации (особенно если мобы в 3д и со скиннинг мешем).
>>5465
Такие тупые вопросы правильнее всего спрашивать у ЧатЖПТ или любой другой популярной нейросетки. Ответы будут в 95% случаев правильные и намного быстрее чем где-либо еще.
>поработал в тырпрайзе, что до сих пор себя новичком считаешь
Ну потому что в тырпрайзе очевидно другой стек и другие проблемы. С гейдевом, физикой, рендерами и прочим я сталкиваюсь вот последние дней 5. Поэтому новичок, что поделать.
>>5489
>Коллайдер - это фигура
>Рейкаст это очевидно линия
Естественно я это прочитал в доке. Я пытаюсь понять как правильно. Какие минусы и подводные в обоих случаях? В каком случае логично использовать то или иное? Кто-то например двигает объект через transform.position, кто-то через MoveTowards кто-то через Lerp
>>5539
>Такие тупые вопросы правильнее всего спрашивать у ЧатЖПТ
Попробую, спасибо.
Нашел вот такое видео - стоит ли вообще смотреть подобное? https://youtu.be/YKf1Yo58RYA
Делаю так, но иногда он трясется, видимо пытаясь выровняться.
https://paste.ofcode.org/iHvG6eMfEghZbX6jVVaMVW
На вход скрипту нужен пустой gameobject внутри персонажа, расположенный чуть ниже ног.
И как там с vr? Качество сильно хуже чем у UE?
Можно ли пилить архитектурный дизайн с домиками и шоб человечки ходили?
>Аноны, а существуют под Юнити подобные Орку
Что-то, что гордо называется ФРЕЙМВОРК могло бы и из коробки идти на ДОТСе или чем-то ещё, да обязательно всё в джобах и бурсте. Иначе смысл то какой? Накодить на синглтхреад монобехах любой может
848x480, 0:15
Одебилившая от оптимизаций наносекунд соевая хуйня, ты уже заебала...
Соевая хуйня это ты, одебиливший от статтеров 30фпсный 4080требующий сишарпокарась
>Что-то, что гордо называется ФРЕЙМВОРК могло бы и из коробки идти на ДОТСе
Ты о чем вообще? Такое не может идти из коробки. Это тупо прикладные инструменты которые выполняют ряд узких задач. Сделать контроллер персонажа с перемещением по карте и пошаговыми боями с мобами, например, в случае Орка.
>Накодить на синглтхреад монобехах любой может
Ну удачи тебе кодить сотни классов по паре тысяч строк каждый чтобы получить стоковый функционал РПГ-мейкера в Юнити. Такие велосипедисты обычно годами прототипы делают.
>>5631
Ты не прав. Некоторые современные жанры вообще не переносят монобеха. Ладно еще реалтайм стратегии, но любой клон вампир сурвайвола просто невозможно нормально сделать на монобехе. Какие ухищрения не придумывай, у тебя на экране почти всегда сотни мобов и даже тупо навигацию монобех уже не вытягивает, не говоря уже о более сложных вещах.
Если тебе нужен аж ебать его ФРЕЙМВОРК чтобы пошагово ходить или если ты пердолик, который, с какой-то целью, портирует функционал эрпогэ мейкера в юнити то удачи, конечно, в твоём нелёгком пути
Спизженными ассетами пользуешься?
На какой версии у тебя всё вылетает то?
>Какая версия юньки самая стабильная
Нет таких.
>Если тебе нужен аж ебать его ФРЕЙМВОРК чтобы пошагово ходить
Любому нормальному человеку нужен фреймворк для того чтобы сделать с геймплеем вроде Файнал Фэнтези 7. Только ебанутый будет этот функционал с нуля в Юнити писать.
На самом деле кроме того чтобы пошагово ходить дохуя еще нужно:
- Управление несколькими режимами игры (на глобальной, локальной карте, в бою).
- РПГ-система со статами, абилками, статусами, экспой.
- Инвентарь и предметы, дневник и записи о квестах, журнал мобов и т.п.
- Поведение мобов в различных режимах игры, поведение боссов.
- Тулзы для создания и управления всеми сущностями выше.
Пошаговый бой и менюшка с выбором действуй - это только 1%.
Ori and the Will of the Wisps - поскольку она сделана в Unity - она все таки как 2D сцена построена или 3D у которой ось камеры ограничили?
Не могу понять, с одной стороны и паралакс во всей красе - с другой, куча освещения и взаимодействий которые врядли в 2D спрайтами захуяришь.
3d не сушествует. По любому проецируется на экран который 2д или в вр на два экрана. Все игры по настоящему в 2д.
Ты понял вопрос
Вот, детишки, что бывает, когда прогуливают школу. Не знают, что сетчатка 3д, а не плоская.
640x360, 3:06
3d
1280x720, 1:52
Трусы-тред, ты? Неужели смог зайти дальше Юнити Хаба?
ПОЧЕМУ ОН А НЕ Я!?!?!?
>>6362
Вот, учись, фалька, как Юнити разрабов привлекает. И у них движок даже не говно, не то что у тебя. твоя Машаня так может?
всему своё время
>Вроде не сложно, но вот скрипты на си шарпе это конечно жесть, и вот как это все запомнить и реализовывать как ты хочешь, очень сложно, да уж..
Челище. Дрочить код и архитектуру скриптов это самое простое что есть в создание игры. Вот рисовать графику, делать модели, генерить музыку с текстом, это уже гемор и напряжно.
Заменяется нейросетями.
Нейросети не умеют например в тайлы или в полноценное 3д.
Можно их использовать ситуативно, но если совсем заменить роботом кожаного получится говно.
Где ты увидел кал? Музыка норм, вполне дженерик для фентези игр. Графон для пиксельного рогалика тоже норм. В чем каловость?
Сгенерино за несколько минут, еще с десяток на пост обработку. И можно использовать в игре.
Ладно. Услышал тебя. Игрок рассудит.
>Вот, учись, фалька, как Юнити разрабов привлекает. И у них движок даже не говно, не то что у тебя. твоя Машаня так может?
¹⁶ много может усиленная молитва праведного.Иакова 5:16
© Библия Онлайн, 2003-2024.
А если влагалище лизать, то молись не молись - получишь куй! =)
У меня юнити кушоет 2-3 ГБ. И ещё вижуал студио кушоет 2 гб. А в целом система кушоет около 15 гб. Думаю для комфортной разработки в нынешнее время лучше брать 32 гб.
Щас прибегут шизы и будут втирать, что в 2к24 16 кеков это мало для браузера и у них всё лагает.
По факту от игоры зависит, твой комп должен тянуть твою игру и само юнити сверху. Я на говнопеке с 8гигами ддр3 делал мини проекты на стимВР, но с трудом и болью.
Бери 16 и не еби себе мозги.
Но ведь реально мало. А если сборку запустить с IL2CPP, то отожрёт ещё несколько гиг. С 16 ГБ тебе придётся постоянно контролировать, что у тебя сейчас открыто. Закрывать весь сторонний софт, браузер и т.п.
16 гигов мне хватает чтобы был открыт бровзер с таким количеством вкладок, что у меня новые вкладки буквально не влезают в ширину фуллхд монитора (вкладок 60 на вскидку) плюс дискок, торрент, стим, телега, юнити с 3д игорой с овер миллион полигонов в кадре и текстурами 4к пбр и даже ебучий антивирус открыт.
Чем больше ОЗУ тем активнее система их жрёт, вроде как, поэтому обладатели 64 гигов думают что у всех, у кого меньше чем у них, всё всегда лагает
Поздравляю у тебя засранная система, или криво настроенная. В чистой десятке с вырезанной хренью, и правильно настроенное вообще копейки ест.
>IL2CPP
Вот у меня открыт большой 3д проект+студия+хром с парой вкладок и музыкой.
Если всё сделать с умом можно преспокойно и без лагов сидеть на 8гб. Да что говорить, у меня на ноуте 4гб, и я даже там работаю в юнити, но тут разве что дополню что там лагает да, ноут копеечный за 20к.
>В чистой десятке с вырезанной хренью, и правильно настроенное
Так-то да, если запустить и посмотреть на визуалку и юнити, то кушают не много. Но со временем, пока работаешь, кушонье растёт. Плюс я могу в процессе запускать мобильный эмулятор, чтобы быстро проверить какие-то штуки. Другие софтинки и так далее.
>на 8гб
Помню раньше сидел с юнити 2018 на 8 ГБ и собирал мобильные билды. Это был ад нахуй.
Короче минималка сейчас 16 ГБ, это прям край. И то, тебе при этом придётся дрочиться, как ты говоришь "ПРАВИЛЬНО НАСТРАИВАТЬ" ( ода, кайф ковыряться в системе каждый раз, трястись чтобы ничего лишнего не запускалось, чтобы видосики не проигрывались в хроме не дай бог).
Нажал какое-то хуйню и стал пик вылезать, заебало. Шо это и как отключить кто знает?
Пробовал, после студии вообще кал не подходящий, так бы с радостью пересел, еще ридер чекал, тоже кал.
1. Памяти на диске хватает, проблем с интернетом нет;
2. Запускал от имени администратора, не помогло;
3. OC: Windows 10;
4. Брандмауэр Windows не бугуртит;
Что делать, аноны? Помогите
Была подобная трабла год назад. И так-же ебатня с пакет менеджером не дающим качать пакеты в самой юньки.
Опытным путем выяснил что провайдер блочил толи айпи, толи соединения.
Советую попробовать: Почистить винду, удалить юньку и хаб со всеми папками вручную, поставить впн и заного скачать и установить. Можно так-же тупо просто и без всего этого с впн. Еще можешь попробывать для теста сотик подключить и посмотреть с него начнет ли закачку.
Короче от себя советую попробовать копать в сторону проблем блока соединения. Еще хорошо если для теста есть ноутбук или друг, другой комп чтоб тоже протестить что на нем.
Доброй ночи, аноны.
Скачал пару дней назад движок - делаю ни на что не претендующий шутанчик для нас с другом (нормальные игры у нас не тянут). Подскажите, где бесплатно взять 3д модели сочных бабищ, типа пикрилов? 4К и вот эти все хайрез приколы необязательны.
Быстрый ресёрч особо не дал результатов
>Еще хорошо если для теста есть ноутбук или друг, другой комп чтоб тоже протестить что на нем.
Скачал на свой старый, разъебанный, но рабочий ноут 2007 года выпуска (друга нет, а тестить больше не на чем), на нем все скачивается и работает
public void ShowPopup()
{
Vector3 lastClickPosition = Input.mousePosition;
Instantiate(popup, new Vector3(lastClickPosition.x, lastClickPosition.y + 25, lastClickPosition.z), Quaternion.identity).transform.SetParent(gameObject.transform);
}
В SetParent есть worldPositionStays. Поставь true.
А ты уверен, что тебе стоит эту залупу использовать? Есть же божественный фотон. Посмотри движки Квантум и Фьюжен.
>А ты уверен, что тебе стоит эту залупу использовать?
не уверен, я вчера впервые что-то с сетью начал делать, сначала просто хочу обмен текстовыми сообщениями осилить
Спасибо! Я не нашёл там того, что хотел изначально, но остановился на пикриле, лол. Подумал, что так с наскока не вывезу анимации, а эти чибики не сильно-то от капсулы отличаются.
Скриншоты игры крепить не буду, потому что крепить там особо и нечего: карта, наклёпанная про-билдером и бегающие капсулы (хочу добавить мувсет наподобие титанфолла)
Короче, спиздил я контроллер персонажа от 3 лица, Инвектор Чарактер Контроллер называется.
Все вроде норм, но смотрю - камера жестко проскакивает через стены, не всегда а где-то в 50% случаев коллизия не обрабатывается как надо.
Сегодня ебался весь день с огромным классом для управления камерой. Смотрю, а там метод который коллизию по 4 рейкастам определяет в самом конце вот что возвращает:
return hitInfo.collision && value;
При этом метод проверяет ЧЕТЫРЕ рейкаста и каждому передается параметр: out hitInfo.
Естественно, что к концу всех проверок hitInfo иногда внезапно становился null.
Это же пиздец, разве нет? Опечатки тут быть не может. Автор кода поленился хотя бы загуглить что значит out. Ну или посчитал что по логике все 4 рейкаста должны одновременно срабатывать. И главное, баг легко невооруженным глазом заметен, неужели ему было просто лень исправлять?
Да, это пиздец. Но это юнити, привыкай. Все их примеры полистай и популярные ассеты. Поэтому в компаниях пишут кастомные решения всегда, если это не дно-контора, которой и ассеты норм.
Я на работе наткнулся на баг в текстмеше, полез его править. Охуел с говнокода внутри, там просто пиздец, при том что я не адепт клин кода, но там жопа полная и перформансом там и не пахнет. Больше охуел, что юнитидебичи уже правили этот код, но все-равно обосрались. В итоге их охуенное решение крашило приложение тупо нуллрефом. Ну вот как так можно то, блять?
Скинул порофлить на реддит, местные соевички меня засрали, типа код охуенный, не пизди тут.
На двощах тоже пару придурков нашлось.
Ну охуенный так охуенный, базару ноль, больше пиздеть не буду.
Алсо, хуярил-хуярил я над своим раннером, в итоге на релиз-билде в андроиде после определенного плей-тайма получаю ошибку:
A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x6f6ffaaec8 in tid 27847 (UnityMain), pid 25691
Охуенно, блять. И вот че с этим делать - хуй знает. Поскольку сборки были редкие, а коммиты жирные, т.к. проект чисто вечерами, то понять на каком этапе пиздец - нереально.
Кстати смотрел на них как то, и понял что не так то и просто их сделать хорошо. Особенно костюмы... Но и волосы и пропорции лица, и позы ног. По факту не намного меньше скила надо, чем на полноценные модели.
>Охуел с говнокода внутри, там просто пиздец, при том что я не адепт клин кода, но там жопа полная и перформансом там и не пахнет.
Я тоже не адепт и никогда профи-кодером и не был. Вообще, я готов даже смириться с тормозным и не читаемым кодом, но код же блять должен работать хотя бы без вылетов и очевидных багов.
Вот смотрим обычные игры в Стиме на том же Юнити, ведь большинство из них более-менее норм работают, без камеры застревающей в текстурах. Разрабы худо-бедно но тестируют и полишат свои творения.
Почему тогда авторы Юнити-ассетов не могут поступать также? Почему потребители терпят все это говно? И ведь даже от отрицательных отзывов толку мало, такой отзыв просто потонет в море восторженных пятерок от ньюфаней которые ассетом почти не пользовались.
>в итоге на релиз-билде в андроиде после определенного плей-тайма получаю ошибку
Да, мультиплатформа - это отдельная жопоболь. Помню как билдил одно веб-приложение. В настольном хроме все норм было, а мобильный хром зачем-то растягивал содержимое канваса и показывал просто ужасные пиксели. И это я еще даже другие браузеры не трогал.
Привыкай.
Из-за низкого порога вката любой васян может нагавнокодить и юнити всё это проглотит, а потом мы здесь все вместе удивляемся почему всё такое кривое.
Да даже здесь дурачки всю хуйню в апдейт суют, а потом жалуются на низкую производительность, хотя делегаты и события были придуманы задолго до юнити.
Как прожённый блендораст, говорю. Самое сложное это текстуру нарисовать, вот такие чтобы не вырвиглазные.
Моделить это еботу можно за 3 часа, от идеи, до анимации, по крайней мере у меня так было.
>но код же блять должен работать хотя бы без вылетов и очевидных багов
Полгода назад ковырял ironsource. Поставил стабильную версию хуюнити, под нее стабильную гарантированную сдк версию ironsource, которая вот прям проверена под юнити, вот прям бля буду, отвечаю пацаны. Сурс: траст ми бро.
Наберите воздуха.
Это говно тупо крашится.
Откат на старые версии - тоже самое. Пошел курить форумы, нашел чела, который отписал версию, на которой более-менее норм, но там уже начинаются приколы гугл-сдк.
Челы лутают миллионы, десятки и сотни миллионов долларов, но выкатывают сырую-кривую неработающую поебень, которая тупо не работает.
В компаниях тоже самое постоянно было, если интеграция сдк, фейспук, гугл, монетизации и т.д. и т.п. - обязательно будет какой-то пиздец и обязательно команда застрянет на недели неотлавливаемых багов.
>мультиплатформа - это отдельная жопоболь
Я думал еще выпустить одну гоночку под андроид, т.к. по срокам быстро и там постоянно есть аудитория, но вспомниаю всю эту еблю, и этот баг с крашем и ошибкой "братан, ну чот случилось с памятью, я ваще хз0)00))" твердо и четко решаю дальше если и заниматься индюшатиной, то только под пука.
Эти нонстоп заебы после основной работы просто уже добивают. А это я еще не трогал подключение вышеупомянутых сдк...
>154
Классика. Особенно помогает если перезапустить проджект.
Держи. Еще меня поразило что логика рейкаста из левого нижнего экрана отличается от всех остальных. Скорее всего кодеру было просто лень изменять cullingDistance где-то еще.
Благо, ситуаций где коллизия только с одним этим рейкастом происходит очень мало и вроде никаких багов из-за этого.
bool CullingRayCast(Vector3 from, ClipPlanePoints _to, out RaycastHit hitInfo, float distance, LayerMask cullingLayer, Color color)
{
bool value = false;
if (showGizmos)
{
Debug.DrawRay(from, _to.LowerLeft - from, color);
Debug.DrawLine(_to.LowerLeft, _to.LowerRight, color);
Debug.DrawLine(_to.UpperLeft, _to.UpperRight, color);
Debug.DrawLine(_to.UpperLeft, _to.LowerLeft, color);
Debug.DrawLine(_to.UpperRight, _to.LowerRight, color);
Debug.DrawRay(from, _to.LowerRight - from, color);
Debug.DrawRay(from, _to.UpperLeft - from, color);
Debug.DrawRay(from, _to.UpperRight - from, color);
}
if (Physics.Raycast(from, _to.LowerLeft - from, out hitInfo, distance, cullingLayer))
{
value = true;
cullingDistance = hitInfo.distance;
}
if (Physics.Raycast(from, _to.LowerRight - from, out hitInfo, distance, cullingLayer))
{
value = true;
if (cullingDistance > hitInfo.distance) cullingDistance = hitInfo.distance;
}
if (Physics.Raycast(from, _to.UpperLeft - from, out hitInfo, distance, cullingLayer))
{
value = true;
if (cullingDistance > hitInfo.distance) cullingDistance = hitInfo.distance;
}
if (Physics.Raycast(from, _to.UpperRight - from, out hitInfo, distance, cullingLayer))
{
value = true;
if (cullingDistance > hitInfo.distance) cullingDistance = hitInfo.distance;
}
return hitInfo.collider && value;
}
Держи. Еще меня поразило что логика рейкаста из левого нижнего экрана отличается от всех остальных. Скорее всего кодеру было просто лень изменять cullingDistance где-то еще.
Благо, ситуаций где коллизия только с одним этим рейкастом происходит очень мало и вроде никаких багов из-за этого.
bool CullingRayCast(Vector3 from, ClipPlanePoints _to, out RaycastHit hitInfo, float distance, LayerMask cullingLayer, Color color)
{
bool value = false;
if (showGizmos)
{
Debug.DrawRay(from, _to.LowerLeft - from, color);
Debug.DrawLine(_to.LowerLeft, _to.LowerRight, color);
Debug.DrawLine(_to.UpperLeft, _to.UpperRight, color);
Debug.DrawLine(_to.UpperLeft, _to.LowerLeft, color);
Debug.DrawLine(_to.UpperRight, _to.LowerRight, color);
Debug.DrawRay(from, _to.LowerRight - from, color);
Debug.DrawRay(from, _to.UpperLeft - from, color);
Debug.DrawRay(from, _to.UpperRight - from, color);
}
if (Physics.Raycast(from, _to.LowerLeft - from, out hitInfo, distance, cullingLayer))
{
value = true;
cullingDistance = hitInfo.distance;
}
if (Physics.Raycast(from, _to.LowerRight - from, out hitInfo, distance, cullingLayer))
{
value = true;
if (cullingDistance > hitInfo.distance) cullingDistance = hitInfo.distance;
}
if (Physics.Raycast(from, _to.UpperLeft - from, out hitInfo, distance, cullingLayer))
{
value = true;
if (cullingDistance > hitInfo.distance) cullingDistance = hitInfo.distance;
}
if (Physics.Raycast(from, _to.UpperRight - from, out hitInfo, distance, cullingLayer))
{
value = true;
if (cullingDistance > hitInfo.distance) cullingDistance = hitInfo.distance;
}
return hitInfo.collider && value;
}
Как прочту, начну перечитывать сидя за компьютером и повторять все действия.
Вопрос такой. Кто нибудь делал процедурно генерируемые уровни(3D)? Что посоветуете почитать и посмотреть по этому поводу? Идея заключается в том, что персонаж двигается вниз по пещере с небольшими подъемами и спусками. Делать игру еще не начал, но хочется разобраться в вопросе, ибо в ручную собирать километры пещер нет желания.
>Есть же божественный фотон. Посмотри движки Квантум и Фьюжен.
Есть фишнет и на крайняк миррор. Более чем уверен, что рядовому индюку фотон на хуй не вперся.
Хочется чисто минимальный формат и без лишних аллокаций. Чтобы каждый перевод хранился в отдельном .csv или .json.
>Более чем уверен, что рядовому индюку фотон на хуй не вперся
Фотон позволяет быстро запустить сетевую игру, потому что тебе не нужно ебаться с серверной частью. А с новым детерминированным ECS-движком так вообще написание сетевой игры вышло на новый уровень.
Ну совсем не ебаться все-таки нельзя. А так - это же делают фишнет и миррор, да и практически все остальные фреймворки, если это не самопися.
>А так - это же делают фишнет и миррор
Что именно? Фишка фотона в том, что ты создаёшь проект, пишешь там логику, далее кидаешь любому билд и вы уже играете вместе по сети на мобилках, в браузере, где угодно.
>Так на пике же обычный cell/toon shading
Ты даже не представляешь, как глубока эта нора. cell/toon это чем я занимаюсь.
>обычный cell/toon shading
Это просто обвести модель, вывернуть нормали и накинуть фейковые тени, здесь же побольшей части хенпейнт.
Я не вдавался во все подробности, только туториалы повторял. Помню, что было не так сложно. Мне моделировать сложнее было лол. Ну может ты и прав.
Примерно так видимо и выглядит разработчик этого бессмысленного говнолаунчера, который нихуя не запускает.
Поясни?
Если это плаг-энд-плей, то тебе точно также нужно будет кидать компоненты на объекты, на сцену, определять что есть что, прокинуть какое-то лобби и т.д. И если это "преимущество", то практически все фреймворки предоставляют такой базовый функционал. Но есть и более высокоуровневые фреймворки с визуальным скриптингом, даже не скриптингом, а тупо конфигурацией, буквально кнопка "сделать пиздато".
Если это какая-то магия, о которой я не в курсе, типа ты говнокодишь на на синглплеер, собираешь апку, а фреймворк магически детектит изменение состояния и каким-то образом транслирует его на всех игроков, то это магия пиздец и вдобавок она должна как-то различать, какие данные отправлять, а какие нет, на что потребуется еще одна магия. Либо срать килотоннами данных и как-то уметь их сжимать, на что, опять же, треубется магия. А ее в наш мир не завезли.
>Поясни?
Фотон предоставляет облачный сервис. У них на сайте создаёшь проект, к нему получаешь ключ. Потом по этому ключу работает сеть в твоей игре, идёт обмен данными через их облачные сервера. Лобби тоже у них сразу идёт из коробки. Просто пишешь JoinRandomRoom("критерии") и всё, ты уже в игре. То есть ты можешь максимально быстро создать и запустить сетевую игру.
>Если это какая-то магия, о которой я не в курсе, типа ты говнокодишь на на синглплеер, собираешь апку, а фреймворк магически детектит изменение состояния и каким-то образом транслирует его на всех игроков, то это магия пиздец
Если мы говорим об их новом движке Квантум, то да, там именно такая магия. Потому что в движке всё детерминировано и сама система построена на ECS. Ты пишешь код симуляции, а ей на вход нужен лишь ввод. Причём неважно откуда этот ввод идёт. Это может быть риплей, это может быть синглплеер, это может быть онлайн через их облачный сервис.
>Фотон предоставляет облачный сервис.
Юнити тоже предоставляет облачные сервисы, тоже бесплатно до определенного порога. Да и в целом много сервисов с большим порогом и подобной функциональностью.
Плюс, разве что, только в том, что в фотоне это идет одним набором.
>Если мы говорим об их новом движке Квантум, то да, там именно такая магия
Нет, ты тупо пишешь common/shared часть для клиента и сервака. Причем с ограничениями их фреймворка.
>A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x6f6fe96df8 in tid 10194 (UnityMain), pid 9324
Блять, это пиздец. Два дня въебал в поиск проблемы и нихуя. Поотключал все либы, все аналитики-хуитики, все сторонние плагины, вырубил кэшинг сейвов на андроиде, вырубил запись-чтение сейвов, прошелся по статическому батчингу, включил авто-гпу-апи, выключил полностью стриппинг и все-равно ловлю эту залупу. Что делать, куда копать - вообще хз.
Ну вот просто какого хуя то блять! 90% завершенности, 8 месяцев работы и такая пизда. Чуть ли не все в мусорку. Походу мой пра-пра-пра-дед реально пришел и насрал под дверь цыганке и теперь все проклято, другого объяснения нет.
И да, в рот ебал вонючий андроид. Просто убожество ебаное. Просто параша.
>Юнити тоже предоставляет облачные сервисы, тоже бесплатно до определенного порога
Это те самые Юнити, которые до этого забраковали несколько сетевых решений? И до сих пор непонятно к чему идут?
>Да и в целом много сервисов с большим порогом и подобной функциональностью
Ты говоришь про сервисы, где ты размещаешь headless юнити билд. Это дополнительная сложность, когда тебе нужно разрабатывать и клиент, и сервер. И потом серверную часть запускать по миру, следить за расходами, ловить ошибки и тому подобная работа.
>Нет, ты тупо пишешь common/shared часть для клиента и сервака
Какой сервак? Ввод передаётся между клиентами через облака фотона. Ты сейчас можешь создать в юнити проект на квантуме с ботами и сложной физикой, и запустить это всё по сети. Тебе не нужно создавать headless сервер, где-то их запускать, разбивать по региона.
Классно делать сетевые игры без сервера. Любой васян сможет прописать читы.
hitInfo - это структура RaycastHit, она null быть никак не может
заводи свою таблицу с переводом, схороняй в формате csv и читай её любым ридером, например этим https://github.com/KBEP/Jaco_Unity/tree/main/Assets/Plugins/Jaco/XSV
https://www.reddit.com/r/Unity3D/comments/1chomg7/unity_6_preview_is_now_available/
ГПУ резидент дравер это наебка для гоев.
Снижает нагрузку на проц ценой повышения нагрузки на видяху.
В то время как в визуально нагруженных игорах упор всегда в видяху и проц за 15 к может изи нагрузить 4080 за миллиард долларов в 4к сам при этом будет нагружен не полностью.
Если и делать оптимизон, то абсолютно не путем перекладывания работы с ЦПУ на ГПУ, это выстрел себе в хуй. Лучше бы под многопоток лучше оптимизировали
Как сделать ярлыки в контекстном меню закреплённого элемента панели задач шиндовс?
Есть подходящий интерфейс в дотнете для этого?
(Хочу чтоб если мою игру закрепить на панели задач, были ссылки на разные режимы, ну знаете, как в браузерах, "открыть новое окно", "открыть в режиме инкогнито", хочу так же)
а нет, ещё можно через вин формс
void Start()
{
if (!Application.isEditor)
{
trayThread = new Thread(delegate
{
trayMenu = new global::System.Windows.Forms.ContextMenu();
this.trayMenu.MenuItems.Add("Menu", new EventHandler(OnMenu));
trayMenu.MenuItems.Add("Exit", new EventHandler(OnExit));
trayIcon = new NotifyIcon
{
Text = "Game",
Icon = icon,
ContextMenu = trayMenu,
Visible = true
};
global::System.Windows.Forms.Application.Run();
});
trayThread.IsBackground = true;
trayThread.SetApartmentState(ApartmentState.STA);
this.trayThread.Start();
}
}
Это трей. А мне нужно меню закрепа на панели задач.
Это те надо копаться в оригинальном шарпе не связанном с юнити. Сам юнити позволяет делать любые вызовы в систему.
Все еще прошу помощь
>в формате csv
А не лучше ли JSON? У юньки из коробки есть парсер джсон. Либо через пакеты можно подключить Newtonsoft.Json
Понял. А стоит ли разделять переводы по отдельным CSV-файлам? Насколько помню, переводчики берут базовый файл (с английским), далее его загружают в систему и на основе тамошних строк делают перевод. Потом ты отдельно можешь загрузить каждый перевод.
я индюшатник и делаю как проще, у меня в таблице такие колонки:
1. комментарий - проще, когда он первый
2. ключ, типа #open_door
3. значение на русском: ОТКРЫТЬ
4. значение на англицком: OPEN
5,6,7... значения на др. языках
потом это всё в словарь закидываю и использую
Это да. Раньше SDK устанавливалось вместе со студией, что было очень удобным. А теперь ты должен пройти через 10 кругов анального ада, чтобы установить SDK для новой версии андроид
>Это те самые Юнити, которые до этого забраковали несколько сетевых решений?
Тебе шашечки или ехать?
>Какой сервак? Ввод передаётся между клиентами через облака фотона.
Чел...ты тупо пишешь серверную часть, которая будет крутится у них на серверах и на клиентах, т.е. шейред часть. Этой "революции" 100 лет в обед.
Что такое "облако фотона" на твой взгляд тогда?
Кто-то должен быть серваком и хендлить состояние других игроков. Иначе это называется синглплеер, когда у каждого своя игра и своё состояние игры. А синхронизироваться вы будете тупо на словах, лол. Как раньше в шахматы по почте играли, только еще пизже, это даже не читерство, это тупо каждый сам себе сервер царь и бог, т.е. полная хуита.
>>8252
Да, уже нашел. Хз, видимо всевышние смиловались надо мной. Случайно начал рыть, все, что динамически может трогать память. И вышел, что отъебывает видеоплеер.
Естессн, рукожопые юнитихуилы поднасрали и нихера не поправили.
https://forum.unity.com/threads/android-crash-when-videoplayer-stop-is-executed.1361863/
Зачем покупать ассет для локализации, когда бесплатный пакет локализации от юнити даст пососать любому ассету.
Делал инвентарную систему по гайду, понял что не работает изза Resources.LoadAll. Сделал только эту функцию в три строки-они один хуй не работает.
Что я делаю не так? Кстати и почему она зануляет массив? В документации такого не видел
>читой докомунтоцию
Читол. Не помогло. Даже эту сраный скрипт в 3 строки сделал по по гайду. У индуса работает, у меня нет
920x518, 0:23
зачем ты пытаешься загружать ресурсы динамически? для чего это и зачем? ты же блядь даун нулевой
потому что изначально эта хуета выглядела вот так. И 21 строка там не работает нихуя.
И что бы долго не объяснять все это я сделал кот с этой функцией в 3 строки.
И он то же нихуя не работает.
Ну что, стало лучше?
Ну ты тогда хотя бы гайд индуса в тред принёс, чтобы я мог тебе стрелочками на скринах показать, в чём конкретно трабл.
Гайд индуса я практически перерисовал. Ну ща принесу
https://www.youtube.com/watch?v=qaNSGlkfjys&
Ща погодь, я посмотрю, проанализирую и накатаю ответ.
Посмотрел. Омерзительный видос. Автор нихуя не шарит, а лезет учить.
Там описывается как загрузить префабы из ресурсов в массив. И тут к тебя сразу вопрос. У тебя тоже префабы? InventoryItemData это что? И от чего наследуется?
Может быть анон не смог загуглить годных каналов? Может мы ему подскажем годноты?
Да я и не спорю, он же индус. Но инвентарную систему я смотрел не у него. у него только функцию Resources.LoadAll. Тк это единственное видео на ютубе с этой функцией
InventoryItemData наследуется отсюда. Инвентарная система от DanPos https://youtu.be/3dRTFgm9-Tc?si=ikITalJep0eFN3on&t=974 отсюда.
>с разгону научится пакеты ставить и с ними работать
А чего тут уметь? Он что ли Пакет Менеджер использовать не умеет? Там буквально несколько кликов надо.
Вы угараете что ли со своими Ресурсами? Это же какая-то технология древних из 2013 года. Там еще надо было папку правильным образом назвать и куда надо сунуть и только тогда работать будет. В этом треде у кого-то вроде жопа горела что он с именем папки проебался, а в документации не написано про это.
Там написано, этот еблан не стал читать)))
Бля, чел. Ты же сам видишь, что он нулевой. Ты же сам это выше написал. С нуля нужно разбираться в базе. В основах.
>Удаляй все и переписывай на Addressables.
Я не он, другой анон. Юзаю рерс лоадалл для всего стафа и сортирую по массивам и префабам.
Твоя Addressables что делает? В чем разница? По геморою в использование что проще и быстрее?
во-первых, папка с ресурсами должна называться Resources, у тебя - Resourses
во-вторых, создай в папке Resources отдельную папку для своих ебучих спрайтов, например, MyEbuchieSprites и грузи с неё:
sprites = Resources.LoadAll("MyEbuchieSprites", typeof(Sprite));
ебучая хуета с определением массива в 11-й строчке вообще не нужна, удали её нахуй
Адресаблес позволяет нормально управлять загрузкой и выгрузкой всего того стафа который тебе нужен и не засирать лишнюю память. Причем загружать можно не только из папки, но и с удаленного сервера.
Я вообще почти ничего про эти ваши Ресурсы не знаю. Но подозреваю что это говно не способно подгружать префабы и сцены. Какая-то убогая и урезанная по возможностям технология для старперов.
В общем и целом двачую этого.
Видос досмотреть до конце не смог. Он лепит ебучий линк, чтобы окончательно запудрить мозги всем зрителям. Нужно просто взять элементы и загрузить их. Нахуя там лепить идентификаторы? Консистентность сейв-файла достигается совсем другими методами.
Кошатник, ты два года уже тут с курсами дрочишься, до сих пор resources правильно написать не могешь. Пздц.
И правильно делает что не может. Ему нужно Адресаблес использовать, как все нормальные люди в 2к24 году.
Тогда как угодно папку называть можно будет, просто добавить ее в список и все.
Какая разница, он и там опечатку ебанет)))
Тоесть никакой разницы нету по твоим словам. Ясно, нахуй тогда было так кукарекать?
У меня с выгрузкой из ресурсов всё отлично и никакой ебли, по памяти и загрузки тоже самое, особенно из-за того что всё делается во время запуска игры. И интернет мне нах не нужен, делаю одиночные игры.
Твою?
Есть 100% способ. Переустанови винду. Не шучу. Если не веришь, поставь виртуалку с чистой виндой и поставь там.
Создавай тред со своим вопросом и обязательно прикрепи картиночку аниметянки в трусиках.
Сделал, также безрезультатно. Та же ошибка, тот же исход. Хочу еще добавить следующее: в путях, с которыми взаимодействует Unity (куда установлен хаб, сами версии Unity и т.д.), нет кириллических символов
Да я уже снёс этот кал, нахуй мне еще в лаунчерах этих разбираться, что бы сраную 3д модель достать. Благо увидел восклицательный знак во вкладке, после твоего поста, что эту говновкладку закрыть забыл.
Адьёс дауничи. Алибидерчи.
>Да я уже снёс этот кал, нахуй мне еще в лаунчерах этих разбираться, что бы сраную 3д модель достать. Благо увидел восклицательный знак во вкладке, после твоего поста, что эту говновкладку закрыть забыл.
Вместо тысячи слов.
Материал абсолютно упругий и у снаряда и у стен, на пикрилах: розовый цвет — направление до столкновения, красный — ожидаемый после (исходя угол отражения), черная стрелочка — фактическое направление движения. зеленый — нормаль столкновения.
Пои этом иногда летит корректно, как минимум первое отталкивание всегда (?) корректное.
Похоже дело серьёзное. Как бы не пришлось переустанавливать виндовс. Пробовал переустановить Unity?
Хуй знает чего ты там наделал, тащи код я не гадалка, хотя впрочем похуй, забирай то что работает 100%, пикрил1 баунс для рейкаста, пикрил2 для материальных объектов.
У меня вопрос про работу PhysX, а не про то как его костылить через код. По отрисовке линий видно что я знаю что и куда должно лететь.
2. Где можно почитать про огранизацию игрового цикла и точку входа в Юнити приложение?
1. Берёшь и пишешь без задней мысли
2. Вот тут https://docs.unity3d.com/Manual/ExecutionOrder.html
точка входа скрыта от пользователя