На Unity сделано много замечательных игр: Hearthstone, VRChat, Escape from Tarkov, Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие.
Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
Какие у Unity сильные стороны? Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
Какие у Unity слабые стороны? Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
На каких платформах работают созданные с помощью Unity игры? Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
Часто вижу скриншоты с красивой природой на Unity. Как такое создать? Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки? Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
Бесплатен ли Unity? Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение по книгам (печатные издания, актуальные электронные версии книг можно скачать на официальных сайтах издателей)
Обучение языку C# книги на русском языке:
1. C# для чайников Автор книги – Джон Пол Мюллер 2. Программирование на C# для начинающих 2е части Автор: Алексей Васильев 3. Head First. Изучаем C# 4е издание Авторы: Эндрю Стиллмен, Дженнифер Грин 4. Unity и C#. Геймдев от идеи до реализации Автор: Джереми Гибсон Бонд 5. Язык программирования C# 7 и платформы .NET и .NET Core Авторы: Филипп Джепикс, Эндрю Троелсен
Для людей абсолютно не знакомых с движком есть 3и основные книги на русском языке:
1. Разработка игр на Unity 2018 за 24 часа Майка Гейга (Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков). 2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне (Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.) 3. Unity в действии. Мультиплатформенная разработка на C#. 3-е межд. издание Хокинг Джозеф (Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
>>916310 (OP) Словно хуй дрочённый в жопу пидорчеллы В юнити техноледжис рать сойдитовская вошла Не оставив маркетолухам ни выбора Кибер-армия строчить посты пошла
в 2023 вкладки сделали отдельными окнами и теперь можно на удобничах редачить и судя по всему почти всё перенесли на UI Toolkit, логи можно открывать быстро
Короче, у меня есть друг, который решил вкатиться в геймдев и запилить игру с корованами на юньке. Я сам на юнити нихуя не делал, но у меня 5 лет опыта жабапидорства и моддинга под различные майнкрафты, так что, думаю, я могу ему помочь. Проблема в том, что он прям максимальный новичок из палаты мер и весов и начинает обмякать при одном упоминании ООП, а у меня нет времени возиться с ним и объяснять азы кодинга. Понятное дело, что через полгодика курения мануалов и туториалов он, возможно, начнёт соображать, но было бы неплохо сделать это быстрее. Есть тут у кого-нибудь опыт обучения людей погромированнию?
>>916652 >Есть тут у кого-нибудь опыт обучения людей погромированнию? Путь обучения простой - каждый день по несколько часов дрочишься с кодом, попутно читая книги. Если ему это по-настоящему интересно, то он справится. Если он хочет этим заняться исключительно ради заработка, но душа к этому не лежит, он обосрётся. Специально его как-то "обучать" нет смысла, это пустая трата времени и для тебя, и для него. Книг сейчас дохуя, статей дохуя, видео дохуя. Желательно, чтобы на руках всегда были бумажные версии хороших книг. И всё. Каждый день пускай несколько часов дрочит код.
>>916670 Тут как-то анон просил автосохранение сцены. Ему принесли говна на лопате. То есть скрин беседы с жпт, где тот считал таймер в апдейте. А потом вызывал какие-то методы, вроде, даже сохранение сцены. В классе, который не наследовался от эдитора. То есть минимум по трём разным причинам этот код не будет работать. И так оно всегда. Жпт не может в код.
>>916684 >Жпт не может в код. Попросил старую версию (3.5) жпт о следующем "напиши код автосохранения сцены на Unity3D". Вот что он выдал. Чем тебе не рабочий код?
>>916684 >И так оно всегда. Жпт не может в код. Ты уже сформировал железобетонное мнение по единственному опыту одного анона. Позволь и мне сформировать мнение о тебе - ты тупой.
>>916705 >>916704 Вот вот, вся ахуенность жпт в том что с ним ПОПИЗДЕТЬ можно, все свои доёбы дрочить. Сука, я же продолжу нейрошизой спамить пока не переубедю
>>916710 Cмотри, тебе приходится выпрашивать, чтобы он написал то, что ты уже знаешь, что он должен написать. Какой в этом смысл? И нет, проверка на Dirty это говно. Юнити не помечает сцену, как грязную, если ты вносишь изменения в переменные скриптом. Нужно принудительно помечать сцену.
>>916717 >Юнити не помечает сцену, как грязную, если ты вносишь изменения в переменные скриптом Это уже супер-частный случай. И непонятно, какое отношение он имеет в автосейву. Автосейв больше нужен тем, кто что-то на сцене расставляет и на случай краша они не хотят проебать свою работу.
>>916725 Реально же доёбы, такие же доёбы которые бы ты давал реальному человеку-анону, если бы он скинул сюда такой код. Всё что я хотел донести это что жпт ахуенен для обучения. Можно спросить нахуя он так написал, что именно вот этот кусок делает, нахуя именно таким образом и тому подобное. Ты не найдешь реального человека который так подробно объяснит и будет доступен 24/7.
>>916791 Здесь полтора анона только подсказывают и помогают, пиздабол, остальные выебываются какие они ахуеные, при этом свой гигаахуенныйправильныйичситыйкод ниразу не кинули.
Сап. Как делать композицию в юнити? Сейчас наследование, но на собесах и в гайдах просят именно композицию в похожей ситуации. (Типа машинка наезжает на объект на локации и "кушает" его)
>>916977 Похоже, речь идёт о том, чтобы внутри финальных классов PowerUpHeal, PowerUpJump, PowerUpShit существовало бы приватное поле PowerUp, методы которого бы дёргались в финальных классах. Притом эти методы финальных классов пришлось бы доопределить.
>>917277 С одной стороны, они пишут, что отхуячили динамическую типизацию, чтобы заставить js хоть как-то работать. С другой стороны, это всё ещё js, то есть по дефолту не может работать хорошо. С третьей стороны, это тенсент, то есть даже если бы работало, то его следовало бы обходить десятой дорогой. Ну и ill2cpp не работает, судя по ишьюсам. Какая интересная штука, в которой и идея, и реализация, и сам реализатор говно.
>>917307 >Есть метод, в методе запускается корутина. >Во время выполнения корутины, код после нее (не в самой корутине) хуярит дальше. Три варианта.
1. На месте запуска корутины закончить метод. И вызывать его продолжение только из окончания кода корутины. 2. Запускать в двух потоках, и делать проверку в методе на результат из корутины, и пока не true, он ожидает. 3. Переделать архитектуру и разделить метод на два варианта, отделив и корутину.
Не знаю что у тебя происходит сложно сказать что лучше.
>Или как это сделать без корутины? Архитектуру поменяй и раздели просто на разные функции.
В корутине цикл for, через который несколько объектов меняют цвет ("мигают") по очереди, потом еще выполняется код.
Код запускается сразу после корутины в любом случае. Если сделать bool после корутины, он проверит его после запуска корутины, не дожидаясь ее выполнения. Если в корутине - не успеет переключить флаг.
Я обычно в корутины хуячу что-то вроде череды событий, типа разбили тачку, замедлили время, показали красный экран, потом вернули время, потом показали экран результатов, потом анимация награды, все через ВейтРеалтайм или ВейтТайм. Так типа нагляднее в коде ежели по цепочке запускать скрипты.
подскажите, какой стиль графики проще всего в соло реализовать нубу в рисовании? у меня из идей 2.5д (плоские персонажи на 3д-плоскости, как в Darkest Dungeon или Cult of The Lamb) или кубическая графика в стиле Minecraft-а
(игра предполагается как простенькая сессионная гриндилка аля Верминтайд - список миссий, пройти от входа до выхода, по пути убить горсти трэшака и несколько рандомно появляющихся "минибоссов")
Анон, вот скажи мне, если я не хочу в сотый раз описывать одну и ту же логику, но на другом движке/языке, и хочу просто взять вариант из бесплатных/платных ассетов, то, как программист в геймдеве, я - сосало?
Например, начинал я кодить с Python на движке BGE туеву хучу лет назад. Написал конечный автомат для контроля персонажа. Вскоре BGE умер. Я пошел пробовать C++ и SFML, где так же встал вопрос конечного автомата, и вот я снова описываю ровно ту же самую логику на другом языке. Затем развирусился Godot, я пошел туда и история повторилась, третий раз я пишу простой конечный автомат для контроля персонажа, но уже на GDScript. И вот я пришел в Unity, скачал модельку пепеги и ради тестов захотел ее оживить. И опять, уже в четвертый раз, мне нужно писать один и тот же конечный автомат, лишь с небольшими отличиями, но уже на C#. Я все это уже умею, базу языка освоил за вечер чтения доков, ничему новому повторение этой процедуры меня не научит.
Должен ли я писать одну и ту же хуетень уже в четвертый раз на другом движке просто чтобы считать себя тру-программиста, или ебать ее в сраку и скачать готовое решение? Да, в виду уже имеющихся навыков и опыта я потрачу максимум вечер, с учетом потенциальных тупиков в которые зайду будучи новичком в API Unity. Займет немного, но как-то уже заебало.
>>917674 Интересное решение. Правда я не понимаю, почему у синглтона есть проверка на инстантс. Синглтон должен предоставить инстанс в любом случае. Если объекта нет, то он его создаё.
>>917818 Спасибо, хотя как ты сказал не совсем то чего я хочу, нужно чтоб врёстка адаптивная была, но ты направил в нужное направление. Я потыкал, на боковые поставил preferred значения, а на центральный выкрутил flexed width и он заполнил пространство.
Гении на месте? Я без шуток уже второй месяц ебусь с запоминанием вектора взгляда персонажа, вкратце, топдаун 8векторов дрысня, в плане анимации и прочей шелухи все работает идеально, но есть жирный трабл, когда игрок перестает ходить взгляд песронажа может не соответствовать последнему вектору движения. Корень проблемы очевидно я знаю, в скрипте есть вектор который запоминает последнее движение персонажа, считывается с Input.GetAxis("Horizontal"/"Vertical"), в апдейте отслеживаются инпуты, допустим бежим мы на северо-восток, останавливаемся, в теории вектор должен запомнить последние инпуты, так и есть, он то запоминает, да на столько быстро что забывает о предпоследнем инпуте, поэтому с большей вероятностью последним вектором будет считаться либо восток либо север, можно конечно и северо-восток сохранить при должной удачи, нужно всего лишь одновременно отпустить клавиши. Вобщем, суть трабла ясна, но я блять серьезно в душе не ебу как можно пофкисить такую хуйню, какой только хуйни не пробовал писать, +- нужное получалось, работало хоть и в разы чаще да вот только проблема зафикшена от этого не была. Можешь что подсказать анон? Без шуток второй месяц голову ломаю, офк пытался найти решение в тырнетах этих ваших, да вот только там нихуя полезного нет, не исключенно что я и в гугл не умею лол. Теперь я понимаю почему наблюдал такую хуйню в топ даун играх, когда перс поворачивался к ближайшему вектору и не последнему, нужно быть гением что бы это сделать как надо.
>>918101 А почему не сделать, как сейчас модно, ТЕМПОРАЛЬНО? Берёшь какой-нибудь вектор, плюсуешь туда все свои направления, а потом нормализуешь. Хотя лично я делал бы на стейт машинах. Состояние:пиздуем, направление:нахуй-и-налево.
>>918101 Загрузки Bandicam (ещё есть бесплатный видеоредактор HitFilm). И покажи суть проблемы на видео. Так в сто раз больше шансов, что тебе помогут.
>>918118 Да зачем тут видос нужен, проблема очевидна. https://forum.unity.com/threads/2d-8-directional-movement-and-animation.455217/ Вот тут ситуация 1в1, чел тоже не допер как можно сделать. Вангую, он тоже ебался с этой хуйней месяцы, в итоге забил хуй, ибо историю умалчивает чем все закончилось. Таких тредов тащемто дохуища везде, только вот решения я так и не нашел, ну и пришел сюда, в последний оплот человечества, мало ли, может анон делал уже такое и сможет мне подсказать в какую сторону мне топать. Мне вон анон выше написал про темпоральность какуюто, я вот сижу до сих пор читаю одупляю. Пикрил код если нужен, только вот нахуя хуй знает, пускай будет, картиночки привлекают внимание.
>>918101 >>918127 Честно говоря вообще не понимаю в чем у тебя может быть проблема. Ты можешь сохранять любые данные в любой момент времени. Следовательно просто сохраняй и потом загружай, это касается всего. Если объект чей то ребенок, то не забывай выставлять в 0 прежде чем применять старые значения.
Еще раз повторю, не могу понять в чем у тебя проблема.
>>918129 Да кмон, топдаун, 8 направлений, герой после движения по диагонали не запоминает что он двигался по диагонали т.к направление движения определяется инпутом клавиш, из за того что человек не может всегда одновременно отпускать клавиши движения получается так что в скрипте сначала обрабатывается отжатие 1 клавиши, потом 2, а так как при обработке инпута второй клавиши, первая клавиша не активна, то выходит герой уже смотрит не по диагонали а в сторону за которую отвечала клавиша 2. Ну я хуй знает как еще объяснить, и видос тебе тут никак вообще не поможет если на то уж пошло.
>>918144 >сначала обрабатывается отжатие 1 клавиши, потом 2 >а так как при обработке инпута второй клавиши, первая клавиша не активна У тебя есть значения импута каждый тик, в чем проблема еще раз спрашиваю? Это банальные флоты от -1 до 1. Я реально не понимаю, и даже больше скажу, мне интересно узнать что у тебя за проблема, и помочь ее решить.
Давай так. Составь логическую последовательность действий от начала до конца действий игры, и где возникает текущая проблема.
>>918151 Скорее всего, когда бежишь по диагонали зажав, например, вверх + вправо, потом отпускаешь обе кнопки, но одна отпускается раньше на доли секунды и перс поворачивается по оси последней отпущенной. Можно сделать плавный поворот какой-нибудь лерп и он не будет успевать полностью развернуться
>>918113 Даже ещё проще можно. Накидал на новом инпуте. Когда бросаешь клавиши, в последнем performed вектор почему-то сбрасывается на 1.0 тупо всегда. Так что берёшь схороняешь предпоследний и используешь его. Профит. Если не отпускать\нажимать новые клавиши, то performed не вызывается.
Любую сложную механику или проблему можно разбить на более мелкие и простые. И всё можно решить. Упрощение и разбор на мелкие фрагменты = решение чего угодно. И уж за пару вечером точно можно это сделать.
>>918151 В том что я нихуя не понимаю как мне сделать так что бы ебучий код запоминал не последнюю отжатую клавишу, а вектор направления. Если ты сможешь это сделать без багов, ну я хуй знает, ты бог наверное тогда. >>918153 Именно. Лерп уже пробовал, да я много чего пробовал, все не то, другое дело что я овощ и возможно не так пробовал, но это другой разговор.
>>918417 >плюс-минус работает Как он может не работать? Он в 100% случаев должен работать, разница лишь во времени на разбиение нужных частей. Это чистая логика, как закон ньютона, он не может работать в 99% а в 1% почему то нет. Всегда 100%. Могут быть лишь ньюансы в мотивации разбираться, а так-же времени, вот это может прямо влиять.
>>918423 >Как он может не работать? Когда в дело вступает математика и сложные алгоритмы. Тогда не всегда удаётся решить задачу так, как хотелось бы и получается средненький результат.
>>918428 >математика и сложные алгоритмы. Ты только что привел подтверждение моих слов.
>математика Как формулы и числа не могут упрощаться?
>сложные алгоритмы. Как эти алгоритмы не могут разбиваться на более простые?
>Тогда не всегда удаётся решить задачу так, как хотелось бы Мы тут говорили о том что если есть проблема в юнити, и ты не понимаешь её, то ты можешь разложить ее на простые составляющие и найти ошибку. А вот решить или реализовать, это уже зависит от навыков конечно. Речь то в самом первом посте была о том что человек тупо не хочет упрощать проблему для нахождения нужного места.
>>918431 Ебать ты душнила конечно. Допустим, я делал двухмерную песочницу, аля террария. Мне нужно было сделать динамическое освещение. Я стал разбивать задачу на более мелкие. У меня не получилось написать хорошее решение в виду плохой мат. базы, но за счёт разбиения сложной задачи на мелкие я в целом ПЛЮС-МИНУС смог написать освещение. Пускай не такое как хотелось, но работающее.
>>918485 Если в движке есть юникод, он должен поддерживаться целиком, иначе нах морочились с его поддержкой. Даже если проблема в том, что не отображается эмодзи кала - это всё равно проблема.
PopulateView вызывается при открытии самого дерева в окне, ноды отрисовываются, на событие метод подписывается, все замечательно. Метод GraphViewChange вызывается, дебажил на graphViewChange.moveDelta
Проблема в том, что graphViewChange.elementsToRemove постоянно == null, почему так?
Выделяю ноду, нажимаю delete и в if не заходит, и лист элементов на удаление тоже оказывается пустым
>>918753 Оно стало процедурным вроде, то есть навмеш сёрфейс у тебя построится динамично в рантайме. Я как-то подрубил устаревший вид вкладок - хотел переиспользовать статичный навмеш для особых целей (хранение геометрии локации на сервере, чтобы тот мог сам озадачиваться поиском путей). В общем способы есть.
В 2D шутере добавил префабу пули префаб эффекта попадания по цели.
Вот код: public class BulletController : MonoBehaviour { public float bulletSpeed; public Rigidbody2D theRB; public Vector2 moveDir; public GameObject impactEffect;
// Update is called once per frame void Update() { theRB.velocity = moveDir * bulletSpeed; }
ты забыл главное правило: работает - не трогай конечно, если оно не ломает критично логику/оптимизацию, но, думаю, один вектор на этой не сильно повлияет
Последний раз думал про юнити когда как раз началась вся история про то, что за каждую скачку стало нужно отдавать какие-то деньги. Как оно сейчас, всё так же или откатили уже? Стоит ли пробовать вкатываться, или остаться на годоте?
>>919143 Они свои сверхприбыли получили, сотни движков из-за них загнулось, просто повезло изначально всё грамотно угадали как что делать. Абсолютная власть развратила их. На самом деле странно, что они купили всех этих питеров джексонов, а результатов нет. Ну вот совет директоров решает купить команду, чтобы что она делала? У анриала люмен, нанит, метахьюман, квиксель, даже рисовалка своя и библиотека кустов и палок. В последнее время у юнити мало трапов на презентациях, которые вместо разработки движка разрабатывали очко, сейчас всяких сброд выгонят и начнется бурное развитие
>>919143 >Все дальше от UE и дальше Не всё так однозначно, у эпиков и у самих нихуёвые проблемы. Это касается игровой индустрии в целом. Доходы пожрал долгоносик.
>>919149 > На самом деле странно, что они купили всех этих питеров джексонов, а результатов нет. Я оброфлился, когда узнал что у юнити НЕТ нормального сетевого движка, а максимум предлагаемых опций - "ну натяните на сервер headless клиент чтобы движение мобов считал, наш юридический отдел вам потом очко на него натянет". Была тема со SpatialOS, но похоже теперь кооперация с Юнити закрыта.
>>919229 >тема со SpatialOS А там небыло кооперации. Спатиал делал всё по своей инициативе. И, соответственно, шекелями с юнити не делился. Они не придумали ничего умнее, чем запускать тот самый безголовый клиент. Юнити на это посмотрели да и отозвали лицензии.
Крайэнджин стоил 70 миллионов. Это они могли типо - 50 миллионов долларов на разработку инпут системы, 50кк на частицы, 50кк на рендер/люмен, 50кк на нанит... и так много раз
>>916310 (OP) Блять, господа, что за хуйня? Почему я в скрипте не могу обратиться к свойству другого скрипта и какого хуя я не могу обратиться к объекту, к которому присоединен скрипт? Методы Awake, Start, Update и LateUpdate, в недавно созданных скриптах, почему-то теперь написаны желтым цветом, в отличии нормально работающих. Что я, нахуй, сделал?
>>919299 > Почему я в скрипте не могу обратиться к свойству другого скрипта Как ты к нему обращаешься? GetComponent<KakogoHuya>().yaEbalTwoyuMamashu? (TryGetComponent<SukaBlyatPidor>(out var pidor)) { pidor.Huesos(); }?
>>919309 Самописные хуитки у фотона. Потому он до сих пор живёт и будет жить. А когда были тёрки с импропабле, юнити обновила ТОС, куда было дописано
>2.4 Streaming and Cloud Gaming Restrictions. You may not directly or indirectly distribute the Unity Software, including the runtime portion of the Unity Software (the “Unity Runtime”), or your Project Content (if it incorporates the Unity Runtime) by means of streaming or broadcasting so that any portion of the Unity Software is primarily executed on or simulated by the cloud or a remote server
А как ресайзить не только родителей, но и детей обьектов? Раньше че-то казалось что автоматически когда родителю размер меняешь, а последние пару дней пиздец раздражает
Пацаны, объект наклоняется по нормали вот так obj.transform.rotation = Quaternion.FromToRotation(Vector3.up, norm); Проблема в том, что norm рандомно инвертируется туда сюда и невозможно определить почему. То есть объект получается то нормально то вверх ногами. Есть ли способ получить только одну сторону нормали? Типа как для отрицательных чисел abs.
>>920167 Не, не совсем подходит для ситуации. Как сделать что бы при float mouseX = Input.GetAxis("Mouse X")MouseSens Time.deltaTime; Rot += mouseX; PlayerBody.transform.localRotation = Quaternion.Euler(0, Rot, 0);
камера следующим фреймом поворачивалась в сторону определенного объекта ?
>>916310 (OP) ононы че за хуйня? сделал по уроку новую папку в папке character для персонажа, назвал скриптс, в скриптс добавил скрипт c# и тут мне выдают: "окно неожиданно завершило работу (причина: "oom")"
Как сделать так, чтобы клик по меню не передавался дальше и не цеплял обработчики кликов по физическим объектам? Я склепал пачку экранов меню, они кликабельны, но не прерывают распространение сигнала дальше, и персонаж к примеру ходит по земле. У меню есть компонент Graphic Raycaster с настройками по умолчанию, клики по объектам на сцене обрабатываются через лучи Physic Raycaster. Я натыкался в ответах на форуме Юнити на разницу между ними, но при попытке экспериментировать с типами Raycast от меню с визгом и уханьем отваливалась двужопная бианальная двасрака, в смысле меню переставало показываться вообще, хотя формально его компоненты меняли свою активацию после переключения. Я пробовал цеплять к канвасу меню 3D-коллайдеры и активировать их при активации меню, это вроде бы решало проблему, но не гладко (иногда паразитные клики проходили сквозь меню на сцену до активации коллайдера меню).
Но задача выглядит чрезвычайно типовой. Как её нормально решают?
>>920355 Ах да, вспомнил что в учебном проекте было очень похожее решение. В обработчике кликов нужно if (EventSystem.current.IsPointerOverGameObject()) return;
Ладно, там почему то выдает даже неактуальные резюме, поставил в фильтре "активно ищу", выдало 2000 челиков, что обнадёживает Пацаны, как думаете, у кого больше шансов 1) у чела опыт 1 год в компании, своих игр нет 2) чел нигде не работал,но имеет в стиме игру с 150 норм отзывами
>>920555 Сейчас бы идти в галеры что бы делать чужие игры за объедки бр-р-р-р. Ждунов можешь спокойно делить на 100, именно столько получится реальных разрабов, все остальные это взращенные на курсах плебсы которым обещали золотые горы.
Лучше создать вакансию и ждать пока тебя не найдут. Тут такая психология: если они тебя нашли, значит они нуждаются в тебе. Если ты нашел, значит, для компании, это ты нуждаешься в них. А в ком нуждаются, по тем правилам и должны играть.
>>920636 Просто будешь получать мусорный спам от нечитающих резюме хрюш, причем часто не по той технологии. И у них все равно будет выбор из стоящей у двери очереди так что правила все равно будут их.
>>920687 Что мешает вычислить конвеерного хрюшу от заинтересованого понимающего кабанчика? По тексту уже можно определить - если банально-среднестатистическое обращение, и, что главное, без каких-либо вопросов, то это, как ты выразился, хрюша.
https://gamedev.ru/industry/forum/?id=273297 гуглил хоть какой-то метод вывода бабла с юнити стора в рашку, наткнулся на тред где упомянули >Для россиян даже обход санкций от самых юнитов есть, причем ими же и озвученный. Кто-то знает о чем речь?
>>920724 >Для россиян даже обход санкций от самых юнитов есть, причем ими же и озвученный лол ебать нах, видимо большая доля наших там обитает, а двигло перевели только на китайские и английский
Начал клепать тулзу внутри Юнити под редактирование сущности на сервере, протянул вызов эндпойнтов с этого сервера по кликам на компоненте. Потом начал гуглить, можно ли встроить это в сохранение сцены и удаление компонента с сцены, и с удивлением обнаружил что да. Редактор локаций всё больше становится похож на редактор со старой работы, который лазил в базу данных незаметно для пользователя. Как ни крути, Юнити - удобная штука.
Создаю в Magica Voxel графику для игры. Есть ли способы экспортировать материалы (в том числе свечение и эффект зеркала) в Unity? Или из вариантов только экспорт модели с последующей настройкой материалов в самом Unity?
>>920987 Насколько я понял, прозрачные и светящиеся части надо сохранять в MagicaVoxel отдельно, потом уже в Unity накидывать на эти части (фары и стекла, а также покрышки в моем случае) glow материалы.
Таки какую версию юнити выбрать? Сейчас в 22-ой столкнулся с проблемой некорректной работы (ее нет) шейдеров с масками UI-элементов. Выяснилось, что эта проблема пофикшена в юньке 23 года через выбор нового типа шейдера Canvas вместо Sprite Unlit. Перекатываться неохота, если честно. Писать код пресетов шейдеров тоже. Почитал, что на реддите и форуме юнити пишут - мужики на серьезном ебале выбирают юнити 21 года, ведь она якобы самая стабильная сейчас (на момент ~5-7 месяцев назад). Это правда? Сейчас это актуальная информация? Какой выпуск сейчас самый стабильный и предпочтительный на ваш взгляд? Где почитать про конкретные отличия LTS версий разных годов? И где почитать нововведения свежих официальных релизов?
>>921047 Честно говоря боюсь смотреть. Копаюсь в юнити уже лет 10, пару десятков игор сделано в стол, парочка на итче и одна в стиме. И такое ощущение если посмотрю, пойму как криво и не правильно все делал, и надо было по другому.
>>921089 Так это же хорошо для тебя будет если поймешь. Я пиздюком в деревне как то грядки копал в огороде, несколько дней подряд, и в силу возраста и не знания сначала копал тыловой стороной пока дед не показал как надо, нужно ли говорить что мне стало проще копать после этого?
>>921092 >Так это же хорошо для тебя будет если поймешь Да это то понятно, улучшать скилл и кругозор всегда хорошо но есть парочка НО.
Твоя аналогия с грядками все таки слишком упрощена. Владение движком это очень большой пласт знаний. Там же помимо простого редакторо столько всего что с ним взаимодействует, другие программы, дополнения и прочий стафф, что как правильно импортировать, где делать и т.д. И вот со временем ты складываешь для себя пулл программ, как в них делать, потом импортить в юнити чтоб все работало. Это не делается за дни, недели или месяцы, это годы опыта. Понятно что освоить юнити, и шарп это достаточно просто и даже обезьяна сможет, но вот когда ты сделаешь, опубликуешь, и продвигаешь первую игру, как раз и сталкиваешься с миллиардом вещей которые ты как индюк должен делать, помимо простого владения движком.
Короче хз зачем я тут это написал, просто очкую узнать что всё до этого что знал, вроде и работало, но возможно жуткие велосипеды и вообще не по фэншую.
>>921089 > И такое ощущение если посмотрю, пойму как криво и не правильно все делал, и надо было по другому. > и надо было по другому. За 10 лет могли появиться какие-нибудь хитровыебанные трюки, которые сильно облегчают делать то, что ты раньше делал через три пизды с изъёбом.
Решил сделать glow эффект в Unity. Загуглил уроки. Повторил все как в этом уроке, и... Вроде как свечение появилось (на пике), но когда в post process profile кручу Intensity и Threshold - абсолютно ничего не меняется. Почему? Проект Unity 2022.3.4 3D URP. Может потому что URP?
Блять щас сидел отчаяно высерал простыню что не получается почти вторые сутки кое что сделать как надо, и перед тем как отправить пост в голове возникла еще идея как попробовать решить проблему, и таки блять помогло. Причем это уже не первый раз такое, решение приходит либо перед отправкой поста, либо сразу же после отправки. Спасибо аноны за помощь, воистину гдач-помогач.
>>916310 (OP) >Главным преимуществом Unity перед другими движками является его простота для одиночной Я вот пердолюсь с настройкой графики, глобальным освещения. Неужели всё надо вручную пальчиками? Мне хватает моделирование, скульптинга, настройка развертки и запекание с текстурированием. Пиздец Изщ, попру рвет
>>921181 > Причем это уже не первый раз такое, решение приходит либо перед отправкой поста, либо сразу же после отправки. Да. Этот приём называется "расскажи проблему своей кошке". У меня роль этой кошки выполняет дневник, где я логирую ход решения моих задач. В текущем пет-проекте за месяц накопилось 1.7 млн. байт дневников, то есть примерно 242 тыс. слов. Иногда впрочем мне приходится задать вопрос (из-за действительной нехватки информации), но с такой системой я сильно экономлю на внешних взаимодействиях.
Кто то делал свой анти чит? Желательно по системе такой, что запускается античит, он запускает игору и далее просто висит в фоне незаметно, делая свои античитерские дела
Как правильнее - делать модель в Blender нераскрашенной и потом, экспортировав ее в Unity, создавать для нее материалы - или красить в Blender и вместе с материалами экспортировать в Unity?
>>921271 >античит Для одиночной или сетевой? Для одиночной он не нужен, пусть игрок делает что хочет. Как пасхалку разве что можешь оставить. Для сетевой у тебя все хранится на сервере, а локальные проверки проводятся у игрока, при желание их можно валидить так-же на серваке. Античит в привычном виде это уже устаревшее понятие, сейчас движок все делает за тебя, тебе надо только понять где узкие места.
>>921278 Вот тебе стек, который делают инди и АААА-студии. В блендере/майе/и т.п. создаешь только 3d-модели и UV-развертку Материалы создаешь в программе Substance Painter, откуда их можно экспортнуть в unity
Шейдинг в блендере заточен только под сам блендер. Ты заебешься делать так, чтобы в юнити выглядело так, как в самом блендере. Если постараться, то можно, но будет много пердолинга, и все равно будут вылезать косяки.
Но может уже нормально все, я это чекал лет пять назад. Может плагины годные в блендер подвезли. Делать все в одной программе конечно заебись
Но в любом случае painter он больше под игры заточен, а в блендере слишком дохуя нодов, там ведь даже можно кино делать и vfx эффекты
blender + substance painter/designer, this is the way
>>916310 (OP) Привет всем. Создал небольшую улицу, экспортировал в unity. Настроил материалы (не все конечно) но всё же. Картинка выглядит так себе, учитывая того, что добавил "global illumination" хоть он и работает так себе. Можете подсказать что вообще не так?
1. Это надо делать hdr проект и использовать эффекты. 2. Свет. В 99% он запекается, остается лишь небольшие участки где можно оставить динамический источник. Сюда же работа со светом и тенью.
Раз у вас тут про античиты разговор зашёл, нужен совет, как мне обосраться меньше положенного. Суть такова, нужно запоминать пользователя на устройстве. Казалось бы, просто, но нихуя. Решил схоронять у пользователя токен, сгенерированный сервером. Получается, если спиздить токен, то спиздил и сессию, а она, по определению, не заканчивается. Хуёво как-то, а избежать этого нельзя.
>>921379 Симпатично. Но, по-моему, с АО хуйня полная, его либо вообще нет, либо он не там, где должен быть. И смотрится максимально плоско, где бампинг? И не размещай свет и камеру с одной стороны, ты все тени спрятал.
>>921385 Эту проблему уже давно решают на мобилках. Там сначала используют анонимный вход или он же гостевой вход, далее игрока просят привязать аккаунт к какой-нибудь соц сети и после этого уже используют временные токены.
Не знаю твоей конкретной цели. Можешь использовать SystemInfo.deviceUniqueIdentifier в качестве уникального перманентного токена. Можешь использовать готовые сервисы, которые реализуют систему аккаунтов, типа Unity Authentication и PlayFab.
>>921317 >бесплатные аналоги В блендере тогда делай материалы. При "миграции" несложных PBR материалов очень просто их будет подогнать чисто по параметрам. Еще в юнити у меша в проекте есть кнопка ~import embedded materials. Поиграйся с ней, есть шанс на импорт материала полностью. Экспортируй в fbx только. Также в юнити есть шейдерграфы почти как в блендере. На крайняк можно пересоздать материалы в юнити с нуля вручную, просто нужно некоторое время. С опытом начнешь делать почти на автомате.
>>921408 >сначала используют анонимный вход или он же гостевой вход Залупа. Токены используются с самого начала, потому что иначе невозможно идентифировать пользователя. >SystemInfo.deviceUniqueIdentifier Это наглый пиздёж, что этот айдишник уникальный для каждого, там коллизий я ебу. Во-вторых, опять же, его тоже легко спиздить. Есть идея подписывать токен данными о пользовательской машине, но я эти данные от пользователя получаю, так что их можно и подделать. В итоге в голову нихуя не лезет, кроме как городить асимметричное шифрование, хотя бы мужик посередине не сможет спиздить ничего. Конечно да, никто в мою игру играть не будет, я понимаю, но хочется всё равно сделать нормально.
>>921460 >Токены используются с самого начала Конкретно на мобилках часто используют SystemInfo.deviceUniqueIdentifier. Либо используют рандомный токен с сервера, но в этом случае после переустановки игры гостевой аккаунт навсегда теряется.
>но хочется всё равно сделать нормально Так что конкретно ты делаешь? Какая цель? Если игра будет продаваться в стим, так у тебя уже есть привязка к стим-аккаунту.
>>921488 >в этом случае после переустановки игры А deviceUniqueIdentifier после переустановки или обновления приложения тоже меняется. Можно сделать механизм компенсации устаревания токена, но тогда разницы с токеном от сервера нет. По сути, использование deviceUniqueIdentifier это откровенная глупость. https://forum.unity.com/threads/deviceuniqueidentifier-broken.563494/ Десять коллизий на 6000 пользователей, итого по коллизии на каждые 600. Да, не часто, но предсказать невозможно, это может случиться и на втором-третьем игроке. >Какая цель? Адекватная аутентификация в игре, я же сразу писал. Да, со стимом было бы проще. Наверное. Но я не планирую выход в стим. В итоге прикрутил SSL для аутентификации, потом трафик идёт по udp в нешифрованном виде с короткой подписью. Всё равно можно спиздить токен, но только при доступе к устройству. Ничего лучше я уже не придумаю.
>>921489 Хз вы какую-то хуйню городите. Подрубается клиент, создаете файл с любым ключом. Всё. Подделать нельзя. Используется как гостевой аккаунт. При логине одновременно двух одинаковых ключей, просто анулируете и раздаете два новых. При нормальном же случаи просто создается аккаунт или делается привязка к гугл акку через плей.
Здесь есть люди, которые работают в компаниях? Как вы туда попали?
Если я сделаю десять игр, от endless runner до metroidvania и 3D shooter, добавлю все это в свой гитхаб - какова вероятность что меня возьмут джуном на удаленку?
>>921494 >Всё. Подделать нельзя. Не так. В зависимости от алгоритма генерации ключа сложность его подделки будет от "элементарно" до "невозможно за разумное время". Но спиздить легко. >При логине одновременно двух одинаковых ключей Заходит игрок, генерирует свой ключ, сообщает серверу. Он сохраняет его в базу. Заходит другой игрок, генерирует такой же ключ, сообщает серверу. Он находит в базе этот ключ и выдаёт игроку чужую сессию. Провалено. >привязка к гугл акку Точно так же нужно, как минимум, шифровать соединение. В моей реализации не нужен ни гугл, ни стим, коллизий быть не может даже теоретически, а чтобы спиздить аккаунт - нужно иметь доступ к устройству игрока. И всё это за кулисами и не требует от игрока никаких лишних телодвижений и тысячи кликов в окнах от того же гугла "разрешить-разрешить-разрешить".
Короче, ждал советов мудрых, но не дождался. В итоге с угрозой воровства токена придётся смириться, потому что проверить, что он выдан именно этому пользователю невозможно.
>>921499 Чел без обид, но ты какую-то хуйню фантазируешь. Максимум что будут в твоей игре пытаться сделать, это подделывать пакеты, и это легко фиксится проверками на сервере.
>>921500 Так я говорил, что мне поебать, что это никому не будет интересно. Просто хочу нормально делать, чтобы нормально было. >легко фиксится проверками Буквально ни в одной игре нет гарантированной защиты от подделки пакетов. И проверки могут оказаться слишком сложными, что убьёт всю производительность сервера. Хотя у меня случай не тот, мне похуй на подделку пакетов и читинг.
>>921489 >И всё это за кулисами и не требует от игрока никаких лишних телодвижений А нахуя так делать? Может я хочу на другой девайс потом перенести свой аккаунт. А если я игру переустановлю? А если винду переустановлю? Ты добавил гостевой вход без возможности привязать его к каким-то персональным данным, чтобы аккаунт можно было сохранить.
Если делать нормально, то нужна форма для входа, где вводишь емаил и пароль. После успешного входа получаешь временный токен. Далее можешь этот токен сбрасывать при каждом входе. Если игрок давно не заходил, то ему придётся ввести емаил/пароль. Если изменилась локация игрока или конфигурация ПК, то можешь сделать токен невалидным и снова попросить ввести емаил/пароль. Похожая система во всяких игровых клиентах, типа батлнет.
>>921505 >А нахуя так делать? А у меня вообще нет гостевого входа. Просто механизм такой же. Это для галочки "запомнить меня". >Если изменилась локация игрока или конфигурация ПК При смене ПК смысла нет, если пользователь валидный, то его такое только бесить будет. У юнити было, что тот же deviceUniqueIdentifier менялся, если вставить флешку. Я бы охуел каждый раз пароль вводить. Если это взломщик, то он чётко может отследить по коду, какие параметры ПК я отслеживаю и подделать их. Локацию да, отслеживать имеет смысл.
Антоны, что за хуйня? Пилю прототип игрушки в которой одной из возможностей будет залить по столбам и крутится на них аки стриптизерша. Поворот по шесту решил сделать хитрожопо просто - при чекании столба объект игрока делать дочерним объектом столба и крутить столб. На деле звучит охуенно просто.
Но столкнулся со странной проблемой: при кручении столба , персонаж игрока, какого то хуя, крутится в противоположную сторону. Отключением скриптов установлено что при отключении скрипта на передвижение проблема исчезает. Вот только скрипт Move это мелкий скрипт на ~100 строк и там вообще нет команд на вращение персонажа вокруг оси. Вращение персонажа вокруг оси задается другим скриптом, который со скриптом Move взаимодействует только с двумя bool переменными.
>>921542>>921544 Это пиздец) Ты вот прям уверен что проблема не в коде? Это же шизофрения чистая. Все логика написана в апдейте, вся физика делается в апдейте, controller.Move() вызывается при каждом пердеже, магические числа, методы которые вообще хуй пойми что делают и для чего нужны. Ты сам то хорошо понимаешь что у тебя вообще происходит в коде во время игры?
>>921583 Вроде бы. Это с ютуба. Когда делал сам в 2д то делал через скучный трансформ позишн. Тут вроде что то новое. Возможно потом сделаю рекодинг и раскидаю более внятно.
Ща бы понять какого хуя персонаж крутится вместе с шестом
>>921557 Тебе реально в голову не приходит сколько это создает проблем? - Столбы не могут быть квадратными, шестиугольными - Столбы не могут быть с фонарными балками наверху - Столбы не могут быть светофорными Ну то есть вообзе все что не осевая симметрия - На такой столб нельзя запечь освещение, тени - Не факт что ты вообще осилишь если у тебя столов больше одного Хотя, может быть ты добавишь НЕВИДИМЫЙ столб и будешь его крутить? Кто тебя знает.
Скорее всего так и сделаю. По идее на них не планировалось освещения и они только для прыгания по ним аки в принце персии и вообще не моя идея, я бы лучше спокойно лапмовое 2д клепал
Скорее всего так и сделаю. По идее на них не планировалось освещения и они только для прыгания по ним аки в принце персии и вообще не моя идея, я бы лучше спокойно лапмовое 2д клепал
>>921609 Хмм. Проблема похоже реально в этом. нихуя не понимаю почему , но буду разбираться Хотя по идее transform.forward менялась на transform.up и персонаж по клавише W\S лез вверх\вниз. И оно работало до момента каксделал шест крутящимся. Ладно, завтра разберусь. Спасибо, держи котика
>>921613 Move работает на основе кешированных векторов позиции, вращения и т.д. Когда они обновляются я уже не помню. Раньше обновлялись вообще только при Move. Вообще это классическая проблема контроллера и движущихся платформ, можешь гуглить.
>>921593 >Возможно потом сделаю Делай сейчас. Потом поздно будет. У тебя уже корутина в апдейте сидит, а дальше че будет? Раздели всю эту кашу на методы. За движение перса должна отвечать одна строка, controller.Move(moveVector speed), а вот уже moveVector должен принимать нужные для тебя векторы движения, так же и скорость. К примеру:
>>921411 >Надо ли на каждое здание отдельный Reflection Probe?
Делал я как то уровень, где были стеклянные предметы. Так вот, я на каждый предмет повесил reflection probe (разместил в середину каждого предмета). Это дало правдивые отражения. Если бы я сделал один большой reflection probe, в который уместил бы много стеклянных предметов, то на них были бы неточные отражения, но запекание длилось бы меньше и меньше бы жрало ресурсов.
Поэтому если точность отражения не важна, или важны ресурсы, то достаточно одно probe на здание, а то и на несколько зданий. Главное, чтобы игрок краем глаза видел, что есть отражения, заебись, но вряд ли он будет замечать, что отражения не совсем правдивые.
>>921299 Для сетевой. Всё валидировать слишком сложно, да и я не отвечаю за сетевую составляющую. Надо детектить хекс эдитор, манипуляции со временем и редактирование файлов игры. Чтобы не было воллхаков и тд, когда игрок просто текстуры стен заменил на прозрачные или типа того. И чтобы нельзя было накручивать статы в хексе
Хочу сделать игру про мячик, который постоянно прыгает. На обычную сферу добавил physic material, bounciness - 1. Решил прикрутить управление, добавил на мяч Character Controller - и не робит. Character Controller выталкивает Sphere Collider из себя, а если отключить Sphere Collider - мяч перестает прыгать, т.к. отключается collider, на который повесили physic material.
Как лучше реализовать управление для такого персонажа? Может уроки какие есть на ютубе?
В голову приходит еще один вариант: никаких physic material, просто OverlapSphere - и каждый раз когда пересекаются коллайдеры мяча и пола - прыжок.
И еще вопрос: хочу чтобы камера не двигалась вслед за персонажем, когда он прыгает - только когда он движется вперед или меняет высоту. Есть ли уроки, которые подскажут как это реализовать?
>>921663 Например, прикрепи прыгающего персонажа к пустому объекту, который будет отвечать за его положение на плоскости, и камеру прикрепи к этому ползающему пустому объекту тоже.
У меня возник вопрос: в игре есть 3 режима: гоночка, сбор монеток, дерби. Также есть онлайновые версии этих режимов. Везде похожие методы, типа старт режима, кулдаун, спавн игроков и т.д. Все менеджеры режимов - синглтоны. Есть идея переделать так, чтобы оффлайновые режимы наследовались от абстрактного МодМанагер, а онлайновые наследовались от оффлайновых.
Или это полная фигня и надо как-то по-другому? Думаю над архитектурой и как рефакторнуть имеющееся.
Господа аноны, проконсультируйте, пожалуйста. У меня есть родительский объект (class Field : monobehaviour). У него есть дочерние (в иерархии сцены) объекты клеток (class FieldCell : monobehaviour), в каждой из которой может находиться враг. Эти клетки я инстанциирую (изначально их нет на сцене) в Awake или Start в классе Field. Точно так же как и самих врагов внутри класса FieldCell. И проблема в том, что у каждой из клеток FieldCell есть event Action, на который объекту Field надо подписываться. И все это адекватно работало до рандомного (на первый взгляд) момента. То есть раньше скрипт FieldCell успевал прогрузиться и awake-нуться на объектах, прежде чем Field подписывался на их ивенты, а сейчас перестал. Как мне это пофиксить по уму? Корутины подключать? Еще подумал внутри FieldCell в авейке вызывать публичный метод класса Field для подписки (сделать его), но как-то в падлу плодить лишние методы, да и звучит костыльно. Какие есть better practices?
>>921884 >better practices Идеальное решение это все должно работать тупо по порядку, вызывая нижние функции последовательно от самого главного менеджера в игре. Как временное решение если лень реализовывать правильное архитектуру можешь использовать либо задержку в виде корутины/апдейта, или в настройках проекта дать задержку выполнению скрипта.
Field держит префаб FieldCell Цикл: 1. Field Instantiates FieldCell 2. Field тут же пробует подписаться на event внутри FieldCell, не получается =(, т.к пока что готов только GameObject/Transform etc, но не FieldCell 3. FieldCell Awake/OnEnable случается Это то, что я просто подозреваю. Возможно, конечно, я не прав и несу полную хуйню.
>>921886 >это все должно работать тупо по порядку Саму-то идею я понимаю, да. А вот как реализовать? Нижние функции ты имеешь в виду от общего к частному ведь? Сейчас положняк такой: Encounter -> Field -> FieldCell -> Enemy. Тут слева направо методы и вызываются, с этим проблем нет вроде. Как подписаться-то с учетом этой погрешности на создание инстанса префаба? Нужда в ивентах как раз из-за такого подхода от общего к частному и появилась, ведь у меня коммуникация между объектами только сверху вниз и идет без каких-либо апдейтов. После Instantiate в том же цикле подписываться просто не всегда получается.
>>921893 >у меня коммуникация между объектами только сверху вниз Тогда как временное решение храни ссылку на объекте внизу, главного объекта и обращайся по ней к главному когда он готов. Я просто рили не пойму что там у тебя за трабла.
Вот у меня по аналогии в стратежке есть тайлы, у тайлов скрипты, у скриптов там другие скрипты, и там по порядку сверху вниз. Поле инстансится в менеджере, следом загоняется в массив, далее этот массив инициализируется входя в функцию каждой клетки, из который инициализация передается этажем ниже. Никаких проблем нет от слова совсем.
>>921893 >Так я так и делаю >3. FieldCell Awake/OnEnable случается Его быть не должно. Всю логику оттуда закидывай в какой-нибудь Prepare и вызывай его после инстансирования.
>Build Report >Included DLLs 9.5 mb 59.7% Бля, да как вырезать нахуй весь этот мусор? Пытаюсь оптимизировать веб билд, всё поотключал нахуй, у меня вообще тупо демка без ничего, две картинки и кнопка, и всё равно оно мне пихает десять мегабайт говна в билд.
>>921942 Чтобы реально все вырезать кроме юнитиплеера нужно редактировать исходники билда, и следом отрезать в dllки не нужное. Там же и юнити лого уберается
ебобономый сишарп блять. Какого хуя он 1) Имеет оверхед вызова метода 2) Агрессив инлайнинг нихуя не агрессив и не факт что инлайнит по итогу 3) нет таких макросов как в с++. То говно которое в шарпе может делать define это просто огрызок огрызка, харчок, кал.
Анон, поставь базу по паре вопросов: если я хочу быть геймдизайнером, а не просто кодером, то в проектах для портфолио для геймдизайнера - качество кода моих копроподелок важно? Или похуй и лишь бы реализовывало идеи, механики и не лагало пиздецки сильно? Графику можно дженерик захуярить или даже примитивную без ассетов скрафченных своими руками/спиженных с трекеров? Как бы кодить я могу и шарп знаю относительно, но меня тянет именно в геймдизайн, так что я не хочу прям сильно задрачивать архитектуру моих проектов. Просто базовые практики использовать и пару паттернов.
>>922458 Во-первых, в юнити используется IL2CPP. Во-вторых, нахуя ты занимаешься ранней оптимизацией, тем более такой мелочной? Ебанько что ли? Решай конкретные задачи и не воняй здесь, чмо.
>>922472 > но меня тянет именно в геймдизайн В сферическом случае геймдизайнеру кодить вообще не нужно. Вообще в команде больше двух тел собственно геймдизайнеров не будет, а будут роли: AI-скриптер, балансировщик шмоток, маркетолог, левелдизайнер и арт-дизайнеры, дизайнер клиентских интерфейсов, сценарист и так далее (не считая программистов бэкоффиса, серверных кодеров и тому подобных). Роли могут висеть по нескольку на одном многостаночнике, да. Совмещение для геймдева не редкость. Если тебя наймут и дадут тулзы (что маловероятно, т.к. конкурс огромен, а выживших компаний мало), то ты будешь сидеть и кодить поведение мобцов на каком-нибудь Lua или на блюпринтах.
> но меня тянет именно в геймдизайн Просто забей. Айти в этой стране умерло на несколько лет. Рассматривай геймдизайн как хобби или будь готов клепать простенькие игры в одиночку для монетизации на казуальных платформах типа мэйлру, потому что вкатиться теперь уже невозможно. Студии в лучшем случае не наймут тебя, в худшем - съебут и кинут на зарплату.
В последнее время чувствую выгорание от того что несколько месяцев подряд потел над идеей которая реализованной оказалось говном. Начав новый проект все меньше и меньше уделял ему времени, и вот уже как неделю я его даже не открывал. И хуево даже не от выгорания, а от того что мне хочется разрабатывать и дальше новый проект, но не могу себя принудить к этому, поэтому решил пойти на крайние меры. Через несколько дней, а если точнее то пять, нужно оплачивать интернет, планирую специально не оплачивать дабы выйти из зоны комфорта. Накачаю несколько десятков треков классической музыки, и в день Х просто сяду делать. В игори я не играю уже очень давно, поэтому кроме юньки и асепрайта на компе ничего нету, а значит и отвлекать ничего не должно. Из минусов только то что я могу окончательно выгореть и слиться. Где то слышал что человеку требуется 21 день для того что бы что-то новое принять как должное, надеюсь дотерплю. Что думаете? Ваши ставки?
>>922861 И вправду, надо бы сходить, давно небыл. Да и надо будет придумать че с дофаминовой ломкой делать, это еще хуже чем курить бросать, попробую заменить ежедневной ночной прогулкой + зарядкой, хуй знает может и поможет. Вообще во всем виноват этот уебанский мозг, удовольствие он нахуй больше не получает от разработки, а то что я блять хочу этим заниматься его вообще не ебет.
>>922868 Не делай, когда нет удовольствия от разработки. Жди, когда появится желание. Как только начинает желание пропадать, когда появляются нотки страдания- закрываешь юнити и больше не прикасаешься до следующего желания. Любой процесс должен приносить удовольствие. Если ты обязанный работяга на зарплате, то соболезную. Ищи другую работу. У тебя недостаток дофамина, и ты пытаешься его вытянуть только из юньки. Срочно ищи новые развлечения. Я как то решил забить хуй, мне тоже надоели эти беды с башкой, и решил вообще не делать блять больше никогда. Через пару дней появилось влечение, да и силушки немного появилось, но это было не то, а скорее чувство вины меня подгоняло, чувство "ты ленивый уебан, время не теряй, тем быстрее игру доделаешь". Одной части мозга хочется результата/успеха, наплевав на твои страдания. Другой - именно удовольствия.
Короче, я подавил это желание и стал тупо заниматься другими вещами. Я жил тогда в селе возле леса. Я много гулял, фотографировал птиц, катался на велике на много км, и через неделю я почувствовал - это оно. То самое чувство, когда писать игру это как нечто второстепенное, которое даёт тебе удовольствие, но уже не считается критически важным. Как тортика с чаем навернуть. Когда баги и ошибки не выбешивают, и ты совсем не критичен к тому, какой у тебя код/дизайн/что подумают о твоей игре/принесёт ли успеха и т.п.
Я снова начал писать, написал много и мне было хорошо. Я чувствовал удовольствие от процесса. Через пару дней снова начали появляться проблески страданий. И я снова такой - так, стоп, тут я останавливаюсь. Я живу не для того чтобы превозмогать, а чтобы жить и получать удовольствие.
И я снова ушел в полный игнор юнити.
Так и чередую. Но это моя история, у тебя может все по другому. Собственно, мне кажется, что нужно уметь отвлекаться целиком и полностью на что-то другое, чтобы не было выгорания.
Проблема: "PlayerController.rigidbody" hides inherited member "Component.rigidbody". Use the new keyword if hiding was intended."
Кодишко:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerController : MonoBehaviour { private Animator animator; private Rigidbody rigidbody; public float rotationSpeed = 10f; public float speed = 2f; // Start is called before the first frame update void Start() { animator = GetComponent<Animator>(); rigidbody = GetComponent<Rigidbody>(); }
// Update is called once per frame void Update() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical");
Делал по видосу всё, все проверил, все чётко вылизано с видоса, но нет нихуя не работает, не могу в плеймод.
Не гоните ссаными тряпками, но я задам вопрос: подсвеченные переменные и прочее должны подствечиваться или они могут работать и без подстветки (типо как привязка что ли, я честно не знаю, первый раз чето пишу слизываю)
>>922883 Я понимаю что вы наверняка сейчас лыбу давите с такого слоупока, но я блять понятия не имею откуда взялся этот >"PlayerController.rigidbody", ведь я не называл четко таким же именем ничего ёбана
>>922885 У тебя в ошибке все написано, класс Component содержит компонент rigidbody, и твой класс PlayerController содержит компонент rigidbody, значит тебе всего лишь нужно переименовать компонент Rigidbody на условно _rb. Пикрил таже самая ошибка на видосе что и у тебя. >PlayerController.cs(8, 23) 8 - строка в которой ошибка, 23 - строка которая вызвала строку с ошибкой. >cs0108 Код ошибки. Погуглив можно понять в чем дело. Короче, просто не называй компоненты именами классов юнити, тогда таких проблем не будет. Ну и на код таких гайдеров не опирайся как на что то правильное, в 90% это хуй с горы который от силы месяц говнокодит.
>>922881 Рад за тебя анон. В моем случае я скорее зависим от быстрого дофамина, мне кодинг все так же приносит удовольствие, но этого тупо не хватает что бы продолжать заниматься, блять какая же нахуй шизофрения если так задуматься. Я все же пойду своим путем и посмотрю что из этого выйдет. Изначально пост я высрал кстати для мотивации себя, не хочется прослыть пиздаболом просто, на аиб, лол.
>>922881 Охуенно, если так можешь. Я обычно отвлекаюсь на пару часиков, максимум на день и дальше ТЕРПЕТЬ. Полностью не могу забить хуй, постоянно давит новости, что очередная чмоня высрала 1 сцену из ассетов и срубила на этом миллионы далларов, постоянно давит, что конкуренты то не спят и пиздят мою идею, пока я в носу ковыряю. А еще охота купить хату, тачку, срачку - тоже давка заработать бабла, пока такая возможность есть, а ведь все катится в пизду и становится с каждым днем сложнее.
>>922973 У меня тоже попёрло, как только ECS взял и написал. Сразу понял что я могу просто брать и писать ИГРУ вместо бесконечного поиска говянных алгоритмов.
>>922991 О какой важности ты говоришь? Что подразумевается под важностью? Игра это буквально код, а все что ты видишь в движке - визуализация этого кода. Код никак не может быть последним по важности, он всегда был, есть, и будет на первом месте. Другое дело архитектура. Тут уже да, можно хуй покласть и высрать так как можешь, но даже в таком случае у тебя должна быть чистота в коде. Вторую строчку я вообще не понял, какой нахуй игровой опыт искать, какая бля синергия? Ты из секты что ли какой то? >кододебил безыгорный Кстати, раз ты разбрасываешься такими словами, то будь добр принести свои игры, и парочку скриптов из них. ,Б
>>922991 > код - последнее по важности в проекте Когда ты работаешь в команде и код тебе в тарелку высирают в подвале плюсошарпорабы, ты можешь позволить себе такие заявления, ведь конечный результат зримо импактится твоими вермишелями скриптиков на блюпринтах и редактурой в гуглдоках, которые потом импортируются в проект умными тулзами. Когда ты работаешь соло, то натурально ахуеваешь, что тулзы, сервера, интерграции и прочий служебный кал вынужден тащить на себе в одиночку, если проект отличается от хелловорлда.
>>923048 >>923051 Разобрался. Log10(0) == -бесконечность А ебаный код миксера возвращает тру при установке такого значения, хотя, сука блять, нихуя не тру и нихуя он не ставит. Надо самому чекать значение.
>>916310 (OP) блять да че нахуй делать с "Use the new keyword if hiding was intended. все сука переименовываю переделываю и нихуя не работает (выдает ошибку без пояснения ли предлагает обновить), только вкатится решил уже жопа горит..
>>923075 Ты переопределяешь функции\параметры, но делаешь это без уважения ключевого слова new. Что тебе в ошибке и говорится. Если хочешь скрывать@переопределять - пиши new.
>>923048>>923051>>923072 Я вообще бля не понимаю что ты делаешь. Что это за пиздец, почему у тебя установка звука идет в определении булевой и ты с ней при этом нихуя не делаешь, для чего она вообще в таком случае, что у тебя за пиздец происходит в GetFixedVolume, нахуя вообще нужна эта переменная, ты рандомные числа чтоли шлешь в нее и переопределяешь? Возьми ебучий слайдер и поставь минвелью на -80 и максвелью на 20, да и сиди дергай ползунок сколько влезет, че нахуй сложного то. И при такой хуйне ты винишь юнитеков? Может вина в тебе? Бля, неужто для кодинга и вправду нужно иметь особый склад ума чтоб понимать такие банальные вещи.
>>923100 >это сверхразум и первейший признак говеной, говнейшей архитектуры, как и кодоскиллов В твоей голове разве что. Ты сейчас буквально изобретаешь этот слайдер.
>>923100 Еще раз повторю, у тебя насрано в голове блядь. Разберись в движке и пойми что ты хочешь сделать. Либо делай все через велосипеды, но не пизди на юников, и я не дефаю их, они много говна наворотили, но в большинстве своем все нубасы которые вкатываются делают просто примитивнейшие ошибки из-за не знания дижка и не понимая кода из доков.
>>923110 Вообще, он долбоёб, но есть разница в линейном и нет. Чувствительность ползунка линейное, а затухание звука логарифмическое. Так что нужно написать аж целую одну строчку кода >mixer.SetFloat("MusicVol", Mathf.Log10(sliderValue) x 20); Понятное дело, что всё горение, как обычно, от непонимания справки юнити и собственной жопорукости.
Посоветуйте курс по созданию FPS на Unity. https://www.udemy.com/course/unityfpsgame/ Этот курс неплохой, но местами устаревший (например в версиях новее 2021 не работает прыжок).
Такой вопрос, скорее всего покажется тупым, но блять, почему когда я экспортирую в юнити спрайты, ставлю пиксели на юнит везде одинаковые, 32, спрайты блять получаются разного размера, как это блять работает, я нихуя не пойму. Знает кто как эту хуйню фиксить?
>>924456 Тоесть, если у меня условно есть какой нибудь снаряд на 2 пикселя, и моб условно 20х10 пикселей, я оба файла должен экспортировать в разрешении 32х32? Пиздец шизофриния, а если у меня другой моб будет 80х30, это получается все спрайты нужно будет в 128х128 разрешении делать?
>>924462 а, у тебя дводэ. Вродебы там нужно поиграть с пикс/юнит, и уменьшать/увеличивать это дело. Поиграйся с ползунком, и посмотри, какой будет вписывается.
>>924476 Ну я так сейчас и делаю, просто я не пойму какого хуя я должен этим заниматься если в проге рисую попиксельно. Когда экспортирую в юнити она какого то хуя в половине спрайтов считает что в 1 пикселе их 4, из за чего спрайт уменьшается и приходится ставить не 32 пикселей на юнит, а 16.
>>924303 Ради интереса создал дводэ проект, закинул несколько жепегов 128 и несколько 64. Размеры оказались ожидаемыми, спрайты с одинаковым разрешением - одинаковые.
>>924504 Это пиздец, я нашел в чем была проблема, короче, я тайловую карту когда делал, размер клеток увеличил под сингл спрайт чтоб особо не ебаться, и забыл блять, от этого вся эта хуйня. Ебать я даун конечно. И хуй бы вспомнил если бы за пределы тайлмап спрайты не накидал только что, они очевидно заскейлились как надо. Хочется ебало себе разбить. Спасибо за помощь)
>>924627 Опять C#-хуйлуши изобрели колесо, но обвесили всё умными словами. Шина событий, интерфейс айброкер, хуё-моё. Помню, читал когда-то про делегаты в C#. Читал, читал, а потом как заржу - когда понял, что эти "делегаты" есть нахуй в любом скриптовом языке, просто до сишарперов никто не додумался давать такой ерунде специальное название.
>>924627 как анон думаю, что это все хуита полная. в какой-то момент люди бросили писать код, и стали дрочить концепции. одна охуительнее другой. из всей новомодной придуманной хуйни стоит только на GoF обратить внимание. один черт с практикой придет и понимание, как делоть надо, а как нет. ну, и поглядывать чтотам у древних было с их квейками.
>>924627 На реддит такая срань зайдет (да и в целом для западной аудитории), тамошние рукожопые опущи схавают и попросят добавки - такие-то откровение и верх архитектуры. Для укр-рус-бел сегемента, где тех.специалисты в разы сильнее и где уже наклепали тысячи мобильной хуйни и прохавали весь гемор и подводную вкуснятину хуюнити, это из серии учить деда ебаться.
>>925272 Welcome to the club, buddy. Хуюнитипитеки просто забили хуй как всегда, вот и все. Алсо, меня тут местные дурачки с отрицательным айсикью хуесосили по похожему сценарию, типа не юнити хуйню высрала, а я не осилил
Пацаны, скоро хочу опубликовать в Стиме. Нужно ли что-то настраивать, чтобы пользователь смог мне прислать лог файлы, если будут ошибки, в коде, или прочие краши? Ну типа, такая ситуация. Чел пишет, что ошибка. Я ему: пришли мне лог (c:/где-то/хз). Он мне: ок, вот файл лога.
Билд игры будет генерить лог? Или нужно пердолится со специальными либами, которые ловят ошибки?
>>926040 Это на уровне не возможного, ты на подсознательном уровне будешь играть так как задумал в любом случае, поэтому лучше скинь билд другу, если он есть, либо для анонов выложи, так профитнее будет.
>>926056 Двачую, я когда скинул анонам поиграть охуел от того как по-другому люди могут играть, начал подмечать типажи, но что я заметил так это то что они все сразу пытаются игру категоризировать как что-то им уже знакомое, если игра не вписывается в их знакомые категории, то большинство сразу записывает игру в кал, но те кто более открыт к новому с удовольствием играют. Короче выкладывать игру на публику это обязательно, причём желательно чтобы ты мог посмотреть как они играют, столько инсайтов можно словить.
>>926171 Сениорская зп в целом это от 8к долларов в любой сфере, но стать сениором по факту и устроится на зп сениора это разные вещи, обе сложные по-своему. Поэтому смешно как он рассуждает что с 3д-моделирования он ща вкатиться в сениоры словно это просто пройти курсик недельный.
>>926381 Средняя зп в России примерно 50 долларов в день (что за мания мерять всё в долларах? стереотипы 90-ых?), для программиста 100 долларов в день это весьма легко.
>>926401 >что за мания мерять всё в долларах? стереотипы 90-ых? Это практика для всех стран с проебанной экономикой, у которых сегодня развал, завтра голод, а послезавтра очередная гойда. Я вот больше всегда проигрывал с пидорунделей, которые кричат что-то типа 15 лет назад я получал 30к (при курсе 30), а сегодня я аж 90!11!! (при курсе 100+), как же я поднялся, STONKS!11!
>>926350 >Хули тогда любой не создаст "паршивую мобилку" и не лутает по 20к? Потому что люди пиздец какие тупые. И у многих банально нет времени, потому что они заняты крысиными бегами.
>>926417 Да, вот только выходов из этой гонки немного, либо начать зарабатывать достаточно и не напрягаясь, копя подушку на черный день, либо жить от зп до зп в полусознанке или коупингом что и так сойдёт, либо стать одной из вариаций бомжей. Главное если вдруг начнёт получаться зарабатывать деньги не продолжить гонку копя золото как тупой дракон чтобы потом обернуться и понять что ты старый и всю жизнь только копил деньги.
>>926417 >Погоня за деньгами и есть крысиные бега Да? Что-то я на себе не почувствовал никаких бегов. Просто занимался любимым делом и стал зарабатывать на этом много бабок, при этом у меня нет зависимости от родителей или кабанчика. Да и деньги считать не нужно, просто покупаешь что хочется (не считая дорогих квартир, там уже приходится считать).
А вот работоблядям земля пухом, конечно. У них день сурка и тотальная зависимость. Времени для собственных мыслей совсем не остаётся. Так и сгорают поколения за поколениями.
>>926439 Тащемта секретов никаких нет - просто берешь и делаешь, лутаешь 20к. Было бы ему чему учить - не выебывался левыми скринами 5-летней давности. Запомни, сынок, такие залетные исключительно на удаче лутают бабло - то ли по знакомству, то ли по удачному вкатыванию в струю тренда, а потом в горделивой позе шиза заявляют, как они всего сами исключительно на скилле добились. В снг сидят целые команды далеко не самых тупых чуваков с 10+ летним опытом и годами ищут ниши, времена золотой лихорадки, а тут челик просто "пук-мнямс-кек, без задней мысли ПРОСТО лутаю 20к". Сам как думаешь, что это, скилл или просто выиграл лотерею?
>>926434 >Так все крысы говорят Ну, тебе лучше знать, что там твои говорят.
>>926439 >Сенсей, научи! Направление хотя бы дай, какие мобилки делаешь, как монетизируешь? Значит, смотри. На мобильных платформах просто так никто тебе трафик не даст. Алгоритмы маркетплейса могут тебя подхватить, если увидят, что твою игру активно устанавливают. И тогда ты попадёшь в подборки, где получишь ещё в разы больше трафика. Зарабатывают на мобилках с внутриигровых платежей и/или с rewarded рекламы.
Поэтому первое: СЕО может зарешать. Ты можешь грамотно подобрать название, которое зайдёт за счёт хайпа на какой-то теме аля вышел ФоллГайс и все захотели похожие игры на мобилках, или вышел сериал Игра в Кальмара и все захотели поиграть в нечто похожее. Грамотно составить описание с ключевыми словами, но важно не перестараться, тот же Гугл за такое наказывает. У Эплов в настройках приложения есть отдельная строка для прописывания ключевых слов. И, конечно, хорошие скриншоты с иконкой тоже могут сыграть важную роль.
Второе: в плане продвижения работают те же способы, что и для любых других игр. Можешь присылать ссылки на игру видеоблогерам как минимум малоизвестные блогеры поиграют в твою игру, если это не трешак, публиковать посты на реддите. Но на реддите так просто нельзя зайти и прорекламировать свою игру, нужно сначала набить карму: https://dtf.ru/gamedev/1080281-chto-sdelat-chtoby-reddit-uznal-pro-vashu-igru
Третье: лучше делать 3Д игру, потому что среди 2Д будет крайне тяжело выделиться. Особенно долго живут игры с мультиплеером. Не обязательно делать риалтайм мультиплеер. Можно асинхронный, как в том же знаменитом клэш оф кланс. Тут бескрайняя поляна, всё зависит от твоей фантазии.
Ну и четвёртое, самое животрепещущее: идеи для игры. Желательно выбрать что-то такое, что будет тебе самому интересно. Я вот за гоночки никогда не брался, потому что они мне совсем неинтересны, хотя это крайне популярный и денежный жанр. Кстати, есть бессмертные жанры, которые всегда популярны: стрелялки, гоночки, гта-лайк-игры, выживач. Ты их можешь комбинировать как душе угодно, насколько хватит фантазии и опыта. Если прям вообще нет идей, то нужно больше играть. Не только в мобилки, но и в игры на других платформах. Если интересно, во что сейчас гоняют дети, то можешь посмотреть популярные моды на Роблокс. Что-то уникальное тоже может выстрелить вполне, но шансов, конечно, гораздо меньше. Идеальный баланс наверное знаешь какой: взять за основу популярную, проверенную временем идею и дополнить её по-своему, можно совместить идеи из разных игр, которые тебе понравились.
>>926442 >пук-мнямс-кек, без задней мысли ПРОСТО лутаю 20к Мои слова основываются на опыте. Просто я много повидал людей, которые зарабатывают на мобилках. К слову, я довольно нищий по сравнению с другими. Знал чуваков из питера, которые ежемесячно зарабатывали 600к баксов ещё давно. Или у меня как-то жопа сгорела, когда увидел АСБОЛЮТНО шаблонную ферму с небольшим количеством установок, а там доход был больше миллиона в месяц за счёт продуманной спизженной экономики.
>>926466 >Мои слова основываются на опыте. Ну скажи, попытный, почему гришаков не лутает по 20к в месяц на расслабоне, хотя сео-сосео и прочее наебалово гоев очень хорошо знает и прикручивает и у него целая команда карликов, которая занимается всей этой хуйней? Почему некоторые команды спецов сосут писос годами за дошики, а некоторые бичи, потрогав хуюнити пару недель на курсах, лутают лямы? Игры говно? Так я тебе десятки и сотни примеров приведу, которые вообще пиздец, а профит имеют.
Вот бля, как и предсказывал - пук-срень, ты просто вкинул хуйню, типа скилловый чел, а по факту тебе просто улыбнулась удача, никаких скиллов и даже знаний нет, только выебоны. Повезло? Поздравляю, но не хуй анону голову ебать, типа "ПРОСТО И ЛЕГКО ЛУТАЙ 20К БЕЗ РЕГИСТРАЦИИ И СМС (даже дебил справится)" (тм). Не просто и не легко, обсираются сотнями тысяч людей без реальных на то причин, как бы там маня-эксперты пост-фактум не расписывали потом.
>>926476 И да, вот тебе реальный опыт - надо сначала найти НИШУ, где еще большие дяди не засрали все (удачи), потом высрать хорошего качества проект (нужна команда), потом нихуевые силы въебать в маркетинг органики (то самое СОСЕО, но и еще кучу всякой дряни), потом, если есть шансы пробиться, надо буквально срать золотыми слитками в рекламу. И в каждом шагу кучи нюансов, на которых можно обосраться.
5-лет назад в гугл-плее, это не то же самое, что гугл плей в 2к23 2к24-ом. Да даже не тоже самое, что хотя бы год-полтора назад. Люди идут устраиваются пахать на дядю-кабана не из-за того, что они тупые или ленивые (один ты, умный, да, высрал 3 слога дженерик-хуйни). Они очень даже талантливые и гораздо поумнее тебя будут. Просто они понимают, что делать на рынке без капитала, инвестиций по знакомству или без золотой подковы в жопе практически нехуй, это инстант сосамбо. Не все так легко, как залетный, сорвавший джек-пот, рассказывает.
>>926466 >Значит, смотри. На мобильных платформах просто так никто тебе трафик не даст. Алгоритмы маркетплейса могут тебя подхватить, если увидят, что твою игру активно устанавливают. И тогда ты попадёшь в подборки, где получишь ещё в разы больше трафика. Зарабатывают на мобилках с внутриигровых платежей и/или с rewarded рекламы. > >Поэтому первое: СЕО может зарешать. Ты можешь грамотно подобрать название, которое зайдёт за счёт хайпа на какой-то теме аля вышел ФоллГайс и все захотели похожие игры на мобилках, или вышел сериал Игра в Кальмара и все захотели поиграть в нечто похожее. Грамотно составить описание с ключевыми словами, но важно не перестараться, тот же Гугл за такое наказывает. У Эплов в настройках приложения есть отдельная строка для прописывания ключевых слов. И, конечно, хорошие скриншоты с иконкой тоже могут сыграть важную роль. > >Второе: в плане продвижения работают те же способы, что и для любых других игр. Можешь присылать ссылки на игру видеоблогерам как минимум малоизвестные блогеры поиграют в твою игру, если это не трешак, публиковать посты на реддите. Но на реддите так просто нельзя зайти и прорекламировать свою игру, нужно сначала набить карму: >https://dtf.ru/gamedev/1080281-chto-sdelat-chtoby-reddit-uznal-pro-vashu-igru > >Третье: лучше делать 3Д игру, потому что среди 2Д будет крайне тяжело выделиться. Особенно долго живут игры с мультиплеером. Не обязательно делать риалтайм мультиплеер. Можно асинхронный, как в том же знаменитом клэш оф кланс. Тут бескрайняя поляна, всё зависит от твоей фантазии. > >Ну и четвёртое, самое животрепещущее: идеи для игры. Желательно выбрать что-то такое, что будет тебе самому интересно. Я вот за гоночки никогда не брался, потому что они мне совсем неинтересны, хотя это крайне популярный и денежный жанр. Кстати, есть бессмертные жанры, которые всегда популярны: стрелялки, гоночки, гта-лайк-игры, выживач. Ты их можешь комбинировать как душе угодно, насколько хватит фантазии и опыта. Если прям вообще нет идей, то нужно больше играть. Не только в мобилки, но и в игры на других платформах. Если интересно, во что сейчас гоняют дети, то можешь посмотреть популярные моды на Роблокс. Что-то уникальное тоже может выстрелить вполне, но шансов, конечно, гораздо меньше. Идеальный баланс наверное знаешь какой: взять за основу популярную, проверенную временем идею и дополнить её по-своему, можно совместить идеи из разных игр, которые тебе понравились. Звучит адекватно, но почему именно мобилки? Просто звучит так будто такой же алгоритм и на пека сработает?
>>926476 Я бы назвал это "Ошибка Кабанчика". Видел эти мёртвые проекты и было жаль опытных разработчиков, которые просирали на них время. Причина провала здесь банальна. Кабанчику неинтересны игры, ему интересен исключительно бизнес. Он прослышал, что на играх можно делать большие деньги и решает вложиться в разработку игры, при этом сам в этом он не участвует. Всё управление отдаётся какой-нибудь бездарности. Программистов и моделеров при этом могут нанять очень хороших, но что толку, без грамотного управления проект обречён. Нет визионера, нет идеи, есть только желание навариться. Отсюда выходят мёртвые, уродливые, никому не нужные игры. Потому что зачастую в них нет ничего нового, какая-то очередная пародия. Либо это какой-то винегрет, где каждый из разработчиков делал по-своему, опять же из-за того, что нет адекватного управления. Ну ты понял.
Твой гришаков, судя по первому взгляду, такой же кабанчик-самодур, только чуть смышлёнее за счёт того, что изучает сферу в которой работает и делает выводы - ОБУЧАЕМЫЙ. Но, думаю, сами игры ему ничуть не интересны. Он пытается методом брутфорса и просмотра циферок в аналитике заработать как можно больше.
>>926479 >И да, вот тебе реальный опыт - надо сначала найти НИШУ, где еще большие дяди не засрали все (удачи) А-а-а! Я много раз слышал подобное от дятлов, вроде тебя! Сначала мне говорили, что флеш игры забиты, ты там ничего не заработаешь. Потом говорили, что на мобилки поздно идти, там всё забито и нужны миллионные вливания в рекламу. Естественно это был обычный пиздёж безыгорников, и хорошо, что я их не слушал.
>5-лет назад в гугл-плее, это не то же самое, что гугл плей в 2к23 2к24-ом Блять, я это и 5 лет назад слышал. Точно такой же пиздёж.
>>926492 >Звучит адекватно, но почему именно мобилки? Просто звучит так будто такой же алгоритм и на пека сработает? Аудитория у мобильных игр гораздо больше и разнообразнее, а значит выше шансы заработать. Плюс на мобилках ты будешь выпускать условно-бесплатную игру, а на ПК тебе нужно будет продать свою игру. Но самое главное - к чему у тебя больше душа лежит. Меня тошнит от инди-игр на ПК, поэтому я туда не лезу. Но если ты фанат инди-игр, то тебе лучше создавать игры на ПК. Создавай то, что тебе самому будет интересно, чтобы ты хоть немножко понимал свою аудиторию.
>>926572 >Создавай то, что тебе самому будет интересно, чтобы ты хоть немножко понимал свою аудиторию. Так и делаю, просто игра для аудитории, частью которой я являюсь делается небыстро, просто ты так описал что легко получил свои 20к что я подумал что мог бы сделать быстрый детур в мобилки, заработать на пару лет спокойной разработки и вернуться к своей игре.
>>926572 >Создавай то, что тебе самому будет интересно Индюк в одиночку не создаст то, что ему самому будет интересно, хватит лить булшит ньюфагам что характерно, они, развесив уши от таких как ты, потом и срут в рынок кучей говна, делая всем ПЛОХО. Это процесс на года 3-4, а то и 5+ на фуллтайме минимум, при имеющихся хороших тех.скиллах. Помимо этого нужны нихуевые вливание в сферы, в которых индюк просто из-за ограниченного человеческого ресурса времени не станет хорош - навскидку музыка-звуки, графика. А далее продвижение продукта, что есть отдельной наукой не легче самого создания игр. Это получилось у единиц, имена которых знают чуть ли не по всему миру. Сингл-индюку надо начинать с крайне простых игр, с условного гипер-кежа, клона марио и т.д., что он сможет довести до конца. А теперь ,внимание, вопрос. Даже джва. Будет ли это ему интересно? Как он это говно сможет продать при такой конкуренции?
>на мобилки поздно идти, там всё забито и нужны миллионные вливания в рекламу Ну сейчас как минимум проплати граф.ассеты, что бы не как говно выглядело, затем купи лицензию, затем минимум 40$ per project отстегни на прохождение 2-недельного обязательного тестирования, затем вкидывай в рекламу без гарантии, что хотя бы эти траты окупятся. Да, это, конечно же, ровно тоже самое, что 5 лет назад - пук-срень, ассетфлипчик (и тот спижженный) за пару недель - пара-тройка kUSD лутанул, высрал гоночку-раннер по прямой дороге - вот тебе и 20к. Бля, да 5 лет назад можно было еще вкатываться в дженерик-матч-3 проекты и находить на это спонсорские бабки изи.
Говорю же - очень удобно вещать пост-фактум про обсеры других, с умным ебалом рассуждать почему же не вышло - целый отдельный тред тут есть. Очень удобно вещать с позиции ошибки выжившего, удачно лутанувшего бабла. Не, красава, я тебе завидую, но вот выиграв в лотерею учить потом других жизни, причем учить хуйне, - це пиздец. Твой месседж это буквально "нормально делай @ нормально будет", только вот реальный мир работает немного иначе.
И, опять же, никакой конкретики, просто одна вода, одни общие фразы, которые и так все понимают. Что конкретно делал? Какие механики юзал, что юзерам так зашло? Как настраивал баланс? Не, нихуя. НУ ТАМ СЕО И РЕКЛАМКУ НАСТРОЙ)00) ДЕЛАЙ ЧТО НРАВИТСЯ))0)))) ПРОСТО БУДЬ СОБОЙ, АНОН)0))) ПРОСТО КАЙФУЙ И ДЕНЬГИ К ТЕБЕ ПОТЯНУТЬСЯ)0)) Тебе бы книги по успешному успеху писать.
P.S. Я тебя, успешного, с охуительными советами уже тут не первый раз встречаю. И каждый раз - размытая общая хуйня и 0 конкретики. Тебе не стыдно молодняку голову ебать?
>>926572 >Причина провала здесь банальна. Кабанчику неинтересны игры, ему интересен исключительно бизнес. Только вот мобилки это не игры, это самый чистый бизнес. Всегда был. С циферками, с табличками, с аналитикой, с аб-тестами всего и вся, с кучей метрик, с кучей данных на каждый пук, с холодным расчетом, что и сколько даст каждое изменение и минимально подвинуть спрайтик, с крайне хитрожопой (читай - подкрученной, наебной и нечестной) игровой логикой-балансом, с выверенной до миллиметра стратегией как с юзера вытянуть каждый цент, юзер там буквально марионетка в иллюзии и пляшет ровно туда и ровно так, как это задумали геймдизы. Вот ты и спалился, эксперт.
>>926581 >Индюк в одиночку не создаст то, что ему самому будет интересно, хватит лить булшит ньюфагам От индюка зависит. Да и можно найти себе компаньона. Ты будешь код писать, а он займётся графикой. Но ты всё свёл к каким-то своим комплексам на этот счёт, которые возвёл в абсолют.
>Это получилось у единиц, имена которых знают чуть ли не по всему миру Хуйню несёшь. Многие индюки зарабатывают себе на жизнь таким образом.
>Сингл-индюку надо начинать с крайне простых игр, с условного гипер-кежа, клона марио и т.д., что он сможет довести до конца. Кому "надо"? Я сразу начинал с относительно сложной игры, правда у меня уже был опыт программирования. Создал рабочий прототип, прописал что хочу создать и таким образом нашёл компаньона на форуме.
>Да, это, конечно же, ровно тоже самое, что 5 лет назад - пук-срень, ассетфлипчик (и тот спижженный) за пару недель - пара-тройка kUSD лутанул, высрал гоночку-раннер по прямой дороге - вот тебе и 20к. Бля, да 5 лет назад можно было еще вкатываться в дженерик-матч-3 проекты и находить на это спонсорские бабки изи. А 15 лет назад просто за факт создания мобильной игры гуглы присылали чек на 100 тысяч долларов! Вот люди жили! А ещё через 5 лет ты скажешь "вот раньше времена были, сынки! сейчас уже точно не вкатишься! бля буду!"
>Говорю же - очень удобно вещать пост-фактум про обсеры других, с умным ебалом рассуждать почему же не вышло - целый отдельный тред тут есть Мне похую на обсёры других. Мне интересен успешный вкат. Взять того же анона с его That Level Again. Было несколько других анонов, которые успешно вкатились. При том, что это мёртвый раздел.
>выиграв в лотерею учить потом других жизни, причем учить хуйне, - це пиздец Если ты приравниваешь большой труд по разработке игр к лотерее, то ты ебаклак. >учить потом других жизни Но конечно лучше ныть и рассказывать сказки о том, как раньше было лучше.
>И, опять же, никакой конкретики, просто одна вода, одни общие фразы, которые и так все понимают Какая конкретика тебе нужна? Конкретно мой кейс тебе ничего не даст. Тем более ты в сотый раз пукнешь про ошибку выжившего. Я описал все основные факторы, которые влияют на успех игры. В основе должна лежать проверенная, популярная идея, которую ты уже дополняешь своими идеями. Делать желательно в 3Д. Выбирать нетленные жанры, которые я перечислил. И так далее. Некоторые кабанчики умудряются методом брутфорса выпускать хитовую игру, которая потом кормит его и команду много лет. Очевидно, что если ты будешь делать очередной 2Д платформер, то твои шансы на успех будут крайне низкими.
Или мне нужно тебя за ручку провести, рассказать как установить юнити, придумать за тебя идею, код написать, может ещё моделера тебе найти? Такую хуйню ищи у продавцов курсов.
>>926634 Первое: Какой смысл от аналитики, если она будет анализировать говно? Тебе нужна основа в виде интересной игры, которая захватывает. Но ты говоришь так, будто первична аналитика.
Второе: Подобным занимаются специальные люди. Обычно такие люди работают в компаниях, которые зарабатывают много миллионов, а иногда миллиарды долларов. Поэтому они вкладывают в этом кучу денег. Обычные разработчики этим не занимаются, их это никак не касается. Но ты, как и дятел выше, зацепился за какую-то хуйню и возвёл её в абсолют.
Третье: На ПК все более-менее большие компании используют аналитику. Иногда даже раскрывают публике какие-то детали, типа кто сколько раз подрочил в игре или кто на каких персонажах играет. А как они распоряжаются остальное информацией и какую информацию собирают - чёрт их знает.
Делал сцену по курсу. Долго делал. А потом создал новую сцену - и получилось как-то так что я сохранил новую пустую сцену вместо той, которую пилил несколько недель. И понял я это только после того как сделал дофига изменений с новой сцене и закрыл Unity. Возможно ли восстановить старую версию проекта? На гитхаб ничего не пушил.
>>926713 Мне вот интересно, как можно было вообще несколько недель ковыряться и ни разу не сохранить, особенно когда пикрил на каждый пердеж вылазит, да и во всех курсах и книгах всегда чуть ли не каждой строкой капсом пишут ВОЗЬМИТЕ ЗА ПРИВЫЧКУ СОХРАНЯТЬ СЦЕНЫ НА СЛУЧАЙ РАНДОМНОГО КРАША. Чето пиздаболией воняет, я более чем уверен что ты тупо удалил старую сцену вместо новой пустой, сохранил при закрытии юнити, а когда снова открыл не нашел старой сцены, понял что обосрался, и начал в панике искать решение. Ну сиди собирай заново, скрипты и префабы то никуда не делись, наказание за тупость.
Помимо того что как только попробывал сделать новую сцену, или выйти из движка ему бы насильно написало что надо либо сохранить или удалить, и проигнорить это было нельзя.
>>926724 >>926734 >>926740 >>926735 >>926722 Я сам не знаю как это получилось. По уроку из курса надо было создать новую сцену, назвав ее Главное Меню. Я это сделал. Не помню, сохранял что-то или нет. По урокам из курса я воссоздал это главное меню - там есть кнопка Play и кнопка Quit. Сделав эти кнопки и нажав на Play, я должен был попасть на первый уровень. А попал я на абсолютно пустой уровень. Начал разбираться, открыл ту сцену, которую делал несколько недель. А она пустая. Стал искать в проекте другие сцены. А их нет - только Главное меню и Первый Уровень. Как это вышло я не знаю.
>>926790 Кажется понял. Я нажал File -> New Scene, открылась новая пустая сцена. А потом я нажал Ctrl+S... ...И сохранил эту новую сцену по названием Первый Уровень.
>>926713 Так это тебе на пользу пойдет. Ты там несколько недель ковырялся с каким то простейшим курсом. Теперь ты заново сделаешь эту сцену в разы быстрее, скажем за пару выходных. Так навык и нарабатывается.
Кто-нибудь уже пытался интегрировать в Стим дек? Много возни? Я перенес туда exe шник, запустил через протон. Все работает, new input system фурычит, аbxy работают, но стики работают с задержками. Но наверное из-за того что запустил не стандартно, однако хз. Может когда опубликую в стиме все четко будет
Понял в чем проблема >>926808 И это печально кстати. На самом деле лагает, когда управляю трекпадом для обзора камерой. Дело в том, что по умолчанию он симулирует мышь. В итоге, когда я с одной стороны для перемещения использую левый стик, new input system переключается на scheme "Gamepad", а когда трогаю трекпад - на "Keyboard&Mouse". В итоге это переключение происходит, возможно, тысячу раз в секунду, а это мусор и зависание. Печаль короче. Видимо придется установить какой-то api от stram, где по умолчанию выставить трекпад как джойстик, а не мышь
В ведьмаке 3 есть такие настройки: 1. Вкл/выкл vsync и сразу ниже: 2. Лимит частоты кадров: 30, 45, 60, 90, 120.
Допустим, у меня моник 75герц. Я включил vsync=on, и выбрал 45fps.
В юнити, мне для этого пришлось бы выполнить такой код QualitySettings.vSyncCount=1 (включаем vsync) Application.targetFrameRate=45 (лочим fps)
Vsync=1 должен установить строго фиксированный fps, который поддерживает монитор, в моем случае 75fps, не так ли? Тогда зачем мне потом ставить 45fps? Получается, 45fps перезатерет vsyn?
Vsync вроде нужен для избавления от различных артефактов. Но если я после установки vsync=on вручную пропишу желаемый fps, артефакты же появятся, не?
>>926853 Вот настройки из ведьмака. То есть я могу включить vsync и мой моник будет выдавать 75fps, сколько и может. А нижу выбрать 50fps и будет 50fps. Но при этом галочка vsync не снимается, то есть, создается впечателение, vsync по прежнему работает. чзх
Например, я включу QualitySettings.vSyncCount=1. Пусть каждый моник показывает сколько может. Однако, если моник 144 герц, и игра будет отскакивать до 100, то чел захочет стабильности, и захочет залочить на 90. Наверное, для этого и добавили эти взаимоисключающие опции. Если игра отлично вывозит герцовку твоему моника - включаешь vsync. Если ты захотел по каким то причинам уменьшить fps, например, для экономии батарии, если играешь на ноуте, то ставим targetFrameRate=30fps например, но при этом отрубаем vsync
>>926912 Хуй знает, как в ведьмаке, юнити игнорирует таргет фреймрейт, если установлен всинк. При этом виар и мобилки игнорируют всинк всегда, для мобилок нужно указывать таргет фреймрейт.
>>926925 Да, я читал в доках, vsync только на PC. vsync мне точно нужен. Без него у меня ебейшие полосы периодически появляются, когда крутишь камерой. Юнитя предлагает следующие значения vsync = 1,2,3,4. То есть, если моник 60, то vsync = 1 залочит на 60fps, vsync = 2 залочит на 60/2=30fps, vsync = 3 залочит на 60/3=20fps, vsync = 4 залочит на 60/4=15fps, То есть, если челу приспичит уменьшить fps ему придется выбрать из этих значений. Ладно, похуй
>>927091 Прям самая нужна вещь, добавлять нонейм форматы в движок. Ничего важнее не нашлось, кроме этой бесполезной хуиты. А потом людей сокращают и движок стагнирует.
>>927513 Измени таргет сдк на нужный тебе в настройках проекта. При билдинге юнити сам предложит закачать указанную версию. Я сам никогда не закачивал сдк.
>>927988 >>927989 Если добавить твою строчку кода, то пуля летит в одном направлении, куда бы я не смотрел. Когда возвращаю строчку кода Instantiate(bullet, firePoint.position, firePoint.rotation); пуля летит туда, куда смотрит камера.
>>928065 Решил проблему. В префабе пули повернул Bullet Bone на 90 градусов - так, чтобы пуля стала смотреть вниз. После этого пули при выстреле расположились горизонтально.
Все равно что-то делаю не так, раз пулю пришлось расположить началом вниз, но что?
Есть машина, она двигается по криволинейной траектории. Задача - при нажатии кнопки спавна нужно телепортировать ее на позицию, которая отстает от текущей на 10 метров, при чем лежит на траектории. При повторном нажатии на кнопку - телепортировать в эту же точку снова, а не на новую позади.
>>928309 А в чем проблема? Сделай массив сохраненных точек, и хоть десяток разных. Делаешь функцию которая творит ТП, в нее просто загружаешь нужную точку и всё.
Всем привет, возможно это уже обсуждалось, но все же. С чего лучше начать обучение юнити, непосредственно с самого движка (книги, курсы и тд) либо с с#? Либо с# лучше изучать параллельно движку в зависимости от необходимости? Также накидайте литературы с которой лучше начать обучение
>>928324 Я бы рекомендовал отдельно начать изучать C#, создавая консольные приложения. Ещё момент: если ты хорошо освоишь C#, то считай, что ты освоил и все остальные языки. Потом без проблем сможешь перейти на Unreal Engine, например.
Вопросик касательно пиксельперфект камеры. Есть какие нибудь способы сделать что бы камера при движении не скакала по пикселям, а двигалась плавно? Я уже заебался искать решение этой хуйни, глаза ахуеть как болят от этого ебучего попиксельного дерганья.
>>928324 В шапке есть пару книг, их берешь и занимаешься по ним, как только во время практики поймешь что нихуя не понимаешь что происходит, закрываешь книгу и идешь говнокодить то что хочешь. Сидеть глотать литературу месяцами нахуй не надо, тем более учить язык отдельно от движка, выхлоп от этого нулевый. Знания должны поступать порционно в зависимости от твоих потребностей. Захотел ты допустим стрельбу сделать, гуглишь "как сделать стрельбу", смотришь говногайды и повторяешь, тут еще важно не тупо повторять, но и понимать что пишешь и для чего. Первое время офк будет один хуй не понятно и сложно, но это с любым занятием так, главное не останавливаться и гуглить то что не понимаешь, потом будет проще. Это я конечно опираясь на свой опыт высрал, у тебя может быть и по другому.
>>928324 Двачую этого >>928333 и совершено не двачую этого додика >>928327 Если у тебя в планах делать игры на Юнити, то тебе не нужно нивкоем случае дрочить голый net и консольные приложения. Всё что тебе нужно это может прочить поверхностную базу по программирования по типу - Что такое массивы, функции и т.д, чтоб просто понимать когда видишь код что вообще там происходит, это 2-3 дня базы так сказать. Дальше ты фантазируешь какую бы игру мечты хотел сделать, гоночки, стратегию, аркаду или что еще, и следом ищешь гайд на ютубе как какой нибудь пчелик делает подобное, или что-то близкое по механикам. Далее последнее создаешь проект своей игры, и начинаешь вместе с пчеликом делать. Обязательно гуглить каждую не понятную хрень, и внимательно смотреть видосик. И самое-самое главное не в коем случаи не дропай разработку, дострадай но высри альфу 0.0.01 версии которую выложишь на итч, и забудь о ней. Это позволит тебе в будущем возможно завершить свою первую игру. А если же дропнишь с мыслями - Ну вот следующую игру сделаю заебись, а на эту уже лень тратить силы, то так до конца жизни и будешь делать игры в стол.
Кое-что еще важно. Если мечтаешь делать игры в команде или на работе, то тут уже придется подрочить книжки, и всякий другой стафф, и приготовиться душиться пару месяцев.
>>928333 >камера при движении не скакала по пикселям, а двигалась плавно? Легко, бери или делай сам камеру с оффсетом. Из готового есть кинематик машин. Смысл один, у тебя есть текущая позиция, и старая позиция, и каждый тик делаешь перемещение со старой к новой. Это тащемта база каждой адекватной камеры. Можешь глянуть в пакете юников стандартном там реализована она в ручную кодом.
>>928340 Пчел.. Вопрос был не как сделать так что бы камера следовала за плеером, а как сделать так что бы камера двигалась свободно а не прыгая оп пикселям. Видрил то о чем я говорю.
>>928336 >2-3 дня базы >чтоб просто понимать когда видишь код что вообще там происходит С такими "знаниями" его потолком умений будет переписывание готового кода с ютуба. Чуть шаг в сторону от туториала и придётся бежать куда-нибудь на форум, просить умных людей поправить код. А если для реализации его идеи нужно ещё активно ООП использовать, то всё, это будут похороны без реальной базы. Потом попробует на работу устроиться, его начнут спрашивать стандартные вещи, которые должен знать разработчик на net, а он бе-ме и до свидание.
>>928383 Да не трогай ты этого шиза, пусть дальше пишет по туторчикам с ютабчика или юдеми. Пускай раз за разом пишет кал говна и дрочит на маня пОсТеПеНнОе уЛуЧшЕнИе.
Я, например, уже устал этому кретину что-то пытаться объяснять, и ты просто забей.
Добавил AI Navigation, повесил Nav Mesh Agent на врага. Враг должен постоянно преследовать - но когда я поднимаюсь на возвышенность, он меня словно не видит и стоит на месте. Приходится его подманивать, ходя рядом. Почему?
>>928427 В скрипте аи как находит игрока? Рейкаст кидает? Или вектор в сетдистанс на прямую передается? Если рейкаст сферу кидает, то она скорее всего тупо не достает из за размера.
>>928467 Делал недавно в другом движке, я так понимаю ты говоришь про что-то подобное, вот тут чувак с 4-й минуты объясняет как она работает (тебе понятно придется переделать все средствами юнити) https://www.youtube.com/watch?v=zxVQsi9wnw8&t=246s
>>928470 Да я натыкался уже на этот видос, только хуй знает как в юнити это сделать адекватно. Попробовал через канвас отобразить рендер текстуру, ну вроде заебись, получилось то что и надо, только блять текстуру в 4к надо рендерить что бы норм была, лол.
>>928652 Много работаю в юньки и редко сталкиваюсь с таким же внезапным сраньем в консоль с ошибками. Лечения обычно происходит в двуз вариантах. 1. В 90% помогает просто перезапустить эдитор. 2. В очень редких случаях сношу юньку, чишу аппдату с кэшом, и ставлю чистую.
>>928680 пикрил >>928687 Ну у меня тоже это не частая хуйня, но если начинает то начинается. Лечится то это понятно как, просто сам факт того что эта хуйня случается заебывает. Причину бы узнать всего этого.
>>928702 >Причину бы узнать всего этого. С вероятность 99.99% ты не узнаешь. Для этого надо декомпилировать и колупать ядро с исходниками, и потом в ручную дебажить, короче врятли это возможно обычному человеку. Просто забиваешь хуй и всё.
>>916310 (OP) Захотел прикрутить звук шагов при перемещении персонажа, при нажатии на w или s. Написал такой код: if (Input.GetAxis("Vertical") != 0) audioSource.Play(); И происходит ровно обратное: когда движения нет, воспроизводится звук шагов, а когда движение начинается, звук пропадает. А если вместо != поставить ==, то всё работает как надо.
Я даже специально вывел на консоль ввод: print(Input.GetAxis("Vertical")); - показывает 1 или -1 при нажатии w или s.
Почему код сверху не работает как должен, а работает наоборот?
>>929341 >audioSource.Play(); В этом и дело. Ты запускаешь клип заново в каждом кадре и не даешь ему тем самым проиграться. Поэтому когда не нажаты клавиши все работает нормально. Документацию для кого писали?
Вот создаю я канвас, он появляется у меня в сцене. Во-первых, он огроменный, и не уменьшается. Во-вторых, его левый нижний угол стоит на координатах (0, 0) и не сдвигается. У всех же так, не у меня одного? Он же мешается в сцене. Что с этим делать? Сдвигать все объекты сцены чтобы они не попадали под канвас? Делать канвас невидимым (в сцене) чтоб не мешался, и включать/выключать видимость по необходимости? Менять режим рендеринга на ворлд спейс? (тогда канвас можно будет сдвинуть и уменьшить, но наверное вылезут всякие подводные) Как поступают олды?
>>929581 Тут много вариантов что можно сделать. Всё сильно упирается в твое желание. Приведу примеры. 1. Делать элементы интерфейса в отдельных сценах и потом их подгружать в гире. 2. Выключать гейм обжект или его компонент. 3. Скрывать в редакторе глазом. 4. Делать игру не в нулевых координатах. 5. Забить.
Добавил вспышку от выстрела (muzzleFlash). Он включается при выстреле в методе FireShot(), но в Update она отключена - muzzleFlash.SetActive(false). И почему то при стрельбе вспышка не активируется.
Когда я убираю строчку muzzleFlash.SetActive(false) из Update, все работает - объект постоянно активен - и вспышка постоянно вспыхивает рядом с дулом автомата. Значит, проблема в этой строчке и ее нахождении в Update. Аноны, может кто знает в чем проблема?
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerMove : MonoBehaviour { public static PlayerMove instance;
public float moveSpeed, gravityForce, jumpForce, sprintSpeed; public CharacterController characterController;
private Vector3 moveInput;
public Transform cameraTransform;
public float mouseSensitivity;
private bool canJump; public Transform groundCheckPoint; public LayerMask ground;
public Animator animator;
public Transform firePoint;
public Gun activeGun; public List<Gun> allGuns = new List<Gun>(); public int currentGun;
public GameObject muzzleFlash;
private void Awake() { instance = this; }
// Start is called before the first frame update void Start() { currentGun--; SwitchGun(); }
// Update is called once per frame void Update() { float yVelocity = moveInput.y;
>>930520 Чтобы сохранять деньги которые накапливаются в процессе игры на которой я заработаю девять тысяч миллиардов восемь миллионов семсот девяносто рублей
как конкретно пакуются нормалмапы в юнити? красный канал перетаскивается в альфу и заливается белым, зеленый вроде бы остается на своем месте, но что с синим происходит? тоже белым заливается и реконстрируется шейдером? я почему спрашиваю, ведь в этом случает целых два канала(красный и синий) в текстуре просто не используются, значит в них можно какое-нибудь АО и прочие ч\б текстуры дополнительно пихнуть.
В UI должно отображаться кол-во убитых врагов. Убиваю одного - текст меняется с Killed Enemies: 0 на Killed Enemies: 1, но больше число убитых врагов не прибавляется. Не могу понять почему.
public class EnemyHealth : MonoBehaviour { public int currentHealth, killedEnemies;
// Start is called before the first frame update void Start() {
}
// Update is called once per frame void Update() {
}
public void DamageEnemy(int damage) { currentHealth -= damage;
>>930644 Попытался сделать так: UI класс public void UpdateKilledEnemiesText() { killedEnemiesText.text = "Killed Enemies: " + EnemyHealth.instance.killedEnemies; }
EnemyHealth класс public void DamageEnemy(int damage) { currentHealth -= damage;
>>930644 >>930647 Ох, блин. Путем долгих раздумий (случайно) решил проблему.
Добавил в UI класс следующую переменную: public int killedEnemies;
И в классе DamageEnemy при смерти врага я сначала обращаюсь к классу UI, увеличивая переменную, а потом обращаюсь к UI, обновляя текст. Может кто объяснить почему это не работало, когда переменная killedEnemies была в этой функции?
public void DamageEnemy(int damage) { currentHealth -= damage;
>>930837 Ну в твоем случае как правильнее не уместно. Тут скорее как что бы работало. При загрузки новой сцены, все изменения старой - пропадают, твой счетчик киллов не исключение. Значит тебе нужно как то сохранить цифру этого счетчика. Самое простое это создать ScriptableObject и записывать в него. Пикрил пример того что будет работать. Настоятельно рекомендую самому ознакомиться что такое скриптовый объект, и как его можно юзать.
>>930648>>930837 Кстати по твоему прошлому вопросу. Впрочем, я хуй знает почему ты сам не понял в чем была проблема, но судя по тому что ты юзаешь синглтон для скрипта, объектов с которым на сцене может быть больше одного, все становится понятно. Сколько ты времени потратил на изучение базы? И изучал ли ты ее вообще? Попробуй в класс EnemyHealth в методе Start или Awake добавить такую строчку if(Instance == null) Instance = this; else Destroy(gameObject); и посмотреть что из этого получится. А изначальная проблема заключалось в том что ты киллы 'считал' в скрипте хп врага, лол
// Update is called once per frame void Update() { FinalScreen.instance.killedEnemiesText.text = "KILLED ENEMIES: " + GameManager.instance.killedEnemies; }
И все заработало, на финальном экране отображается кол-во уничтоженных врагов.
>>930844 >но судя по тому что ты юзаешь синглтон для скрипта, объектов с которым на сцене может быть больше одного, все становится понятно. Сколько ты времени потратил на изучение базы? И изучал ли ты ее вообще? Попробуй в класс EnemyHealth в методе Start или Awake добавить такую строчку
Такого не знал, буду иметь ввиду. Делаю по курсу с Udemy, честно говоря даже в голову не приходило что public void Awake(){ instance = this; } - это вызов синглтона.
>>930842 А может ты знаешь, как обездвижить игрока при его смерти? Если использовать строчку gameObject.SetActive(false); - то вылезает ошибка что Coroutine не вызывается, потому что объект не активен. А если вызов Coroutine поставить вначале, и только потом gameObject.SetActive(false); - новая сцена просто не загружается.
public void DamagePlayer(int damage) { currentHealth -= damage;
>>930850 Добавь булевую dead. В DamagePlayer в случае если хп меньше нуля присваиваешь dead истину. В методе передвижения сначала выполняй проверку dead, если ложь то метод продолжает выполняться, если истина то выход из метода.
то чувство, когда делать что-то трехмерно на чужих ассетах не позволяет гордость, а на своих - криворукость :c
даже уроки вида "лоуполи моделька за 5 минут" занимают пару часов и на выходе вместо угловатого человечка получается помесь персонажа роблокса и кирпича-метамфетаминщика
кто что думает про 2.5д-стиль, когда окружение частично 3д, но персонажи и большинство объектов 2д-шные? как в Лмбе, Донтстарве и ДаркестДанжене
>>931127 да, это какое-то дрочево. я подозреваю что в стандарте сделали так, на первый взгляд нерационально, из-за вариантов. да и слабо понятно будет игроделам с какого хуя в нормалях какие-то каналы совсем не нормали, а что-то другое. с другой стороны я разобрался чуток и накропал упаковщик@распаковщик, но это троллейбус из батона, юнити это и так в инспекторе делает. по крайней мере что-то новое узнал..
Поясните, что это за хуйня? Буквально после каждого малейшего изменения в коде мне надо ждать секунд 8, а после запуска значка плей еще примерно столько же. Это так должно быть? Комп i7 с печью 3060, так что вряд ли в этом проблема Я только вкатываюсь и неделю неделю до этого с годотом и там все моментально запускалось, тут просто эту штука вымораживает вымораживает, может я тут что то не так настроил?
>>931256 >>931236 Чет я в ахуе, добавил плавный контроллер камеры теперь компилинг 30 секунд занимает 2 раза, одну цифру не так ввел, все бля минус минута жизни, ору бля. Как профессионалы на хуйне работают?
>>931236 >>931261 и хули ты хотел? ты же не на скриптовой хуете вроде питухона пишешь, а вообще можно отключить калпиляцию и самим её запускать по хот кею
посоны, обжегся на unirx, TakeUntilDisable/TakeUntilDestroy частенько не срабатывает, хотя компонент выключается/уничтожается нормально. причем не говорит нихуя что не сработало, а подписка остается. меня это заебло и я решил перейти на кеширование подписок как IDisposable. вроде и нормальный полет, но опять какая-то хуйня пошла в последнее время. я точно знаю что IDisposable есть, он работает и он не нуль, я это проверял много раз вот такой метод вызывается менеджером снаружи упрощенно: public void Cleanup() { //... _sub.Dispose(); //... MonoBehavour.Destroy(this); } дестроится уже после того как диспозится, но почему-то _sub ИНОГДА оказывается нулем и срет нулрефом. _sub?.Dispose() с нулчеком убирает проблему, но почему она вообще нуль, когда не должна? с ней ничего в процессе не делается такого, от чего она откиснуть должна. сборщик ее тоже вроде бы забрать не должен, ведь она живет в живом объекте. что за чертовщина? >>931236 асмдефы используешь?
>>931287 >>931307 >>931284 Если срунити надо целую минуту чето там конпилить в 2д игре на ай7 то это проблемы срунити, а не того, что новичек там амсдефы не юзает. Есть огромные проекты с ебейше насраным в апдейт кодом, которые компилируются на слабом железе быстрее, чем у него. Ты просто юнитилахта.
>>931261 Такое то появляется то пропадает у людей в зависимости от версии к версии. Я не понял почему один и тот же проект может вдруг начать конпелироваться в 4 раза дольше обычного, но если повезло обновиться на версию, где такого нет, то повезло и я так и сижу
>//The new input system uses events, which is 100% times better, (you can also do .ReadValue, which is handy for stuff like mouses) >//but its fucking dog shit to setup and use, and has no fucking XML docs on it, so you have to refer to the online docs constantly. >//I hope Unity can prove me wrong in the future, and fix their shit up. (Unlikely ROLF) Wasn't the point of Unity to be easy to use?