Последние новости: анонсирован Unity 6, который выйдет в 2024
https://www.youtube.com/watch?v=8ZIdejTiXAE
Прошлый тред: >>904558 (OP)
Официальный сайт: https://unity.com/ru
Документация: https://docs.unity3d.com/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com
Магазин ассетов: https://assetstore.unity.com
На Unity сделано много замечательных игр: Hearthstone, VRChat, Escape from Tarkov, Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие.
Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
Какие у Unity сильные стороны?
Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
Какие у Unity слабые стороны?
Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
На каких языках я могу писать скрипты для Unity?
Поддерживается написание скриптов на C# 9.0
https://docs.unity3d.com/Manual/CSharpCompiler.html
Какие есть готовые решения для создания мультиплеерной игры?
https://www.photonengine.com
https://mirror-networking.com
https://playfab.com
На каких платформах работают созданные с помощью Unity игры?
Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
Бесплатен ли Unity?
Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение по книгам (печатные издания, актуальные электронные версии книг можно скачать на официальных сайтах издателей)
Обучение языку C# книги на русском языке:
1. C# для чайников Автор книги – Джон Пол Мюллер
2. Программирование на C# для начинающих 2е части Автор: Алексей Васильев
3. Head First. Изучаем C# 4е издание Авторы: Эндрю Стиллмен, Дженнифер Грин
4. Unity и C#. Геймдев от идеи до реализации Автор: Джереми Гибсон Бонд
5. Язык программирования C# 7 и платформы .NET и .NET Core Авторы: Филипп Джепикс, Эндрю Троелсен
Для людей абсолютно не знакомых с движком есть 3и основные книги на русском языке:
1. Разработка игр на Unity 2018 за 24 часа Майка Гейга
(Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков).
2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне
(Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.)
3. Unity в действии. Мультиплатформенная разработка на C#. 3-е межд. издание Хокинг Джозеф
(Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
Шапка: https://pastebin.com/v3YnYtpf
Словно хуй дрочённый в жопу пидорчеллы
В юнити техноледжис рать сойдитовская вошла
Не оставив маркетолухам ни выбора
Кибер-армия строчить посты пошла
наверное потому что на любой вопрос может ответить гугл или жопатэ?
Ну, кстати, да. Решение практически любой проблемы я нахожу в гугле. А если чёт не нахожу, то прошу чатгпт прикинуть решение.
В треде разве что можно пообсуждать что мы разрабатываем на юнити, показать скрины/короткие видео.
Эффекты создаёшь?
Давно уже используют самописные, это для хомяков которые не могут в скриптинг.
>Есть тут у кого-нибудь опыт обучения людей погромированнию?
Утка обучает программированию, тред с платформером из синих квадратов.
>Есть тут у кого-нибудь опыт обучения людей погромированнию?
Путь обучения простой - каждый день по несколько часов дрочишься с кодом, попутно читая книги. Если ему это по-настоящему интересно, то он справится. Если он хочет этим заняться исключительно ради заработка, но душа к этому не лежит, он обосрётся. Специально его как-то "обучать" нет смысла, это пустая трата времени и для тебя, и для него. Книг сейчас дохуя, статей дохуя, видео дохуя. Желательно, чтобы на руках всегда были бумажные версии хороших книг. И всё. Каждый день пускай несколько часов дрочит код.
В 2к23 году можно чатжпт дрочить бесконечно специфичными вопросами, цена вопроса две тыщи рублей.
Двачую совет с нейрошвайном. Ответит на любые вопросы гораздо лучше любых преподов и друзей-жабапидоров.
Тут как-то анон просил автосохранение сцены. Ему принесли говна на лопате. То есть скрин беседы с жпт, где тот считал таймер в апдейте. А потом вызывал какие-то методы, вроде, даже сохранение сцены. В классе, который не наследовался от эдитора. То есть минимум по трём разным причинам этот код не будет работать. И так оно всегда. Жпт не может в код.
1) Курс по C# - либо Сакутина на ютубе (хотя там некоторые вещи не упоминаются), либо на торрентах поискать.
2) Курс по Unity на YT канале - https://www.youtube.com/watch?v=HqBDO7qMDCw&list=PLxAJaawE-vksJlTcZKibYEmtL4dUqbrSa&ab_channel=%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%98%D0%B3%D1%80%D1%8B%D0%B4%D0%BB%D1%8F%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2
3) Курс по созданию игры на Unity (на торрентах можно поискать). Там 3D шутер есть, 2D RPG.
Можно на Udemy курсы посмотреть.
>Жпт не может в код.
Попросил старую версию (3.5) жпт о следующем "напиши код автосохранения сцены на Unity3D". Вот что он выдал. Чем тебе не рабочий код?
Как же у меня подгорает из-за того, что названия методов в сисярпе начинаются с большой буквы. И this редко где увидишь. Пиздец.
>И так оно всегда. Жпт не может в код.
Ты уже сформировал железобетонное мнение по единственному опыту одного анона. Позволь и мне сформировать мнение о тебе - ты тупой.
А, бля, не заметил execute in edit. Один хуй хуйня. Вешать на GO, путь к сохранению рандомный, а не тот, что должен быть. Всё хуйня, Миша.
Жпт говорит хуйня это
Доступен. Регистрируешь на левый номер, заходишь через впн, оплачиваешь через тот же pyypl.
Cмотри, тебе приходится выпрашивать, чтобы он написал то, что ты уже знаешь, что он должен написать. Какой в этом смысл?
И нет, проверка на Dirty это говно. Юнити не помечает сцену, как грязную, если ты вносишь изменения в переменные скриптом. Нужно принудительно помечать сцену.
>Юнити не помечает сцену, как грязную, если ты вносишь изменения в переменные скриптом
Это уже супер-частный случай. И непонятно, какое отношение он имеет в автосейву. Автосейв больше нужен тем, кто что-то на сцене расставляет и на случай краша они не хотят проебать свою работу.
Окей, суперчастный. Похуй. Ты сбилдить с этим скриптом не сможешь.
Ты сказал что жпт в код не может. Я доказал что может. Остальное доёбы ради доёбов.
Реально же доёбы, такие же доёбы которые бы ты давал реальному человеку-анону, если бы он скинул сюда такой код. Всё что я хотел донести это что жпт ахуенен для обучения. Можно спросить нахуя он так написал, что именно вот этот кусок делает, нахуя именно таким образом и тому подобное. Ты не найдешь реального человека который так подробно объяснит и будет доступен 24/7.
> Ты не найдешь реального человека который так подробно объяснит и будет доступен 24/7.
У тебя есть двач, здесь все твои друзья.
>Можно спросить нахуя он так написал
А он не знает. Он тебе выдал код бесплатного ассета.
https://assetstore.unity.com/packages/tools/utilities/autosave-43605
Братан, просто попробуй гпт4 потыкать как-нибудь, видно же что ты говоришь так только от не знания.
Братан, ты так говоришь только по незнанию. Потыкай гпт4 как-нибудь, убедись, что это полная залупа.
Здесь полтора анона только подсказывают и помогают, пиздабол, остальные выебываются какие они ахуеные, при этом свой гигаахуенныйправильныйичситыйкод ниразу не кинули.
То есть их полезность превышает чатгопоту.
(Типа машинка наезжает на объект на локации и "кушает" его)
Похоже, речь идёт о том, чтобы внутри финальных классов PowerUpHeal, PowerUpJump, PowerUpShit существовало бы приватное поле PowerUp, методы которого бы дёргались в финальных классах.
Притом эти методы финальных классов пришлось бы доопределить.
Вообще хуй проссышь, чем это лучше, но ладно.
>просят именно композицию
Хм... Можно знаешь как попробовать:
Добавляем компонент CollectableObject (он будет вместо PowerUp). В методе Awake получаем ICollectable:
GetComponent<ICollectable>();
Далее, в триггере обращаемся к ICollectable:
_collectable.Handle(target);
Таким образом мы избавились от наследования. Допустим, для хилки мы создаём префаб и вешаем на него компонент CollectableObject и PowerUpHeal.
По какой причине ты безыгорный додик?
Не лучше ли какой-нибудь Lua использовать?
С одной стороны, они пишут, что отхуячили динамическую типизацию, чтобы заставить js хоть как-то работать. С другой стороны, это всё ещё js, то есть по дефолту не может работать хорошо. С третьей стороны, это тенсент, то есть даже если бы работало, то его следовало бы обходить десятой дорогой. Ну и ill2cpp не работает, судя по ишьюсам. Какая интересная штука, в которой и идея, и реализация, и сам реализатор говно.
Во время выполнения корутины, код после нее (не в самой корутине) хуярит дальше.
Как сделать так, чтобы код "подождал" завершения корутины, прежде чем выполняться дальше? Или как это сделать без корутины?
Update не подходит, нужно именно в рамках одного метода.
>Есть метод, в методе запускается корутина.
>Во время выполнения корутины, код после нее (не в самой корутине) хуярит дальше.
Три варианта.
1. На месте запуска корутины закончить метод. И вызывать его продолжение только из окончания кода корутины.
2. Запускать в двух потоках, и делать проверку в методе на результат из корутины, и пока не true, он ожидает.
3. Переделать архитектуру и разделить метод на два варианта, отделив и корутину.
Не знаю что у тебя происходит сложно сказать что лучше.
>Или как это сделать без корутины?
Архитектуру поменяй и раздели просто на разные функции.
Корутина крутится в мейн треде, а останавливать его ты не хочешь. Добавь флаг, обычный bool и будет нормально.
>>17310
В корутине цикл for, через который несколько объектов меняют цвет ("мигают") по очереди, потом еще выполняется код.
Код запускается сразу после корутины в любом случае. Если сделать bool после корутины, он проверит его после запуска корутины, не дожидаясь ее выполнения. Если в корутине - не успеет переключить флаг.
Когда я спрашивал, мне отвечали - Нахрена юзать корутины, если проект маленький.
1920x1080, 0:30
Для локализации потянет за собой.
Ну если спрашиваешь, то сам понимаешь, что скорее всего да.
Заведи на эту штуку переменную, читать станет проще (ещё и экономия на обращении к полю какая-то, хотя малозначительная).
у меня из идей 2.5д (плоские персонажи на 3д-плоскости, как в Darkest Dungeon или Cult of The Lamb) или кубическая графика в стиле Minecraft-а
(игра предполагается как простенькая сессионная гриндилка аля Верминтайд - список миссий, пройти от входа до выхода, по пути убить горсти трэшака и несколько рандомно появляющихся "минибоссов")
Например, начинал я кодить с Python на движке BGE туеву хучу лет назад. Написал конечный автомат для контроля персонажа. Вскоре BGE умер. Я пошел пробовать C++ и SFML, где так же встал вопрос конечного автомата, и вот я снова описываю ровно ту же самую логику на другом языке. Затем развирусился Godot, я пошел туда и история повторилась, третий раз я пишу простой конечный автомат для контроля персонажа, но уже на GDScript.
И вот я пришел в Unity, скачал модельку пепеги и ради тестов захотел ее оживить. И опять, уже в четвертый раз, мне нужно писать один и тот же конечный автомат, лишь с небольшими отличиями, но уже на C#. Я все это уже умею, базу языка освоил за вечер чтения доков, ничему новому повторение этой процедуры меня не научит.
Должен ли я писать одну и ту же хуетень уже в четвертый раз на другом движке просто чтобы считать себя тру-программиста, или ебать ее в сраку и скачать готовое решение? Да, в виду уже имеющихся навыков и опыта я потрачу максимум вечер, с учетом потенциальных тупиков в которые зайду будучи новичком в API Unity. Займет немного, но как-то уже заебало.
Хочешь быть труЪ программистом - пиши все с нуля на ассемблере. А иначе не парься. Движок же тебе не западло готовый использовать.
Интересное решение. Правда я не понимаю, почему у синглтона есть проверка на инстантс. Синглтон должен предоставить инстанс в любом случае. Если объекта нет, то он его создаё.
Ну может это немощный синглтон, у которого логика вынесена в другие классы потому что он не может.
Спасибо, хотя как ты сказал не совсем то чего я хочу, нужно чтоб врёстка адаптивная была, но ты направил в нужное направление. Я потыкал, на боковые поставил preferred значения, а на центральный выкрутил flexed width и он заполнил пространство.
В больших игровых конторах дизигнеры используют вообще визуальное кодирование мышкой, чтобы раздублять как мобы себя ведут.
А почему не сделать, как сейчас модно, ТЕМПОРАЛЬНО? Берёшь какой-нибудь вектор, плюсуешь туда все свои направления, а потом нормализуешь. Хотя лично я делал бы на стейт машинах. Состояние:пиздуем, направление:нахуй-и-налево.
Загрузки Bandicam (ещё есть бесплатный видеоредактор HitFilm). И покажи суть проблемы на видео. Так в сто раз больше шансов, что тебе помогут.
Да зачем тут видос нужен, проблема очевидна.
https://forum.unity.com/threads/2d-8-directional-movement-and-animation.455217/
Вот тут ситуация 1в1, чел тоже не допер как можно сделать. Вангую, он тоже ебался с этой хуйней месяцы, в итоге забил хуй, ибо историю умалчивает чем все закончилось. Таких тредов тащемто дохуища везде, только вот решения я так и не нашел, ну и пришел сюда, в последний оплот человечества, мало ли, может анон делал уже такое и сможет мне подсказать в какую сторону мне топать. Мне вон анон выше написал про темпоральность какуюто, я вот сижу до сих пор читаю одупляю. Пикрил код если нужен, только вот нахуя хуй знает, пускай будет, картиночки привлекают внимание.
>>18127
Честно говоря вообще не понимаю в чем у тебя может быть проблема. Ты можешь сохранять любые данные в любой момент времени.
Следовательно просто сохраняй и потом загружай, это касается всего.
Если объект чей то ребенок, то не забывай выставлять в 0 прежде чем применять старые значения.
Еще раз повторю, не могу понять в чем у тебя проблема.
Да кмон, топдаун, 8 направлений, герой после движения по диагонали не запоминает что он двигался по диагонали т.к направление движения определяется инпутом клавиш, из за того что человек не может всегда одновременно отпускать клавиши движения получается так что в скрипте сначала обрабатывается отжатие 1 клавиши, потом 2, а так как при обработке инпута второй клавиши, первая клавиша не активна, то выходит герой уже смотрит не по диагонали а в сторону за которую отвечала клавиша 2. Ну я хуй знает как еще объяснить, и видос тебе тут никак вообще не поможет если на то уж пошло.
>сначала обрабатывается отжатие 1 клавиши, потом 2
>а так как при обработке инпута второй клавиши, первая клавиша не активна
У тебя есть значения импута каждый тик, в чем проблема еще раз спрашиваю? Это банальные флоты от -1 до 1.
Я реально не понимаю, и даже больше скажу, мне интересно узнать что у тебя за проблема, и помочь ее решить.
Давай так. Составь логическую последовательность действий от начала до конца действий игры, и где возникает текущая проблема.
Скорее всего, когда бежишь по диагонали зажав, например, вверх + вправо, потом отпускаешь обе кнопки, но одна отпускается раньше на доли секунды и перс поворачивается по оси последней отпущенной. Можно сделать плавный поворот какой-нибудь лерп и он не будет успевать полностью развернуться
Даже ещё проще можно. Накидал на новом инпуте. Когда бросаешь клавиши, в последнем performed вектор почему-то сбрасывается на 1.0 тупо всегда. Так что берёшь схороняешь предпоследний и используешь его. Профит.
Если не отпускать\нажимать новые клавиши, то performed не вызывается.
Упрощение и разбор на мелкие фрагменты = решение чего угодно. И уж за пару вечером точно можно это сделать.
В том что я нихуя не понимаю как мне сделать так что бы ебучий код запоминал не последнюю отжатую клавишу, а вектор направления. Если ты сможешь это сделать без багов, ну я хуй знает, ты бог наверное тогда.
>>18153
Именно. Лерп уже пробовал, да я много чего пробовал, все не то, другое дело что я овощ и возможно не так пробовал, но это другой разговор.
Короче, намутил хуйню с корутиной, вроде работает, а главное глаза не мозолит, главное потом не забыть нормально все сделать.
Двачую. Уже давно этот подход использую. И он плюс-минус работает, даже если ты совсем хлебушек.
>плюс-минус работает
Как он может не работать? Он в 100% случаев должен работать, разница лишь во времени на разбиение нужных частей.
Это чистая логика, как закон ньютона, он не может работать в 99% а в 1% почему то нет. Всегда 100%.
Могут быть лишь ньюансы в мотивации разбираться, а так-же времени, вот это может прямо влиять.
>Как он может не работать?
Когда в дело вступает математика и сложные алгоритмы. Тогда не всегда удаётся решить задачу так, как хотелось бы и получается средненький результат.
>математика и сложные алгоритмы.
Ты только что привел подтверждение моих слов.
>математика
Как формулы и числа не могут упрощаться?
>сложные алгоритмы.
Как эти алгоритмы не могут разбиваться на более простые?
>Тогда не всегда удаётся решить задачу так, как хотелось бы
Мы тут говорили о том что если есть проблема в юнити, и ты не понимаешь её, то ты можешь разложить ее на простые составляющие и найти ошибку. А вот решить или реализовать, это уже зависит от навыков конечно. Речь то в самом первом посте была о том что человек тупо не хочет упрощать проблему для нахождения нужного места.
сам не могу понять нах это надо, но возможно это следствие почти полного перехода на UI Toolkit
Ебать ты душнила конечно. Допустим, я делал двухмерную песочницу, аля террария. Мне нужно было сделать динамическое освещение. Я стал разбивать задачу на более мелкие. У меня не получилось написать хорошее решение в виду плохой мат. базы, но за счёт разбиения сложной задачи на мелкие я в целом ПЛЮС-МИНУС смог написать освещение. Пускай не такое как хотелось, но работающее.
Просто переносят функционал TextMeshPro в тулкит.
https://docs.unity3d.com/Packages/com.unity.textmeshpro@3.2/manual/ColorEmojis.html
То есть эмодзи в юнити были уже года два.
Если в движке есть юникод, он должен поддерживаться целиком, иначе нах морочились с его поддержкой.
Даже если проблема в том, что не отображается эмодзи кала - это всё равно проблема.
PopulateView вызывается при открытии самого дерева в окне, ноды отрисовываются, на событие метод подписывается, все замечательно.
Метод GraphViewChange вызывается, дебажил на graphViewChange.moveDelta
Проблема в том, что graphViewChange.elementsToRemove постоянно == null, почему так?
Выделяю ноду, нажимаю delete и в if не заходит, и лист элементов на удаление тоже оказывается пустым
Натив аот? А RyuJIT когда?
10 лет прошло, думаете кто то что то пофиксил? Хер там. Сишарп - язык-тормоз.
Оно стало процедурным вроде, то есть навмеш сёрфейс у тебя построится динамично в рантайме.
Я как-то подрубил устаревший вид вкладок - хотел переиспользовать статичный навмеш для особых целей (хранение геометрии локации на сервере, чтобы тот мог сам озадачиваться поиском путей).
В общем способы есть.
Вот код:
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;
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (impactEffect != null)
{
Debug.Log("impactEffect");
Instantiate(impactEffect, transform.position, Quaternion.identity);
}
Destroy(gameObject);
}
private void OnBecameInvisible()
{
Destroy(gameObject);
}
}
При попадании по цели (или просто по стене) пуля уничтожается, но эффект частиц не появляется.
Путём проверки через Debug.Log понял, что impactEffect по какой-то причине равен null.
Как это исправить?
Вот код:
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;
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (impactEffect != null)
{
Debug.Log("impactEffect");
Instantiate(impactEffect, transform.position, Quaternion.identity);
}
Destroy(gameObject);
}
private void OnBecameInvisible()
{
Destroy(gameObject);
}
}
При попадании по цели (или просто по стене) пуля уничтожается, но эффект частиц не появляется.
Путём проверки через Debug.Log понял, что impactEffect по какой-то причине равен null.
Как это исправить?
Пока искал решение, нажал на "Find References In Scene" - и теперь не знаю как отключить.
отбой, починил (работал не с самим прифабом, а с его экземпляром, который забыл удалить)
> потом не забыть нормально все сделать.
ты забыл главное правило: работает - не трогай
конечно, если оно не ломает критично логику/оптимизацию, но, думаю, один вектор на этой не сильно повлияет
Да не забыл я, в том то и дело что это работает коряво не в плане кода, а визуала.
https://www.reuters.com/technology/unity-software-cut-38-staff-company-reset-2023-11-28/
Все сокращают и сокращают. Все дальше от UE и дальше, похоже уже не догнать.
Не мудрено. Пидорчелло заруинил всё. Теперь либо опен сорс, либо страдать
Они свои сверхприбыли получили, сотни движков из-за них загнулось, просто повезло изначально всё грамотно угадали как что делать. Абсолютная власть развратила их. На самом деле странно, что они купили всех этих питеров джексонов, а результатов нет. Ну вот совет директоров решает купить команду, чтобы что она делала? У анриала люмен, нанит, метахьюман, квиксель, даже рисовалка своя и библиотека кустов и палок.
В последнее время у юнити мало трапов на презентациях, которые вместо разработки движка разрабатывали очко, сейчас всяких сброд выгонят и начнется бурное развитие
>Все дальше от UE и дальше
Не всё так однозначно, у эпиков и у самих нихуёвые проблемы. Это касается игровой индустрии в целом. Доходы пожрал долгоносик.
Еблан да и только.
С каждым днём всё дальше от бога.
На самом деле поделом, сколько человек нужно чтобы поддерживать движок 7000? Они там что по очереди на клавиатуре клавиши нажимают?
> На самом деле странно, что они купили всех этих питеров джексонов, а результатов нет.
Я оброфлился, когда узнал что у юнити НЕТ нормального сетевого движка, а максимум предлагаемых опций - "ну натяните на сервер headless клиент чтобы движение мобов считал, наш юридический отдел вам потом очко на него натянет".
Была тема со SpatialOS, но похоже теперь кооперация с Юнити закрыта.
>тема со SpatialOS
А там небыло кооперации. Спатиал делал всё по своей инициативе. И, соответственно, шекелями с юнити не делился. Они не придумали ничего умнее, чем запускать тот самый безголовый клиент. Юнити на это посмотрели да и отозвали лицензии.
Это они могли типо - 50 миллионов долларов на разработку инпут системы, 50кк на частицы, 50кк на рендер/люмен, 50кк на нанит... и так много раз
Блять, господа, что за хуйня?
Почему я в скрипте не могу обратиться к свойству другого скрипта и какого хуя я не могу обратиться к объекту, к которому присоединен скрипт? Методы Awake, Start, Update и LateUpdate, в недавно созданных скриптах, почему-то теперь написаны желтым цветом, в отличии нормально работающих. Что я, нахуй, сделал?
>Почему я в скрипте не могу обратиться к свойству другого скрипта
Они оба висят на одном объекте
670x960, 0:16
Почему тебя так трясёт?
>почему-то теперь написаны желтым цветом, в отличии нормально работающих
(Визуал) В нормально работающих они синие
> Почему я в скрипте не могу обратиться к свойству другого скрипта
Как ты к нему обращаешься? GetComponent<KakogoHuya>().yaEbalTwoyuMamashu? (TryGetComponent<SukaBlyatPidor>(out var pidor)) { pidor.Huesos(); }?
Думаю, проблема в том, что скрипт не видит прикрепленный к нему объект, но я хуй знает как это исправлять
Самописные хуитки у фотона. Потому он до сих пор живёт и будет жить. А когда были тёрки с импропабле, юнити обновила ТОС, куда было дописано
>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
>up to 50%
1% это тоже "до 50%". В целом, верим, уже и протестировали. В некоторых случаях работает очень хорошо. Но, как обычно, сыровато.
https://forum.unity.com/threads/gpu-driven-rendering-in-unity.1502702/
Раньше че-то казалось что автоматически когда родителю размер меняешь, а последние пару дней пиздец раздражает
Это как? Типо нажал плей и все работает? Ну и хуйня, да и один хуй не работает. Я уже накатил старую версию, так что все збс.
obj.transform.rotation = Quaternion.FromToRotation(Vector3.up, norm);
Проблема в том, что norm рандомно инвертируется туда сюда и невозможно определить почему. То есть объект получается то нормально то вверх ногами. Есть ли способ получить только одну сторону нормали? Типа как для отрицательных чисел abs.
Есть скрипт обзора от первого где поворот камеры по горизонтали осуществляется с помощью
float mouseX = Input.GetAxis("Mouse X")MouseSens Time.deltaTime;
Rot += mouseX;
PlayerBody.transform.localRotation = Quaternion.Euler(0, Rot, 0);
Нужно что бы при триггере какого то объекта камера поворачивалась к нему
Пытался сделать это через
Vector3 lookPos = colliders[0].transform.position-Player.transform.position;
Player.transform.rotation = Quaternion.LookRotation(lookPos);
Но это не работает. Может кто то подсказать где проебся и как сделать?
геометрия ебаная с углами, всегда ее ненавидел
>Но это не работает.
Ничего не происходит? Если первые три строчки закомментировать будет работать?
>PlayerBody.transform.localRotation = Quaternion.Euler(0, Rot, 0);
Да, если это закомеенитить то работает
Если переменная равна 0 то бегаешь прыгаешь, если равна единице, камера поворачивается куда надо, при триггере переключаешь
Не, не совсем подходит для ситуации.
Как сделать что бы при
float mouseX = Input.GetAxis("Mouse X")MouseSens Time.deltaTime;
Rot += mouseX;
PlayerBody.transform.localRotation = Quaternion.Euler(0, Rot, 0);
камера следующим фреймом поворачивалась в сторону определенного объекта ?
Фиг знает, у меня поворачивается, ты дал неполный скрипт, непонятно что у тебя сделано
1280x720, 1:03
ононы че за хуйня? сделал по уроку новую папку в папке character для персонажа, назвал скриптс, в скриптс добавил скрипт c# и тут мне выдают: "окно неожиданно завершило работу (причина: "oom")"
Всё ок, просто перезапустил юньку и оно само пофиксилось лол
>только по оси Х
transform.LookAt(new Vector3(target.position.x, transform.position.y, transform.position.z));
У меню есть компонент Graphic Raycaster с настройками по умолчанию, клики по объектам на сцене обрабатываются через лучи Physic Raycaster. Я натыкался в ответах на форуме Юнити на разницу между ними, но при попытке экспериментировать с типами Raycast от меню с визгом и уханьем отваливалась двужопная бианальная двасрака, в смысле меню переставало показываться вообще, хотя формально его компоненты меняли свою активацию после переключения.
Я пробовал цеплять к канвасу меню 3D-коллайдеры и активировать их при активации меню, это вроде бы решало проблему, но не гладко (иногда паразитные клики проходили сквозь меню на сцену до активации коллайдера меню).
Но задача выглядит чрезвычайно типовой. Как её нормально решают?
Ах да, вспомнил что в учебном проекте было очень похожее решение.
В обработчике кликов нужно
if (EventSystem.current.IsPointerOverGameObject())
return;
Репорт за движкосрач вне загона.
Пацаны, как думаете, у кого больше шансов
1) у чела опыт 1 год в компании, своих игр нет
2) чел нигде не работал,но имеет в стиме игру с 150 норм отзывами
Лол, это только по Москве. По россии... 50к
Первый.
однозначно первый
Я бы первого даже не рассматривал. Только второго.
Сейчас бы идти в галеры что бы делать чужие игры за объедки бр-р-р-р. Ждунов можешь спокойно делить на 100, именно столько получится реальных разрабов, все остальные это взращенные на курсах плебсы которым обещали золотые горы.
Или лучше 3D рогалик сразу делать?
Два-дэ - могила, Три-дэ - сила!
А на галерах даже и так нихера не вербуют, просто молча отказывают.
Тут такая психология: если они тебя нашли, значит они нуждаются в тебе. Если ты нашел, значит, для компании, это ты нуждаешься в них. А в ком нуждаются, по тем правилам и должны играть.
Просто будешь получать мусорный спам от нечитающих резюме хрюш, причем часто не по той технологии. И у них все равно будет выбор из стоящей у двери очереди так что правила все равно будут их.
Что мешает вычислить конвеерного хрюшу от заинтересованого понимающего кабанчика? По тексту уже можно определить - если банально-среднестатистическое обращение, и, что главное, без каких-либо вопросов, то это, как ты выразился, хрюша.
>Для россиян даже обход санкций от самых юнитов есть, причем ими же и озвученный.
Кто-то знает о чем речь?
>Для россиян даже обход санкций от самых юнитов есть, причем ими же и озвученный
лол ебать нах, видимо большая доля наших там обитает, а двигло перевели только на китайские и английский
Двачую вопрос. Как выводить бабки с Юнити Ассет Стора? Можно через Свифт на Челябинвестбанк?
Потом начал гуглить, можно ли встроить это в сохранение сцены и удаление компонента с сцены, и с удивлением обнаружил что да.
Редактор локаций всё больше становится похож на редактор со старой работы, который лазил в базу данных незаметно для пользователя.
Как ни крути, Юнити - удобная штука.
Да ни о чем скорее всего, выглядит как "пернул, на другом конце деревни сказали что обосрался"
Есть ли способы экспортировать материалы (в том числе свечение и эффект зеркала) в Unity?
Или из вариантов только экспорт модели с последующей настройкой материалов в самом Unity?
Насколько я понял, прозрачные и светящиеся части надо сохранять в MagicaVoxel отдельно, потом уже в Unity накидывать на эти части (фары и стекла, а также покрышки в моем случае) glow материалы.
Все это хуйня, ждешь юнити6 и сразу перекатываешься на нее
Посмотрел 20 минут, для вкатунов самое то.
1920x1080, 0:03
В шапку блять!
Честно говоря боюсь смотреть. Копаюсь в юнити уже лет 10, пару десятков игор сделано в стол, парочка на итче и одна в стиме.
И такое ощущение если посмотрю, пойму как криво и не правильно все делал, и надо было по другому.
Так это же хорошо для тебя будет если поймешь. Я пиздюком в деревне как то грядки копал в огороде, несколько дней подряд, и в силу возраста и не знания сначала копал тыловой стороной пока дед не показал как надо, нужно ли говорить что мне стало проще копать после этого?
>Так это же хорошо для тебя будет если поймешь
Да это то понятно, улучшать скилл и кругозор всегда хорошо но есть парочка НО.
Твоя аналогия с грядками все таки слишком упрощена. Владение движком это очень большой пласт знаний. Там же помимо простого редакторо столько всего что с ним взаимодействует, другие программы, дополнения и прочий стафф, что как правильно импортировать, где делать и т.д.
И вот со временем ты складываешь для себя пулл программ, как в них делать, потом импортить в юнити чтоб все работало. Это не делается за дни, недели или месяцы, это годы опыта.
Понятно что освоить юнити, и шарп это достаточно просто и даже обезьяна сможет, но вот когда ты сделаешь, опубликуешь, и продвигаешь первую игру, как раз и сталкиваешься с миллиардом вещей которые ты как индюк должен делать, помимо простого владения движком.
Короче хз зачем я тут это написал, просто очкую узнать что всё до этого что знал, вроде и работало, но возможно жуткие велосипеды и вообще не по фэншую.
> И такое ощущение если посмотрю, пойму как криво и не правильно все делал, и надо было по другому.
> и надо было по другому.
За 10 лет могли появиться какие-нибудь хитровыебанные трюки, которые сильно облегчают делать то, что ты раньше делал через три пизды с изъёбом.
Загуглил уроки.
Повторил все как в этом уроке, и...
Вроде как свечение появилось (на пике), но когда в post process profile кручу Intensity и Threshold - абсолютно ничего не меняется.
Почему?
Проект Unity 2022.3.4 3D URP.
Может потому что URP?
>Главным преимуществом Unity перед другими движками является его простота для одиночной
Я вот пердолюсь с настройкой графики, глобальным освещения.
Неужели всё надо вручную пальчиками?
Мне хватает моделирование, скульптинга, настройка развертки и запекание с текстурированием.
Пиздец
Изщ, попру рвет
736x472, 3:20
Наоборот. В целом, юнити охуенная штука, но в ней есть максимально уёбищные вещи, типа ретаргета.
> Причем это уже не первый раз такое, решение приходит либо перед отправкой поста, либо сразу же после отправки.
Да. Этот приём называется "расскажи проблему своей кошке".
У меня роль этой кошки выполняет дневник, где я логирую ход решения моих задач. В текущем пет-проекте за месяц накопилось 1.7 млн. байт дневников, то есть примерно 242 тыс. слов.
Иногда впрочем мне приходится задать вопрос (из-за действительной нехватки информации), но с такой системой я сильно экономлю на внешних взаимодействиях.
ты щас описал любой дефолтный вирус который можно найти на гитхабе
>античит
Для одиночной или сетевой?
Для одиночной он не нужен, пусть игрок делает что хочет. Как пасхалку разве что можешь оставить.
Для сетевой у тебя все хранится на сервере, а локальные проверки проводятся у игрока, при желание их можно валидить так-же на серваке.
Античит в привычном виде это уже устаревшее понятие, сейчас движок все делает за тебя, тебе надо только понять где узкие места.
Вот тебе стек, который делают инди и АААА-студии.
В блендере/майе/и т.п. создаешь только 3d-модели и UV-развертку
Материалы создаешь в программе Substance Painter, откуда их можно экспортнуть в unity
Шейдинг в блендере заточен только под сам блендер. Ты заебешься делать так, чтобы в юнити выглядело так, как в самом блендере. Если постараться, то можно, но будет много пердолинга, и все равно будут вылезать косяки.
Но может уже нормально все, я это чекал лет пять назад. Может плагины годные в блендер подвезли. Делать все в одной программе конечно заебись
Но в любом случае painter он больше под игры заточен, а в блендере слишком дохуя нодов, там ведь даже можно кино делать и vfx эффекты
blender + substance painter/designer, this is the way
Хз, чэд какой-то.
А если я не хочу платить за substance painter?
Есть бесплатные аналоги?
Впрочем, заморачиваться не хочу - буду красить в Unity.
Спасибо за развернутый ответ.
>Есть бесплатные аналоги?
тоже задавался этим вопросом, качал, пробовал - нету нихуя.
Качал с этого сайта, вирусов не словил (вроде), работало четко
https://w14.monkrus.ws/2023/12/adobe-substance-3d-painter-v911.html
>А если я не хочу платить за substance painter?
>Есть бесплатные аналоги?
https://quixel.com/mixer
Привет всем.
Создал небольшую улицу, экспортировал в unity. Настроил материалы (не все конечно) но всё же. Картинка выглядит так себе, учитывая того, что добавил "global illumination" хоть он и работает так себе.
Можете подсказать что вообще не так?
2 ключевых вещи влияющие на визуал.
1. Это надо делать hdr проект и использовать эффекты.
2. Свет. В 99% он запекается, остается лишь небольшие участки где можно оставить динамический источник. Сюда же работа со светом и тенью.
>>21379
Симпатично. Но, по-моему, с АО хуйня полная, его либо вообще нет, либо он не там, где должен быть. И смотрится максимально плоско, где бампинг? И не размещай свет и камеру с одной стороны, ты все тени спрятал.
>Это надо делать hdr проект
hdr - ты про небо или ты имел ввиду hdrp? (так он у меня и стоит)
Эту проблему уже давно решают на мобилках. Там сначала используют анонимный вход или он же гостевой вход, далее игрока просят привязать аккаунт к какой-нибудь соц сети и после этого уже используют временные токены.
Не знаю твоей конкретной цели. Можешь использовать SystemInfo.deviceUniqueIdentifier в качестве уникального перманентного токена. Можешь использовать готовые сервисы, которые реализуют систему аккаунтов, типа Unity Authentication и PlayFab.
>бесплатные аналоги
В блендере тогда делай материалы. При "миграции" несложных PBR материалов очень просто их будет подогнать чисто по параметрам. Еще в юнити у меша в проекте есть кнопка ~import embedded materials. Поиграйся с ней, есть шанс на импорт материала полностью. Экспортируй в fbx только. Также в юнити есть шейдерграфы почти как в блендере. На крайняк можно пересоздать материалы в юнити с нуля вручную, просто нужно некоторое время. С опытом начнешь делать почти на автомате.
>сначала используют анонимный вход или он же гостевой вход
Залупа. Токены используются с самого начала, потому что иначе невозможно идентифировать пользователя.
>SystemInfo.deviceUniqueIdentifier
Это наглый пиздёж, что этот айдишник уникальный для каждого, там коллизий я ебу. Во-вторых, опять же, его тоже легко спиздить. Есть идея подписывать токен данными о пользовательской машине, но я эти данные от пользователя получаю, так что их можно и подделать. В итоге в голову нихуя не лезет, кроме как городить асимметричное шифрование, хотя бы мужик посередине не сможет спиздить ничего.
Конечно да, никто в мою игру играть не будет, я понимаю, но хочется всё равно сделать нормально.
>Токены используются с самого начала
Конкретно на мобилках часто используют SystemInfo.deviceUniqueIdentifier. Либо используют рандомный токен с сервера, но в этом случае после переустановки игры гостевой аккаунт навсегда теряется.
>но хочется всё равно сделать нормально
Так что конкретно ты делаешь? Какая цель? Если игра будет продаваться в стим, так у тебя уже есть привязка к стим-аккаунту.
>в этом случае после переустановки игры
А deviceUniqueIdentifier после переустановки или обновления приложения тоже меняется. Можно сделать механизм компенсации устаревания токена, но тогда разницы с токеном от сервера нет. По сути, использование deviceUniqueIdentifier это откровенная глупость.
https://forum.unity.com/threads/deviceuniqueidentifier-broken.563494/
Десять коллизий на 6000 пользователей, итого по коллизии на каждые 600. Да, не часто, но предсказать невозможно, это может случиться и на втором-третьем игроке.
>Какая цель?
Адекватная аутентификация в игре, я же сразу писал. Да, со стимом было бы проще. Наверное. Но я не планирую выход в стим.
В итоге прикрутил SSL для аутентификации, потом трафик идёт по udp в нешифрованном виде с короткой подписью. Всё равно можно спиздить токен, но только при доступе к устройству. Ничего лучше я уже не придумаю.
Хз вы какую-то хуйню городите. Подрубается клиент, создаете файл с любым ключом. Всё. Подделать нельзя. Используется как гостевой аккаунт. При логине одновременно двух одинаковых ключей, просто анулируете и раздаете два новых.
При нормальном же случаи просто создается аккаунт или делается привязка к гугл акку через плей.
Как вы туда попали?
Если я сделаю десять игр, от endless runner до metroidvania и 3D shooter, добавлю все это в свой гитхаб - какова вероятность что меня возьмут джуном на удаленку?
>Всё. Подделать нельзя.
Не так. В зависимости от алгоритма генерации ключа сложность его подделки будет от "элементарно" до "невозможно за разумное время". Но спиздить легко.
>При логине одновременно двух одинаковых ключей
Заходит игрок, генерирует свой ключ, сообщает серверу. Он сохраняет его в базу. Заходит другой игрок, генерирует такой же ключ, сообщает серверу. Он находит в базе этот ключ и выдаёт игроку чужую сессию. Провалено.
>привязка к гугл акку
Точно так же нужно, как минимум, шифровать соединение.
В моей реализации не нужен ни гугл, ни стим, коллизий быть не может даже теоретически, а чтобы спиздить аккаунт - нужно иметь доступ к устройству игрока. И всё это за кулисами и не требует от игрока никаких лишних телодвижений и тысячи кликов в окнах от того же гугла "разрешить-разрешить-разрешить".
Короче, ждал советов мудрых, но не дождался. В итоге с угрозой воровства токена придётся смириться, потому что проверить, что он выдан именно этому пользователю невозможно.
Чел без обид, но ты какую-то хуйню фантазируешь. Максимум что будут в твоей игре пытаться сделать, это подделывать пакеты, и это легко фиксится проверками на сервере.
Так я говорил, что мне поебать, что это никому не будет интересно. Просто хочу нормально делать, чтобы нормально было.
>легко фиксится проверками
Буквально ни в одной игре нет гарантированной защиты от подделки пакетов. И проверки могут оказаться слишком сложными, что убьёт всю производительность сервера. Хотя у меня случай не тот, мне похуй на подделку пакетов и читинг.
>И всё это за кулисами и не требует от игрока никаких лишних телодвижений
А нахуя так делать? Может я хочу на другой девайс потом перенести свой аккаунт. А если я игру переустановлю? А если винду переустановлю? Ты добавил гостевой вход без возможности привязать его к каким-то персональным данным, чтобы аккаунт можно было сохранить.
Если делать нормально, то нужна форма для входа, где вводишь емаил и пароль. После успешного входа получаешь временный токен. Далее можешь этот токен сбрасывать при каждом входе. Если игрок давно не заходил, то ему придётся ввести емаил/пароль. Если изменилась локация игрока или конфигурация ПК, то можешь сделать токен невалидным и снова попросить ввести емаил/пароль. Похожая система во всяких игровых клиентах, типа батлнет.
>А нахуя так делать?
А у меня вообще нет гостевого входа. Просто механизм такой же. Это для галочки "запомнить меня".
>Если изменилась локация игрока или конфигурация ПК
При смене ПК смысла нет, если пользователь валидный, то его такое только бесить будет. У юнити было, что тот же deviceUniqueIdentifier менялся, если вставить флешку. Я бы охуел каждый раз пароль вводить. Если это взломщик, то он чётко может отследить по коду, какие параметры ПК я отслеживаю и подделать их. Локацию да, отслеживать имеет смысл.
1920x1016, 0:28
Пилю прототип игрушки в которой одной из возможностей будет залить по столбам и крутится на них аки стриптизерша.
Поворот по шесту решил сделать хитрожопо просто - при чекании столба объект игрока делать дочерним объектом столба и крутить столб. На деле звучит охуенно просто.
Но столкнулся со странной проблемой: при кручении столба , персонаж игрока, какого то хуя, крутится в противоположную сторону.
Отключением скриптов установлено что при отключении скрипта на передвижение проблема исчезает. Вот только скрипт Move это мелкий скрипт на ~100 строк и там вообще нет команд на вращение персонажа вокруг оси.
Вращение персонажа вокруг оси задается другим скриптом, который со скриптом Move взаимодействует только с двумя bool переменными.
Вобщем что за хуйня?
Это пиздец) Ты вот прям уверен что проблема не в коде? Это же шизофрения чистая. Все логика написана в апдейте, вся физика делается в апдейте, controller.Move() вызывается при каждом пердеже, магические числа, методы которые вообще хуй пойми что делают и для чего нужны. Ты сам то хорошо понимаешь что у тебя вообще происходит в коде во время игры?
Вроде бы. Это с ютуба. Когда делал сам в 2д то делал через скучный трансформ позишн. Тут вроде что то новое.
Возможно потом сделаю рекодинг и раскидаю более внятно.
Ща бы понять какого хуя персонаж крутится вместе с шестом
Тебе реально в голову не приходит сколько это создает проблем?
- Столбы не могут быть квадратными, шестиугольными
- Столбы не могут быть с фонарными балками наверху
- Столбы не могут быть светофорными
Ну то есть вообзе все что не осевая симметрия
- На такой столб нельзя запечь освещение, тени
- Не факт что ты вообще осилишь если у тебя столов больше одного
Хотя, может быть ты добавишь НЕВИДИМЫЙ столб и будешь его крутить? Кто тебя знает.
>НЕВИДИМЫЙ столб
Скорее всего так и сделаю. По идее на них не планировалось освещения и они только для прыгания по ним аки в принце персии и вообще не моя идея, я бы лучше спокойно лапмовое 2д клепал
>НЕВИДИМЫЙ столб
Скорее всего так и сделаю. По идее на них не планировалось освещения и они только для прыгания по ним аки в принце персии и вообще не моя идея, я бы лучше спокойно лапмовое 2д клепал
Хмм. Проблема похоже реально в этом. нихуя не понимаю почему , но буду разбираться
Хотя по идее transform.forward менялась на transform.up и персонаж по клавише W\S лез вверх\вниз. И оно работало до момента каксделал шест крутящимся.
Ладно, завтра разберусь. Спасибо, держи котика
Move работает на основе кешированных векторов позиции, вращения и т.д. Когда они обновляются я уже не помню. Раньше обновлялись вообще только при Move. Вообще это классическая проблема контроллера и движущихся платформ, можешь гуглить.
>Возможно потом сделаю
Делай сейчас. Потом поздно будет. У тебя уже корутина в апдейте сидит, а дальше че будет? Раздели всю эту кашу на методы. За движение перса должна отвечать одна строка, controller.Move(moveVector speed), а вот уже moveVector должен принимать нужные для тебя векторы движения, так же и скорость. К примеру:
private float _moveSpeed;
private float _runSpeed;
private bool _run;
private float Speed()
{
if(_run)
return _runSpeed;
return _moveSpeed;
}
private Vector3 _moveVector;
private Vector3 MoveDirection(float X, float Z)
{
if(чар_на_земле)
return new Vector3(X, 0 , Z);
if(чар_на_стене || чар_на_шесте)
return new Vector3(X, Z, 0);
return Vector3.zero
}
private bool ReadyToMove()
{
return _moveVector == Vector3.zero;
}
private void Update()
{
var X = Input.GetAxisRaw("Horizontal");
var Z = Input.GetAxisRaw("Vertical");
_moveVector = MoveDirection(X, Z);
if(Input.GetKeyDown(KeyCode.LeftShift))
_run = true;
if(Input.GetKeyUp(KeyCode.LeftShift))
_run = false;
}
private void FixedUpdate()
{
if(ReadyToMove())
Move(_moveVector);
}
private void Move(Vector3 vec)
{
controller.Move(vec Speed());
}
За чистую монету мною высраное не надо воспринимать, это грубый пример, да и я сам еще только говнокодить и умею, но лучше уж так чем у тебя сейчас.
>Возможно потом сделаю
Делай сейчас. Потом поздно будет. У тебя уже корутина в апдейте сидит, а дальше че будет? Раздели всю эту кашу на методы. За движение перса должна отвечать одна строка, controller.Move(moveVector speed), а вот уже moveVector должен принимать нужные для тебя векторы движения, так же и скорость. К примеру:
private float _moveSpeed;
private float _runSpeed;
private bool _run;
private float Speed()
{
if(_run)
return _runSpeed;
return _moveSpeed;
}
private Vector3 _moveVector;
private Vector3 MoveDirection(float X, float Z)
{
if(чар_на_земле)
return new Vector3(X, 0 , Z);
if(чар_на_стене || чар_на_шесте)
return new Vector3(X, Z, 0);
return Vector3.zero
}
private bool ReadyToMove()
{
return _moveVector == Vector3.zero;
}
private void Update()
{
var X = Input.GetAxisRaw("Horizontal");
var Z = Input.GetAxisRaw("Vertical");
_moveVector = MoveDirection(X, Z);
if(Input.GetKeyDown(KeyCode.LeftShift))
_run = true;
if(Input.GetKeyUp(KeyCode.LeftShift))
_run = false;
}
private void FixedUpdate()
{
if(ReadyToMove())
Move(_moveVector);
}
private void Move(Vector3 vec)
{
controller.Move(vec Speed());
}
За чистую монету мною высраное не надо воспринимать, это грубый пример, да и я сам еще только говнокодить и умею, но лучше уж так чем у тебя сейчас.
Блять я забыл что разметка по пизде пойдет, ну там впринципи и так понятно что умножение только в Move()
Ок, завтра буду применять . Держи еще одного
>Надо ли на каждое здание отдельный Reflection Probe?
Делал я как то уровень, где были стеклянные предметы. Так вот, я на каждый предмет повесил reflection probe (разместил в середину каждого предмета). Это дало правдивые отражения. Если бы я сделал один большой reflection probe, в который уместил бы много стеклянных предметов, то на них были бы неточные отражения, но запекание длилось бы меньше и меньше бы жрало ресурсов.
Поэтому если точность отражения не важна, или важны ресурсы, то достаточно одно probe на здание, а то и на несколько зданий. Главное, чтобы игрок краем глаза видел, что есть отражения, заебись, но вряд ли он будет замечать, что отражения не совсем правдивые.
Для сетевой.
Всё валидировать слишком сложно, да и я не отвечаю за сетевую составляющую.
Надо детектить хекс эдитор, манипуляции со временем и редактирование файлов игры. Чтобы не было воллхаков и тд, когда игрок просто текстуры стен заменил на прозрачные или типа того. И чтобы нельзя было накручивать статы в хексе
1920x1080, 0:07
На обычную сферу добавил physic material, bounciness - 1.
Решил прикрутить управление, добавил на мяч Character Controller - и не робит. Character Controller выталкивает Sphere Collider из себя, а если отключить Sphere Collider - мяч перестает прыгать, т.к. отключается collider, на который повесили physic material.
Как лучше реализовать управление для такого персонажа?
Может уроки какие есть на ютубе?
В голову приходит еще один вариант: никаких physic material, просто OverlapSphere - и каждый раз когда пересекаются коллайдеры мяча и пола - прыжок.
Есть ли уроки, которые подскажут как это реализовать?
Например, прикрепи прыгающего персонажа к пустому объекту, который будет отвечать за его положение на плоскости, и камеру прикрепи к этому ползающему пустому объекту тоже.
Спасибо, буду пробовать.
У меня возник вопрос: в игре есть 3 режима: гоночка, сбор монеток, дерби. Также есть онлайновые версии этих режимов. Везде похожие методы, типа старт режима, кулдаун, спавн игроков и т.д.
Все менеджеры режимов - синглтоны.
Есть идея переделать так, чтобы оффлайновые режимы наследовались от абстрактного МодМанагер, а онлайновые наследовались от оффлайновых.
Или это полная фигня и надо как-то по-другому? Думаю над архитектурой и как рефакторнуть имеющееся.
>better practices
Идеальное решение это все должно работать тупо по порядку, вызывая нижние функции последовательно от самого главного менеджера в игре.
Как временное решение если лень реализовывать правильное архитектуру можешь использовать либо задержку в виде корутины/апдейта, или в настройках проекта дать задержку выполнению скрипта.
Так я так и делаю.
Field держит префаб FieldCell
Цикл:
1. Field Instantiates FieldCell
2. Field тут же пробует подписаться на event внутри FieldCell, не получается =(, т.к пока что готов только GameObject/Transform etc, но не FieldCell
3. FieldCell Awake/OnEnable случается
Это то, что я просто подозреваю. Возможно, конечно, я не прав и несу полную хуйню.
>>21886
>это все должно работать тупо по порядку
Саму-то идею я понимаю, да. А вот как реализовать? Нижние функции ты имеешь в виду от общего к частному ведь? Сейчас положняк такой: Encounter -> Field -> FieldCell -> Enemy. Тут слева направо методы и вызываются, с этим проблем нет вроде. Как подписаться-то с учетом этой погрешности на создание инстанса префаба? Нужда в ивентах как раз из-за такого подхода от общего к частному и появилась, ведь у меня коммуникация между объектами только сверху вниз и идет без каких-либо апдейтов. После Instantiate в том же цикле подписываться просто не всегда получается.
>у меня коммуникация между объектами только сверху вниз
Тогда как временное решение храни ссылку на объекте внизу, главного объекта и обращайся по ней к главному когда он готов.
Я просто рили не пойму что там у тебя за трабла.
Вот у меня по аналогии в стратежке есть тайлы, у тайлов скрипты, у скриптов там другие скрипты, и там по порядку сверху вниз. Поле инстансится в менеджере, следом загоняется в массив, далее этот массив инициализируется входя в функцию каждой клетки, из который инициализация передается этажем ниже. Никаких проблем нет от слова совсем.
>Так я так и делаю
>3. FieldCell Awake/OnEnable случается
Его быть не должно. Всю логику оттуда закидывай в какой-нибудь Prepare и вызывай его после инстансирования.
Семён прокачался с джуна до мидла прямо в треде.
Не, я бы в жизни не стал советовать корутины там, где они не нужны. А нужны они довольно редко.
Вот это тряска, даже скрин кинул, лол
>Build Report
>Included DLLs 9.5 mb 59.7%
Бля, да как вырезать нахуй весь этот мусор? Пытаюсь оптимизировать веб билд, всё поотключал нахуй, у меня вообще тупо демка без ничего, две картинки и кнопка, и всё равно оно мне пихает десять мегабайт говна в билд.
Чтобы реально все вырезать кроме юнитиплеера нужно редактировать исходники билда, и следом отрезать в dllки не нужное. Там же и юнити лого уберается
Какого хуя он
1) Имеет оверхед вызова метода
2) Агрессив инлайнинг нихуя не агрессив и не факт что инлайнит по итогу
3) нет таких макросов как в с++. То говно которое в шарпе может делать define это просто огрызок огрызка, харчок, кал.
>огрызок огрызка, харчок, кал.
Это ты такой, ничтожество, всё тебе кто-то в штаны срёт, всё мешает игру сделать
Как бы кодить я могу и шарп знаю относительно, но меня тянет именно в геймдизайн, так что я не хочу прям сильно задрачивать архитектуру моих проектов. Просто базовые практики использовать и пару паттернов.
Во-первых, в юнити используется IL2CPP. Во-вторых, нахуя ты занимаешься ранней оптимизацией, тем более такой мелочной? Ебанько что ли? Решай конкретные задачи и не воняй здесь, чмо.
> но меня тянет именно в геймдизайн
В сферическом случае геймдизайнеру кодить вообще не нужно.
Вообще в команде больше двух тел собственно геймдизайнеров не будет, а будут роли: AI-скриптер, балансировщик шмоток, маркетолог, левелдизайнер и арт-дизайнеры, дизайнер клиентских интерфейсов, сценарист и так далее (не считая программистов бэкоффиса, серверных кодеров и тому подобных). Роли могут висеть по нескольку на одном многостаночнике, да. Совмещение для геймдева не редкость.
Если тебя наймут и дадут тулзы (что маловероятно, т.к. конкурс огромен, а выживших компаний мало), то ты будешь сидеть и кодить поведение мобцов на каком-нибудь Lua или на блюпринтах.
> но меня тянет именно в геймдизайн
Просто забей. Айти в этой стране умерло на несколько лет.
Рассматривай геймдизайн как хобби или будь готов клепать простенькие игры в одиночку для монетизации на казуальных платформах типа мэйлру, потому что вкатиться теперь уже невозможно.
Студии в лучшем случае не наймут тебя, в худшем - съебут и кинут на зарплату.
>Накачаю несколько десятков треков классической музыки
В твоём мухосранске нет филармонии или какого-нибудь концертного зала в доме культуры?
Ну не разработку же игр тут обсуждать. Чтобы отвлечься от поглощения интернет-контента, сходил бы на концерт, вдохновился.
И вправду, надо бы сходить, давно небыл. Да и надо будет придумать че с дофаминовой ломкой делать, это еще хуже чем курить бросать, попробую заменить ежедневной ночной прогулкой + зарядкой, хуй знает может и поможет. Вообще во всем виноват этот уебанский мозг, удовольствие он нахуй больше не получает от разработки, а то что я блять хочу этим заниматься его вообще не ебет.
Не делай, когда нет удовольствия от разработки. Жди, когда появится желание. Как только начинает желание пропадать, когда появляются нотки страдания- закрываешь юнити и больше не прикасаешься до следующего желания.
Любой процесс должен приносить удовольствие.
Если ты обязанный работяга на зарплате, то соболезную. Ищи другую работу.
У тебя недостаток дофамина, и ты пытаешься его вытянуть только из юньки. Срочно ищи новые развлечения.
Я как то решил забить хуй, мне тоже надоели эти беды с башкой, и решил вообще не делать блять больше никогда.
Через пару дней появилось влечение, да и силушки немного появилось, но это было не то, а скорее чувство вины меня подгоняло, чувство "ты ленивый уебан, время не теряй, тем быстрее игру доделаешь".
Одной части мозга хочется результата/успеха, наплевав на твои страдания. Другой - именно удовольствия.
Короче, я подавил это желание и стал тупо заниматься другими вещами. Я жил тогда в селе возле леса. Я много гулял, фотографировал птиц, катался на велике на много км, и через неделю я почувствовал - это оно. То самое чувство, когда писать игру это как нечто второстепенное, которое даёт тебе удовольствие, но уже не считается критически важным. Как тортика с чаем навернуть. Когда баги и ошибки не выбешивают, и ты совсем не критичен к тому, какой у тебя код/дизайн/что подумают о твоей игре/принесёт ли успеха и т.п.
Я снова начал писать, написал много и мне было хорошо. Я чувствовал удовольствие от процесса. Через пару дней снова начали появляться проблески страданий. И я снова такой - так, стоп, тут я останавливаюсь. Я живу не для того чтобы превозмогать, а чтобы жить и получать удовольствие.
И я снова ушел в полный игнор юнити.
Так и чередую. Но это моя история, у тебя может все по другому. Собственно, мне кажется, что нужно уметь отвлекаться целиком и полностью на что-то другое, чтобы не было выгорания.
Анончики выручайте!
Проблема:
"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");
Vector3 directionVector = new Vector3(-v ,0, h);
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionalVector), Time.deltaTime 10);
animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1) .Magnitude);
rigidbody.velocity = Vector3.ClampMagnitude(directionVector,1) speed;
}
}
Делал по видосу всё, все проверил, все чётко вылизано с видоса, но нет нихуя не работает, не могу в плеймод.
Не гоните ссаными тряпками, но я задам вопрос: подсвеченные переменные и прочее должны подствечиваться или они могут работать и без подстветки (типо как привязка что ли, я честно не знаю, первый раз чето пишу слизываю)
Анончики выручайте!
Проблема:
"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");
Vector3 directionVector = new Vector3(-v ,0, h);
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionalVector), Time.deltaTime 10);
animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1) .Magnitude);
rigidbody.velocity = Vector3.ClampMagnitude(directionVector,1) speed;
}
}
Делал по видосу всё, все проверил, все чётко вылизано с видоса, но нет нихуя не работает, не могу в плеймод.
Не гоните ссаными тряпками, но я задам вопрос: подсвеченные переменные и прочее должны подствечиваться или они могут работать и без подстветки (типо как привязка что ли, я честно не знаю, первый раз чето пишу слизываю)
Я понимаю что вы наверняка сейчас лыбу давите с такого слоупока, но я блять понятия не имею откуда взялся этот >"PlayerController.rigidbody", ведь я не называл четко таким же именем ничего ёбана
У тебя в ошибке все написано, класс Component содержит компонент rigidbody, и твой класс PlayerController содержит компонент rigidbody, значит тебе всего лишь нужно переименовать компонент Rigidbody на условно _rb.
Пикрил таже самая ошибка на видосе что и у тебя.
>PlayerController.cs(8, 23)
8 - строка в которой ошибка, 23 - строка которая вызвала строку с ошибкой.
>cs0108
Код ошибки. Погуглив можно понять в чем дело.
Короче, просто не называй компоненты именами классов юнити, тогда таких проблем не будет.
Ну и на код таких гайдеров не опирайся как на что то правильное, в 90% это хуй с горы который от силы месяц говнокодит.
Молодец.
благодарю тебя анонище, от души.
Рад за тебя анон. В моем случае я скорее зависим от быстрого дофамина, мне кодинг все так же приносит удовольствие, но этого тупо не хватает что бы продолжать заниматься, блять какая же нахуй шизофрения если так задуматься.
Я все же пойду своим путем и посмотрю что из этого выйдет. Изначально пост я высрал кстати для мотивации себя, не хочется прослыть пиздаболом просто, на аиб, лол.
Охуенно, если так можешь. Я обычно отвлекаюсь на пару часиков, максимум на день и дальше ТЕРПЕТЬ. Полностью не могу забить хуй, постоянно давит новости, что очередная чмоня высрала 1 сцену из ассетов и срубила на этом миллионы далларов, постоянно давит, что конкуренты то не спят и пиздят мою идею, пока я в носу ковыряю. А еще охота купить хату, тачку, срачку - тоже давка заработать бабла, пока такая возможность есть, а ведь все катится в пизду и становится с каждым днем сложнее.
не нужно ПИСАТЬ игру, т.е. какать код и оценивать код по его пиздатости и или длине или короткости
код обслуживает механику, похуй на код
как только я перестал заниматься этой хуйнёй, попёрло
базавичок итт, кододебилам не понять (наверное)
У меня тоже попёрло, как только ECS взял и написал. Сразу понял что я могу просто брать и писать ИГРУ вместо бесконечного поиска говянных алгоритмов.
Ты чего, если код не важен, то пиши на лапше! Без кода! Разве важно лапша это или код, верно? Главное тут другое, игровой опыт, синергия..
О какой важности ты говоришь? Что подразумевается под важностью? Игра это буквально код, а все что ты видишь в движке - визуализация этого кода. Код никак не может быть последним по важности, он всегда был, есть, и будет на первом месте.
Другое дело архитектура. Тут уже да, можно хуй покласть и высрать так как можешь, но даже в таком случае у тебя должна быть чистота в коде.
Вторую строчку я вообще не понял, какой нахуй игровой опыт искать, какая бля синергия? Ты из секты что ли какой то?
>кододебил безыгорный
Кстати, раз ты разбрасываешься такими словами, то будь добр принести свои игры, и парочку скриптов из них.
,Б
> код - последнее по важности в проекте
Когда ты работаешь в команде и код тебе в тарелку высирают в подвале плюсошарпорабы, ты можешь позволить себе такие заявления, ведь конечный результат зримо импактится твоими вермишелями скриптиков на блюпринтах и редактурой в гуглдоках, которые потом импортируются в проект умными тулзами.
Когда ты работаешь соло, то натурально ахуеваешь, что тулзы, сервера, интерграции и прочий служебный кал вынужден тащить на себе в одиночку, если проект отличается от хелловорлда.
>>23051 (Del)
Разобрался.
Log10(0) == -бесконечность
А ебаный код миксера возвращает тру при установке такого значения, хотя, сука блять, нихуя не тру и нихуя он не ставит.
Надо самому чекать значение.
блять да че нахуй делать с "Use the new keyword if hiding was intended.
все сука переименовываю переделываю и нихуя не работает (выдает ошибку без пояснения ли предлагает обновить), только вкатится решил уже жопа горит..
Ты переопределяешь функции\параметры, но делаешь это без уважения ключевого слова new. Что тебе в ошибке и говорится. Если хочешь скрывать@переопределять - пиши new.
Я вообще бля не понимаю что ты делаешь. Что это за пиздец, почему у тебя установка звука идет в определении булевой и ты с ней при этом нихуя не делаешь, для чего она вообще в таком случае, что у тебя за пиздец происходит в GetFixedVolume, нахуя вообще нужна эта переменная, ты рандомные числа чтоли шлешь в нее и переопределяешь? Возьми ебучий слайдер и поставь минвелью на -80 и максвелью на 20, да и сиди дергай ползунок сколько влезет, че нахуй сложного то. И при такой хуйне ты винишь юнитеков? Может вина в тебе?
Бля, неужто для кодинга и вправду нужно иметь особый склад ума чтоб понимать такие банальные вещи.
Чел без обид но он прав, ты явно какуюто хуйню через десяток велосипедов делаешь, явно не зная базы блядь, но винишь юников.
>это сверхразум и первейший признак говеной, говнейшей архитектуры, как и кодоскиллов
В твоей голове разве что. Ты сейчас буквально изобретаешь этот слайдер.
Еще раз повторю, у тебя насрано в голове блядь. Разберись в движке и пойми что ты хочешь сделать.
Либо делай все через велосипеды, но не пизди на юников, и я не дефаю их, они много говна наворотили, но в большинстве своем все нубасы которые вкатываются делают просто примитивнейшие ошибки из-за не знания дижка и не понимая кода из доков.
Ты ебанат? Какая нахуй разница линейный или не линейный если ты кодом блять двигаешь ползунок на пикрил. Шизло бля.
Вообще, он долбоёб, но есть разница в линейном и нет. Чувствительность ползунка линейное, а затухание звука логарифмическое. Так что нужно написать аж целую одну строчку кода
>mixer.SetFloat("MusicVol", Mathf.Log10(sliderValue) x 20);
Понятное дело, что всё горение, как обычно, от непонимания справки юнити и собственной жопорукости.
Так ты доказал, что ты тупой. И у тебя горит срака с твоей тупости. Не более.
https://www.udemy.com/course/unityfpsgame/
Этот курс неплохой, но местами устаревший (например в версиях новее 2021 не работает прыжок).
ilspy
Только текстурами одинакового разрешения. Только в таком случае колво пикселей на юнит будет одинаковым.
Тоесть, если у меня условно есть какой нибудь снаряд на 2 пикселя, и моб условно 20х10 пикселей, я оба файла должен экспортировать в разрешении 32х32? Пиздец шизофриния, а если у меня другой моб будет 80х30, это получается все спрайты нужно будет в 128х128 разрешении делать?
а, у тебя дводэ. Вродебы там нужно поиграть с пикс/юнит, и уменьшать/увеличивать это дело. Поиграйся с ползунком, и посмотри, какой будет вписывается.
Ну я так сейчас и делаю, просто я не пойму какого хуя я должен этим заниматься если в проге рисую попиксельно. Когда экспортирую в юнити она какого то хуя в половине спрайтов считает что в 1 пикселе их 4, из за чего спрайт уменьшается и приходится ставить не 32 пикселей на юнит, а 16.
Ради интереса создал дводэ проект, закинул несколько жепегов 128 и несколько 64. Размеры оказались ожидаемыми, спрайты с одинаковым разрешением - одинаковые.
Это пиздец, я нашел в чем была проблема, короче, я тайловую карту когда делал, размер клеток увеличил под сингл спрайт чтоб особо не ебаться, и забыл блять, от этого вся эта хуйня. Ебать я даун конечно. И хуй бы вспомнил если бы за пределы тайлмап спрайты не накидал только что, они очевидно заскейлились как надо. Хочется ебало себе разбить. Спасибо за помощь)
https://habr.com/ru/articles/783732/
Доводилось пользоваться этим паттерном? Ебало довольное?
Опять C#-хуйлуши изобрели колесо, но обвесили всё умными словами. Шина событий, интерфейс айброкер, хуё-моё. Помню, читал когда-то про делегаты в C#. Читал, читал, а потом как заржу - когда понял, что эти "делегаты" есть нахуй в любом скриптовом языке, просто до сишарперов никто не додумался давать такой ерунде специальное название.
как анон думаю, что это все хуита полная. в какой-то момент люди бросили писать код, и стали дрочить концепции. одна охуительнее другой. из всей новомодной придуманной хуйни стоит только на GoF обратить внимание.
один черт с практикой придет и понимание, как делоть надо, а как нет. ну, и поглядывать чтотам у древних было с их квейками.
Хотел обосрать, но смотрю его в комментах уже грамотно приложили.
На реддит такая срань зайдет (да и в целом для западной аудитории), тамошние рукожопые опущи схавают и попросят добавки - такие-то откровение и верх архитектуры.
Для укр-рус-бел сегемента, где тех.специалисты в разы сильнее и где уже наклепали тысячи мобильной хуйни и прохавали весь гемор и подводную вкуснятину хуюнити, это из серии учить деда ебаться.
Поясните за перца.
https://www.youtube.com/@CodeCraftUnityEdition/videos
Наченал за здравие, в середине его велосипед начал буксовать, кончил за упокой и релизом своих курсов, он обычный инфоциган?
с какого перехуя это хурма BY DESIGN? с новым годом кстати ннончки.
Я хуй знает, кто такой, но по ебалу уже все видно. У инфоцыг, что, на всех одно ебало чтоль?
Welcome to the club, buddy.
Хуюнитипитеки просто забили хуй как всегда, вот и все.
Алсо, меня тут местные дурачки с отрицательным айсикью хуесосили по похожему сценарию, типа не юнити хуйню высрала, а я не осилил
1920x1080, 0:20
дефолт для хачапури
960x540, 0:16
Как воспроизвести? И что за версия юнити, по виду что-то древнее, как говно мамонта.
Билд игры будет генерить лог? Или нужно пердолится со специальными либами, которые ловят ошибки?
C:\Users\username\AppData\LocalLow\CompanyName\ProductName\Player.log
Если в игре будет ошибка в коде, он ведь ее напечатает туда?
Юнька сама логи делает в папке tmp стимовского билда. Скажешь юзеру оттуда тебе файл скинуть.
Круто. Значит, лог достать не проблема. Но некоторые пользователи например не захотят сообщать, и я так и не узнаю об ошибке. Хотелось бы ловить все ошибки. Я тут нашел какое-то официальное решение, вроде подходит й
https://docs.unity.com/ugs/en-us/manual/cloud-diagnostics/manual/UserReporting/SettingupUserReporting
Угу, спасибо.
Это на уровне не возможного, ты на подсознательном уровне будешь играть так как задумал в любом случае, поэтому лучше скинь билд другу, если он есть, либо для анонов выложи, так профитнее будет.
Двачую, я когда скинул анонам поиграть охуел от того как по-другому люди могут играть, начал подмечать типажи, но что я заметил так это то что они все сразу пытаются игру категоризировать как что-то им уже знакомое, если игра не вписывается в их знакомые категории, то большинство сразу записывает игру в кал, но те кто более открыт к новому с удовольствием играют. Короче выкладывать игру на публику это обязательно, причём желательно чтобы ты мог посмотреть как они играют, столько инсайтов можно словить.
Это правда?
Я к тому что стоит ли вкатываться в Unity, там такие же зарплаты?
Тем более нет
Послушал минуту, чуть не сблеванул с этого высерка, какую же хуйню он несет, какое же чсв-шное уебище.
Какая разница? Какой-нибудь создатель паршивых мобилок спокойно может зарабатывать $20к в месяц, пока ты будешь корячиться на кабанчика.
Хочу стать создателем паршивых мобилок и зарабатывать 20к баксов в месяц.
Сениорская зп в целом это от 8к долларов в любой сфере, но стать сениором по факту и устроится на зп сениора это разные вещи, обе сложные по-своему. Поэтому смешно как он рассуждает что с 3д-моделирования он ща вкатиться в сениоры словно это просто пройти курсик недельный.
>Нет таких зп, ни в Европе, ни в всж. В Америке еще может быть.
Есть-есть, в америке 100 долларов в час даже мидл получает.
Если бы я в РФии 100 баксов получал хотя бы в ДЕНЬ, то это бы уже была бы работа мечты
>что за мания мерять всё в долларах? стереотипы 90-ых?
Это практика для всех стран с проебанной экономикой, у которых сегодня развал, завтра голод, а послезавтра очередная гойда. Я вот больше всегда проигрывал с пидорунделей, которые кричат что-то типа 15 лет назад я получал 30к (при курсе 30), а сегодня я аж 90!11!! (при курсе 100+), как же я поднялся, STONKS!11!
Ну это у вас, у нас с 90-ых так делать не принято. Действительно, привычка нищих совковых лимитрофов.
1224x688, 0:55
>Хули тогда любой не создаст "паршивую мобилку" и не лутает по 20к?
Потому что люди пиздец какие тупые. И у многих банально нет времени, потому что они заняты крысиными бегами.
Да, вот только выходов из этой гонки немного, либо начать зарабатывать достаточно и не напрягаясь, копя подушку на черный день, либо жить от зп до зп в полусознанке или коупингом что и так сойдёт, либо стать одной из вариаций бомжей. Главное если вдруг начнёт получаться зарабатывать деньги не продолжить гонку копя золото как тупой дракон чтобы потом обернуться и понять что ты старый и всю жизнь только копил деньги.
>пик
>>26417
>Погоня за деньгами и есть крысиные бега
Да? Что-то я на себе не почувствовал никаких бегов. Просто занимался любимым делом и стал зарабатывать на этом много бабок, при этом у меня нет зависимости от родителей или кабанчика. Да и деньги считать не нужно, просто покупаешь что хочется (не считая дорогих квартир, там уже приходится считать).
А вот работоблядям земля пухом, конечно. У них день сурка и тотальная зависимость. Времени для собственных мыслей совсем не остаётся. Так и сгорают поколения за поколениями.
ты не на картридже публикуешь, даун
Сенсей, научи! Направление хотя бы дай, какие мобилки делаешь, как монетизируешь?
Тащемта секретов никаких нет - просто берешь и делаешь, лутаешь 20к.
Было бы ему чему учить - не выебывался левыми скринами 5-летней давности. Запомни, сынок, такие залетные исключительно на удаче лутают бабло - то ли по знакомству, то ли по удачному вкатыванию в струю тренда, а потом в горделивой позе шиза заявляют, как они всего сами исключительно на скилле добились.
В снг сидят целые команды далеко не самых тупых чуваков с 10+ летним опытом и годами ищут ниши, времена золотой лихорадки, а тут челик просто "пук-мнямс-кек, без задней мысли ПРОСТО лутаю 20к". Сам как думаешь, что это, скилл или просто выиграл лотерею?
1224x688, 0:03
>мобилоблядь плиз...
Создатель стотысячного НИТАКОГОКАКВСЕ шаблонного пиксельного претенциозного инди-говна на ПК, ты?
>>26434
>Так все крысы говорят
Ну, тебе лучше знать, что там твои говорят.
>>26439
>Сенсей, научи! Направление хотя бы дай, какие мобилки делаешь, как монетизируешь?
Значит, смотри. На мобильных платформах просто так никто тебе трафик не даст. Алгоритмы маркетплейса могут тебя подхватить, если увидят, что твою игру активно устанавливают. И тогда ты попадёшь в подборки, где получишь ещё в разы больше трафика. Зарабатывают на мобилках с внутриигровых платежей и/или с rewarded рекламы.
Поэтому первое: СЕО может зарешать. Ты можешь грамотно подобрать название, которое зайдёт за счёт хайпа на какой-то теме аля вышел ФоллГайс и все захотели похожие игры на мобилках, или вышел сериал Игра в Кальмара и все захотели поиграть в нечто похожее. Грамотно составить описание с ключевыми словами, но важно не перестараться, тот же Гугл за такое наказывает. У Эплов в настройках приложения есть отдельная строка для прописывания ключевых слов. И, конечно, хорошие скриншоты с иконкой тоже могут сыграть важную роль.
Второе: в плане продвижения работают те же способы, что и для любых других игр. Можешь присылать ссылки на игру видеоблогерам как минимум малоизвестные блогеры поиграют в твою игру, если это не трешак, публиковать посты на реддите. Но на реддите так просто нельзя зайти и прорекламировать свою игру, нужно сначала набить карму:
https://dtf.ru/gamedev/1080281-chto-sdelat-chtoby-reddit-uznal-pro-vashu-igru
Третье: лучше делать 3Д игру, потому что среди 2Д будет крайне тяжело выделиться. Особенно долго живут игры с мультиплеером. Не обязательно делать риалтайм мультиплеер. Можно асинхронный, как в том же знаменитом клэш оф кланс. Тут бескрайняя поляна, всё зависит от твоей фантазии.
Ну и четвёртое, самое животрепещущее: идеи для игры. Желательно выбрать что-то такое, что будет тебе самому интересно. Я вот за гоночки никогда не брался, потому что они мне совсем неинтересны, хотя это крайне популярный и денежный жанр. Кстати, есть бессмертные жанры, которые всегда популярны: стрелялки, гоночки, гта-лайк-игры, выживач. Ты их можешь комбинировать как душе угодно, насколько хватит фантазии и опыта. Если прям вообще нет идей, то нужно больше играть. Не только в мобилки, но и в игры на других платформах. Если интересно, во что сейчас гоняют дети, то можешь посмотреть популярные моды на Роблокс. Что-то уникальное тоже может выстрелить вполне, но шансов, конечно, гораздо меньше. Идеальный баланс наверное знаешь какой: взять за основу популярную, проверенную временем идею и дополнить её по-своему, можно совместить идеи из разных игр, которые тебе понравились.
>>26442
>пук-мнямс-кек, без задней мысли ПРОСТО лутаю 20к
Мои слова основываются на опыте. Просто я много повидал людей, которые зарабатывают на мобилках. К слову, я довольно нищий по сравнению с другими. Знал чуваков из питера, которые ежемесячно зарабатывали 600к баксов ещё давно. Или у меня как-то жопа сгорела, когда увидел АСБОЛЮТНО шаблонную ферму с небольшим количеством установок, а там доход был больше миллиона в месяц за счёт продуманной спизженной экономики.
1224x688, 0:03
>мобилоблядь плиз...
Создатель стотысячного НИТАКОГОКАКВСЕ шаблонного пиксельного претенциозного инди-говна на ПК, ты?
>>26434
>Так все крысы говорят
Ну, тебе лучше знать, что там твои говорят.
>>26439
>Сенсей, научи! Направление хотя бы дай, какие мобилки делаешь, как монетизируешь?
Значит, смотри. На мобильных платформах просто так никто тебе трафик не даст. Алгоритмы маркетплейса могут тебя подхватить, если увидят, что твою игру активно устанавливают. И тогда ты попадёшь в подборки, где получишь ещё в разы больше трафика. Зарабатывают на мобилках с внутриигровых платежей и/или с rewarded рекламы.
Поэтому первое: СЕО может зарешать. Ты можешь грамотно подобрать название, которое зайдёт за счёт хайпа на какой-то теме аля вышел ФоллГайс и все захотели похожие игры на мобилках, или вышел сериал Игра в Кальмара и все захотели поиграть в нечто похожее. Грамотно составить описание с ключевыми словами, но важно не перестараться, тот же Гугл за такое наказывает. У Эплов в настройках приложения есть отдельная строка для прописывания ключевых слов. И, конечно, хорошие скриншоты с иконкой тоже могут сыграть важную роль.
Второе: в плане продвижения работают те же способы, что и для любых других игр. Можешь присылать ссылки на игру видеоблогерам как минимум малоизвестные блогеры поиграют в твою игру, если это не трешак, публиковать посты на реддите. Но на реддите так просто нельзя зайти и прорекламировать свою игру, нужно сначала набить карму:
https://dtf.ru/gamedev/1080281-chto-sdelat-chtoby-reddit-uznal-pro-vashu-igru
Третье: лучше делать 3Д игру, потому что среди 2Д будет крайне тяжело выделиться. Особенно долго живут игры с мультиплеером. Не обязательно делать риалтайм мультиплеер. Можно асинхронный, как в том же знаменитом клэш оф кланс. Тут бескрайняя поляна, всё зависит от твоей фантазии.
Ну и четвёртое, самое животрепещущее: идеи для игры. Желательно выбрать что-то такое, что будет тебе самому интересно. Я вот за гоночки никогда не брался, потому что они мне совсем неинтересны, хотя это крайне популярный и денежный жанр. Кстати, есть бессмертные жанры, которые всегда популярны: стрелялки, гоночки, гта-лайк-игры, выживач. Ты их можешь комбинировать как душе угодно, насколько хватит фантазии и опыта. Если прям вообще нет идей, то нужно больше играть. Не только в мобилки, но и в игры на других платформах. Если интересно, во что сейчас гоняют дети, то можешь посмотреть популярные моды на Роблокс. Что-то уникальное тоже может выстрелить вполне, но шансов, конечно, гораздо меньше. Идеальный баланс наверное знаешь какой: взять за основу популярную, проверенную временем идею и дополнить её по-своему, можно совместить идеи из разных игр, которые тебе понравились.
>>26442
>пук-мнямс-кек, без задней мысли ПРОСТО лутаю 20к
Мои слова основываются на опыте. Просто я много повидал людей, которые зарабатывают на мобилках. К слову, я довольно нищий по сравнению с другими. Знал чуваков из питера, которые ежемесячно зарабатывали 600к баксов ещё давно. Или у меня как-то жопа сгорела, когда увидел АСБОЛЮТНО шаблонную ферму с небольшим количеством установок, а там доход был больше миллиона в месяц за счёт продуманной спизженной экономики.
>Времени для собственных мыслей совсем не остаётся.
У тебя, значит, было время для мыслей. Какие мысли появились?
>Мои слова основываются на опыте.
Ну скажи, попытный, почему гришаков не лутает по 20к в месяц на расслабоне, хотя сео-сосео и прочее наебалово гоев очень хорошо знает и прикручивает и у него целая команда карликов, которая занимается всей этой хуйней?
Почему некоторые команды спецов сосут писос годами за дошики, а некоторые бичи, потрогав хуюнити пару недель на курсах, лутают лямы?
Игры говно? Так я тебе десятки и сотни примеров приведу, которые вообще пиздец, а профит имеют.
Вот бля, как и предсказывал - пук-срень, ты просто вкинул хуйню, типа скилловый чел, а по факту тебе просто улыбнулась удача, никаких скиллов и даже знаний нет, только выебоны. Повезло? Поздравляю, но не хуй анону голову ебать, типа "ПРОСТО И ЛЕГКО ЛУТАЙ 20К БЕЗ РЕГИСТРАЦИИ И СМС (даже дебил справится)" (тм). Не просто и не легко, обсираются сотнями тысяч людей без реальных на то причин, как бы там маня-эксперты пост-фактум не расписывали потом.
И да, вот тебе реальный опыт - надо сначала найти НИШУ, где еще большие дяди не засрали все (удачи), потом высрать хорошего качества проект (нужна команда), потом нихуевые силы въебать в маркетинг органики (то самое СОСЕО, но и еще кучу всякой дряни), потом, если есть шансы пробиться, надо буквально срать золотыми слитками в рекламу. И в каждом шагу кучи нюансов, на которых можно обосраться.
5-лет назад в гугл-плее, это не то же самое, что гугл плей в 2к23 2к24-ом. Да даже не тоже самое, что хотя бы год-полтора назад. Люди идут устраиваются пахать на дядю-кабана не из-за того, что они тупые или ленивые (один ты, умный, да, высрал 3 слога дженерик-хуйни). Они очень даже талантливые и гораздо поумнее тебя будут. Просто они понимают, что делать на рынке без капитала, инвестиций по знакомству или без золотой подковы в жопе практически нехуй, это инстант сосамбо. Не все так легко, как залетный, сорвавший джек-пот, рассказывает.
>Значит, смотри. На мобильных платформах просто так никто тебе трафик не даст. Алгоритмы маркетплейса могут тебя подхватить, если увидят, что твою игру активно устанавливают. И тогда ты попадёшь в подборки, где получишь ещё в разы больше трафика. Зарабатывают на мобилках с внутриигровых платежей и/или с rewarded рекламы.
>
>Поэтому первое: СЕО может зарешать. Ты можешь грамотно подобрать название, которое зайдёт за счёт хайпа на какой-то теме аля вышел ФоллГайс и все захотели похожие игры на мобилках, или вышел сериал Игра в Кальмара и все захотели поиграть в нечто похожее. Грамотно составить описание с ключевыми словами, но важно не перестараться, тот же Гугл за такое наказывает. У Эплов в настройках приложения есть отдельная строка для прописывания ключевых слов. И, конечно, хорошие скриншоты с иконкой тоже могут сыграть важную роль.
>
>Второе: в плане продвижения работают те же способы, что и для любых других игр. Можешь присылать ссылки на игру видеоблогерам как минимум малоизвестные блогеры поиграют в твою игру, если это не трешак, публиковать посты на реддите. Но на реддите так просто нельзя зайти и прорекламировать свою игру, нужно сначала набить карму:
>https://dtf.ru/gamedev/1080281-chto-sdelat-chtoby-reddit-uznal-pro-vashu-igru
>
>Третье: лучше делать 3Д игру, потому что среди 2Д будет крайне тяжело выделиться. Особенно долго живут игры с мультиплеером. Не обязательно делать риалтайм мультиплеер. Можно асинхронный, как в том же знаменитом клэш оф кланс. Тут бескрайняя поляна, всё зависит от твоей фантазии.
>
>Ну и четвёртое, самое животрепещущее: идеи для игры. Желательно выбрать что-то такое, что будет тебе самому интересно. Я вот за гоночки никогда не брался, потому что они мне совсем неинтересны, хотя это крайне популярный и денежный жанр. Кстати, есть бессмертные жанры, которые всегда популярны: стрелялки, гоночки, гта-лайк-игры, выживач. Ты их можешь комбинировать как душе угодно, насколько хватит фантазии и опыта. Если прям вообще нет идей, то нужно больше играть. Не только в мобилки, но и в игры на других платформах. Если интересно, во что сейчас гоняют дети, то можешь посмотреть популярные моды на Роблокс. Что-то уникальное тоже может выстрелить вполне, но шансов, конечно, гораздо меньше. Идеальный баланс наверное знаешь какой: взять за основу популярную, проверенную временем идею и дополнить её по-своему, можно совместить идеи из разных игр, которые тебе понравились.
Звучит адекватно, но почему именно мобилки? Просто звучит так будто такой же алгоритм и на пека сработает?
>Значит, смотри. На мобильных платформах просто так никто тебе трафик не даст. Алгоритмы маркетплейса могут тебя подхватить, если увидят, что твою игру активно устанавливают. И тогда ты попадёшь в подборки, где получишь ещё в разы больше трафика. Зарабатывают на мобилках с внутриигровых платежей и/или с rewarded рекламы.
>
>Поэтому первое: СЕО может зарешать. Ты можешь грамотно подобрать название, которое зайдёт за счёт хайпа на какой-то теме аля вышел ФоллГайс и все захотели похожие игры на мобилках, или вышел сериал Игра в Кальмара и все захотели поиграть в нечто похожее. Грамотно составить описание с ключевыми словами, но важно не перестараться, тот же Гугл за такое наказывает. У Эплов в настройках приложения есть отдельная строка для прописывания ключевых слов. И, конечно, хорошие скриншоты с иконкой тоже могут сыграть важную роль.
>
>Второе: в плане продвижения работают те же способы, что и для любых других игр. Можешь присылать ссылки на игру видеоблогерам как минимум малоизвестные блогеры поиграют в твою игру, если это не трешак, публиковать посты на реддите. Но на реддите так просто нельзя зайти и прорекламировать свою игру, нужно сначала набить карму:
>https://dtf.ru/gamedev/1080281-chto-sdelat-chtoby-reddit-uznal-pro-vashu-igru
>
>Третье: лучше делать 3Д игру, потому что среди 2Д будет крайне тяжело выделиться. Особенно долго живут игры с мультиплеером. Не обязательно делать риалтайм мультиплеер. Можно асинхронный, как в том же знаменитом клэш оф кланс. Тут бескрайняя поляна, всё зависит от твоей фантазии.
>
>Ну и четвёртое, самое животрепещущее: идеи для игры. Желательно выбрать что-то такое, что будет тебе самому интересно. Я вот за гоночки никогда не брался, потому что они мне совсем неинтересны, хотя это крайне популярный и денежный жанр. Кстати, есть бессмертные жанры, которые всегда популярны: стрелялки, гоночки, гта-лайк-игры, выживач. Ты их можешь комбинировать как душе угодно, насколько хватит фантазии и опыта. Если прям вообще нет идей, то нужно больше играть. Не только в мобилки, но и в игры на других платформах. Если интересно, во что сейчас гоняют дети, то можешь посмотреть популярные моды на Роблокс. Что-то уникальное тоже может выстрелить вполне, но шансов, конечно, гораздо меньше. Идеальный баланс наверное знаешь какой: взять за основу популярную, проверенную временем идею и дополнить её по-своему, можно совместить идеи из разных игр, которые тебе понравились.
Звучит адекватно, но почему именно мобилки? Просто звучит так будто такой же алгоритм и на пека сработает?
Смотря кого сократили, если в основном всяких лгбт-офицеров то только лучше будет.
Осталось еще 5400. И точно продолжат курс на дойку самых жирных клиентов, с индюков-то взять по сути нечего.
Иди в нормальную отрасль, не в геймдев ебаный, там и 100 и 200 в день своих любимых долларов будешь получать (по текущему курсу)
Нет, программистов бесполезных сократили, комиссаров никто не тронет.
Я бы назвал это "Ошибка Кабанчика". Видел эти мёртвые проекты и было жаль опытных разработчиков, которые просирали на них время. Причина провала здесь банальна. Кабанчику неинтересны игры, ему интересен исключительно бизнес. Он прослышал, что на играх можно делать большие деньги и решает вложиться в разработку игры, при этом сам в этом он не участвует. Всё управление отдаётся какой-нибудь бездарности. Программистов и моделеров при этом могут нанять очень хороших, но что толку, без грамотного управления проект обречён. Нет визионера, нет идеи, есть только желание навариться. Отсюда выходят мёртвые, уродливые, никому не нужные игры. Потому что зачастую в них нет ничего нового, какая-то очередная пародия. Либо это какой-то винегрет, где каждый из разработчиков делал по-своему, опять же из-за того, что нет адекватного управления. Ну ты понял.
Твой гришаков, судя по первому взгляду, такой же кабанчик-самодур, только чуть смышлёнее за счёт того, что изучает сферу в которой работает и делает выводы - ОБУЧАЕМЫЙ. Но, думаю, сами игры ему ничуть не интересны. Он пытается методом брутфорса и просмотра циферок в аналитике заработать как можно больше.
>>26479
>И да, вот тебе реальный опыт - надо сначала найти НИШУ, где еще большие дяди не засрали все (удачи)
А-а-а! Я много раз слышал подобное от дятлов, вроде тебя! Сначала мне говорили, что флеш игры забиты, ты там ничего не заработаешь. Потом говорили, что на мобилки поздно идти, там всё забито и нужны миллионные вливания в рекламу. Естественно это был обычный пиздёж безыгорников, и хорошо, что я их не слушал.
>5-лет назад в гугл-плее, это не то же самое, что гугл плей в 2к23 2к24-ом
Блять, я это и 5 лет назад слышал. Точно такой же пиздёж.
>>26492
>Звучит адекватно, но почему именно мобилки? Просто звучит так будто такой же алгоритм и на пека сработает?
Аудитория у мобильных игр гораздо больше и разнообразнее, а значит выше шансы заработать. Плюс на мобилках ты будешь выпускать условно-бесплатную игру, а на ПК тебе нужно будет продать свою игру. Но самое главное - к чему у тебя больше душа лежит. Меня тошнит от инди-игр на ПК, поэтому я туда не лезу. Но если ты фанат инди-игр, то тебе лучше создавать игры на ПК. Создавай то, что тебе самому будет интересно, чтобы ты хоть немножко понимал свою аудиторию.
Я бы назвал это "Ошибка Кабанчика". Видел эти мёртвые проекты и было жаль опытных разработчиков, которые просирали на них время. Причина провала здесь банальна. Кабанчику неинтересны игры, ему интересен исключительно бизнес. Он прослышал, что на играх можно делать большие деньги и решает вложиться в разработку игры, при этом сам в этом он не участвует. Всё управление отдаётся какой-нибудь бездарности. Программистов и моделеров при этом могут нанять очень хороших, но что толку, без грамотного управления проект обречён. Нет визионера, нет идеи, есть только желание навариться. Отсюда выходят мёртвые, уродливые, никому не нужные игры. Потому что зачастую в них нет ничего нового, какая-то очередная пародия. Либо это какой-то винегрет, где каждый из разработчиков делал по-своему, опять же из-за того, что нет адекватного управления. Ну ты понял.
Твой гришаков, судя по первому взгляду, такой же кабанчик-самодур, только чуть смышлёнее за счёт того, что изучает сферу в которой работает и делает выводы - ОБУЧАЕМЫЙ. Но, думаю, сами игры ему ничуть не интересны. Он пытается методом брутфорса и просмотра циферок в аналитике заработать как можно больше.
>>26479
>И да, вот тебе реальный опыт - надо сначала найти НИШУ, где еще большие дяди не засрали все (удачи)
А-а-а! Я много раз слышал подобное от дятлов, вроде тебя! Сначала мне говорили, что флеш игры забиты, ты там ничего не заработаешь. Потом говорили, что на мобилки поздно идти, там всё забито и нужны миллионные вливания в рекламу. Естественно это был обычный пиздёж безыгорников, и хорошо, что я их не слушал.
>5-лет назад в гугл-плее, это не то же самое, что гугл плей в 2к23 2к24-ом
Блять, я это и 5 лет назад слышал. Точно такой же пиздёж.
>>26492
>Звучит адекватно, но почему именно мобилки? Просто звучит так будто такой же алгоритм и на пека сработает?
Аудитория у мобильных игр гораздо больше и разнообразнее, а значит выше шансы заработать. Плюс на мобилках ты будешь выпускать условно-бесплатную игру, а на ПК тебе нужно будет продать свою игру. Но самое главное - к чему у тебя больше душа лежит. Меня тошнит от инди-игр на ПК, поэтому я туда не лезу. Но если ты фанат инди-игр, то тебе лучше создавать игры на ПК. Создавай то, что тебе самому будет интересно, чтобы ты хоть немножко понимал свою аудиторию.
>Создавай то, что тебе самому будет интересно, чтобы ты хоть немножко понимал свою аудиторию.
Так и делаю, просто игра для аудитории, частью которой я являюсь делается небыстро, просто ты так описал что легко получил свои 20к что я подумал что мог бы сделать быстрый детур в мобилки, заработать на пару лет спокойной разработки и вернуться к своей игре.
>Создавай то, что тебе самому будет интересно
Индюк в одиночку не создаст то, что ему самому будет интересно, хватит лить булшит ньюфагам что характерно, они, развесив уши от таких как ты, потом и срут в рынок кучей говна, делая всем ПЛОХО. Это процесс на года 3-4, а то и 5+ на фуллтайме минимум, при имеющихся хороших тех.скиллах. Помимо этого нужны нихуевые вливание в сферы, в которых индюк просто из-за ограниченного человеческого ресурса времени не станет хорош - навскидку музыка-звуки, графика. А далее продвижение продукта, что есть отдельной наукой не легче самого создания игр.
Это получилось у единиц, имена которых знают чуть ли не по всему миру. Сингл-индюку надо начинать с крайне простых игр, с условного гипер-кежа, клона марио и т.д., что он сможет довести до конца.
А теперь ,внимание, вопрос. Даже джва. Будет ли это ему интересно? Как он это говно сможет продать при такой конкуренции?
>на мобилки поздно идти, там всё забито и нужны миллионные вливания в рекламу
Ну сейчас как минимум проплати граф.ассеты, что бы не как говно выглядело, затем купи лицензию, затем минимум 40$ per project отстегни на прохождение 2-недельного обязательного тестирования, затем вкидывай в рекламу без гарантии, что хотя бы эти траты окупятся.
Да, это, конечно же, ровно тоже самое, что 5 лет назад - пук-срень, ассетфлипчик (и тот спижженный) за пару недель - пара-тройка kUSD лутанул, высрал гоночку-раннер по прямой дороге - вот тебе и 20к. Бля, да 5 лет назад можно было еще вкатываться в дженерик-матч-3 проекты и находить на это спонсорские бабки изи.
Говорю же - очень удобно вещать пост-фактум про обсеры других, с умным ебалом рассуждать почему же не вышло - целый отдельный тред тут есть. Очень удобно вещать с позиции ошибки выжившего, удачно лутанувшего бабла. Не, красава, я тебе завидую, но вот выиграв в лотерею учить потом других жизни, причем учить хуйне, - це пиздец.
Твой месседж это буквально "нормально делай @ нормально будет", только вот реальный мир работает немного иначе.
И, опять же, никакой конкретики, просто одна вода, одни общие фразы, которые и так все понимают. Что конкретно делал? Какие механики юзал, что юзерам так зашло? Как настраивал баланс? Не, нихуя. НУ ТАМ СЕО И РЕКЛАМКУ НАСТРОЙ)00) ДЕЛАЙ ЧТО НРАВИТСЯ))0)))) ПРОСТО БУДЬ СОБОЙ, АНОН)0))) ПРОСТО КАЙФУЙ И ДЕНЬГИ К ТЕБЕ ПОТЯНУТЬСЯ)0)) Тебе бы книги по успешному успеху писать.
P.S. Я тебя, успешного, с охуительными советами уже тут не первый раз встречаю. И каждый раз - размытая общая хуйня и 0 конкретики. Тебе не стыдно молодняку голову ебать?
>Создавай то, что тебе самому будет интересно
Индюк в одиночку не создаст то, что ему самому будет интересно, хватит лить булшит ньюфагам что характерно, они, развесив уши от таких как ты, потом и срут в рынок кучей говна, делая всем ПЛОХО. Это процесс на года 3-4, а то и 5+ на фуллтайме минимум, при имеющихся хороших тех.скиллах. Помимо этого нужны нихуевые вливание в сферы, в которых индюк просто из-за ограниченного человеческого ресурса времени не станет хорош - навскидку музыка-звуки, графика. А далее продвижение продукта, что есть отдельной наукой не легче самого создания игр.
Это получилось у единиц, имена которых знают чуть ли не по всему миру. Сингл-индюку надо начинать с крайне простых игр, с условного гипер-кежа, клона марио и т.д., что он сможет довести до конца.
А теперь ,внимание, вопрос. Даже джва. Будет ли это ему интересно? Как он это говно сможет продать при такой конкуренции?
>на мобилки поздно идти, там всё забито и нужны миллионные вливания в рекламу
Ну сейчас как минимум проплати граф.ассеты, что бы не как говно выглядело, затем купи лицензию, затем минимум 40$ per project отстегни на прохождение 2-недельного обязательного тестирования, затем вкидывай в рекламу без гарантии, что хотя бы эти траты окупятся.
Да, это, конечно же, ровно тоже самое, что 5 лет назад - пук-срень, ассетфлипчик (и тот спижженный) за пару недель - пара-тройка kUSD лутанул, высрал гоночку-раннер по прямой дороге - вот тебе и 20к. Бля, да 5 лет назад можно было еще вкатываться в дженерик-матч-3 проекты и находить на это спонсорские бабки изи.
Говорю же - очень удобно вещать пост-фактум про обсеры других, с умным ебалом рассуждать почему же не вышло - целый отдельный тред тут есть. Очень удобно вещать с позиции ошибки выжившего, удачно лутанувшего бабла. Не, красава, я тебе завидую, но вот выиграв в лотерею учить потом других жизни, причем учить хуйне, - це пиздец.
Твой месседж это буквально "нормально делай @ нормально будет", только вот реальный мир работает немного иначе.
И, опять же, никакой конкретики, просто одна вода, одни общие фразы, которые и так все понимают. Что конкретно делал? Какие механики юзал, что юзерам так зашло? Как настраивал баланс? Не, нихуя. НУ ТАМ СЕО И РЕКЛАМКУ НАСТРОЙ)00) ДЕЛАЙ ЧТО НРАВИТСЯ))0)))) ПРОСТО БУДЬ СОБОЙ, АНОН)0))) ПРОСТО КАЙФУЙ И ДЕНЬГИ К ТЕБЕ ПОТЯНУТЬСЯ)0)) Тебе бы книги по успешному успеху писать.
P.S. Я тебя, успешного, с охуительными советами уже тут не первый раз встречаю. И каждый раз - размытая общая хуйня и 0 конкретики. Тебе не стыдно молодняку голову ебать?
>Причина провала здесь банальна. Кабанчику неинтересны игры, ему интересен исключительно бизнес.
Только вот мобилки это не игры, это самый чистый бизнес. Всегда был. С циферками, с табличками, с аналитикой, с аб-тестами всего и вся, с кучей метрик, с кучей данных на каждый пук, с холодным расчетом, что и сколько даст каждое изменение и минимально подвинуть спрайтик, с крайне хитрожопой (читай - подкрученной, наебной и нечестной) игровой логикой-балансом, с выверенной до миллиметра стратегией как с юзера вытянуть каждый цент, юзер там буквально марионетка в иллюзии и пляшет ровно туда и ровно так, как это задумали геймдизы.
Вот ты и спалился, эксперт.
640x848, 0:07
>Индюк в одиночку не создаст то, что ему самому будет интересно, хватит лить булшит ньюфагам
От индюка зависит. Да и можно найти себе компаньона. Ты будешь код писать, а он займётся графикой. Но ты всё свёл к каким-то своим комплексам на этот счёт, которые возвёл в абсолют.
>Это получилось у единиц, имена которых знают чуть ли не по всему миру
Хуйню несёшь. Многие индюки зарабатывают себе на жизнь таким образом.
>Сингл-индюку надо начинать с крайне простых игр, с условного гипер-кежа, клона марио и т.д., что он сможет довести до конца.
Кому "надо"? Я сразу начинал с относительно сложной игры, правда у меня уже был опыт программирования. Создал рабочий прототип, прописал что хочу создать и таким образом нашёл компаньона на форуме.
>Да, это, конечно же, ровно тоже самое, что 5 лет назад - пук-срень, ассетфлипчик (и тот спижженный) за пару недель - пара-тройка kUSD лутанул, высрал гоночку-раннер по прямой дороге - вот тебе и 20к. Бля, да 5 лет назад можно было еще вкатываться в дженерик-матч-3 проекты и находить на это спонсорские бабки изи.
А 15 лет назад просто за факт создания мобильной игры гуглы присылали чек на 100 тысяч долларов! Вот люди жили! А ещё через 5 лет ты скажешь "вот раньше времена были, сынки! сейчас уже точно не вкатишься! бля буду!"
>Говорю же - очень удобно вещать пост-фактум про обсеры других, с умным ебалом рассуждать почему же не вышло - целый отдельный тред тут есть
Мне похую на обсёры других. Мне интересен успешный вкат. Взять того же анона с его That Level Again. Было несколько других анонов, которые успешно вкатились. При том, что это мёртвый раздел.
>выиграв в лотерею учить потом других жизни, причем учить хуйне, - це пиздец
Если ты приравниваешь большой труд по разработке игр к лотерее, то ты ебаклак.
>учить потом других жизни
Но конечно лучше ныть и рассказывать сказки о том, как раньше было лучше.
>И, опять же, никакой конкретики, просто одна вода, одни общие фразы, которые и так все понимают
Какая конкретика тебе нужна? Конкретно мой кейс тебе ничего не даст. Тем более ты в сотый раз пукнешь про ошибку выжившего. Я описал все основные факторы, которые влияют на успех игры. В основе должна лежать проверенная, популярная идея, которую ты уже дополняешь своими идеями. Делать желательно в 3Д. Выбирать нетленные жанры, которые я перечислил. И так далее. Некоторые кабанчики умудряются методом брутфорса выпускать хитовую игру, которая потом кормит его и команду много лет. Очевидно, что если ты будешь делать очередной 2Д платформер, то твои шансы на успех будут крайне низкими.
Или мне нужно тебя за ручку провести, рассказать как установить юнити, придумать за тебя идею, код написать, может ещё моделера тебе найти? Такую хуйню ищи у продавцов курсов.
>>26634
Первое:
Какой смысл от аналитики, если она будет анализировать говно? Тебе нужна основа в виде интересной игры, которая захватывает. Но ты говоришь так, будто первична аналитика.
Второе:
Подобным занимаются специальные люди. Обычно такие люди работают в компаниях, которые зарабатывают много миллионов, а иногда миллиарды долларов. Поэтому они вкладывают в этом кучу денег. Обычные разработчики этим не занимаются, их это никак не касается. Но ты, как и дятел выше, зацепился за какую-то хуйню и возвёл её в абсолют.
Третье:
На ПК все более-менее большие компании используют аналитику. Иногда даже раскрывают публике какие-то детали, типа кто сколько раз подрочил в игре или кто на каких персонажах играет. А как они распоряжаются остальное информацией и какую информацию собирают - чёрт их знает.
640x848, 0:07
>Индюк в одиночку не создаст то, что ему самому будет интересно, хватит лить булшит ньюфагам
От индюка зависит. Да и можно найти себе компаньона. Ты будешь код писать, а он займётся графикой. Но ты всё свёл к каким-то своим комплексам на этот счёт, которые возвёл в абсолют.
>Это получилось у единиц, имена которых знают чуть ли не по всему миру
Хуйню несёшь. Многие индюки зарабатывают себе на жизнь таким образом.
>Сингл-индюку надо начинать с крайне простых игр, с условного гипер-кежа, клона марио и т.д., что он сможет довести до конца.
Кому "надо"? Я сразу начинал с относительно сложной игры, правда у меня уже был опыт программирования. Создал рабочий прототип, прописал что хочу создать и таким образом нашёл компаньона на форуме.
>Да, это, конечно же, ровно тоже самое, что 5 лет назад - пук-срень, ассетфлипчик (и тот спижженный) за пару недель - пара-тройка kUSD лутанул, высрал гоночку-раннер по прямой дороге - вот тебе и 20к. Бля, да 5 лет назад можно было еще вкатываться в дженерик-матч-3 проекты и находить на это спонсорские бабки изи.
А 15 лет назад просто за факт создания мобильной игры гуглы присылали чек на 100 тысяч долларов! Вот люди жили! А ещё через 5 лет ты скажешь "вот раньше времена были, сынки! сейчас уже точно не вкатишься! бля буду!"
>Говорю же - очень удобно вещать пост-фактум про обсеры других, с умным ебалом рассуждать почему же не вышло - целый отдельный тред тут есть
Мне похую на обсёры других. Мне интересен успешный вкат. Взять того же анона с его That Level Again. Было несколько других анонов, которые успешно вкатились. При том, что это мёртвый раздел.
>выиграв в лотерею учить потом других жизни, причем учить хуйне, - це пиздец
Если ты приравниваешь большой труд по разработке игр к лотерее, то ты ебаклак.
>учить потом других жизни
Но конечно лучше ныть и рассказывать сказки о том, как раньше было лучше.
>И, опять же, никакой конкретики, просто одна вода, одни общие фразы, которые и так все понимают
Какая конкретика тебе нужна? Конкретно мой кейс тебе ничего не даст. Тем более ты в сотый раз пукнешь про ошибку выжившего. Я описал все основные факторы, которые влияют на успех игры. В основе должна лежать проверенная, популярная идея, которую ты уже дополняешь своими идеями. Делать желательно в 3Д. Выбирать нетленные жанры, которые я перечислил. И так далее. Некоторые кабанчики умудряются методом брутфорса выпускать хитовую игру, которая потом кормит его и команду много лет. Очевидно, что если ты будешь делать очередной 2Д платформер, то твои шансы на успех будут крайне низкими.
Или мне нужно тебя за ручку провести, рассказать как установить юнити, придумать за тебя идею, код написать, может ещё моделера тебе найти? Такую хуйню ищи у продавцов курсов.
>>26634
Первое:
Какой смысл от аналитики, если она будет анализировать говно? Тебе нужна основа в виде интересной игры, которая захватывает. Но ты говоришь так, будто первична аналитика.
Второе:
Подобным занимаются специальные люди. Обычно такие люди работают в компаниях, которые зарабатывают много миллионов, а иногда миллиарды долларов. Поэтому они вкладывают в этом кучу денег. Обычные разработчики этим не занимаются, их это никак не касается. Но ты, как и дятел выше, зацепился за какую-то хуйню и возвёл её в абсолют.
Третье:
На ПК все более-менее большие компании используют аналитику. Иногда даже раскрывают публике какие-то детали, типа кто сколько раз подрочил в игре или кто на каких персонажах играет. А как они распоряжаются остальное информацией и какую информацию собирают - чёрт их знает.
>А вот работоблядям земля пухом, конечно. У них день сурка и тотальная зависимость. Времени для собственных мыслей совсем не остаётся.
Всё ещё реквестирую у успешного-бизнес-анона список его мыслей, которые он придумал в свободное от работы время.
Долго делал.
А потом создал новую сцену - и получилось как-то так что я сохранил новую пустую сцену вместо той, которую пилил несколько недель.
И понял я это только после того как сделал дофига изменений с новой сцене и закрыл Unity.
Возможно ли восстановить старую версию проекта?
На гитхаб ничего не пушил.
Не спрашивайте, как я умудрился. Я сам не знаю.
Мне вот интересно, как можно было вообще несколько недель ковыряться и ни разу не сохранить, особенно когда пикрил на каждый пердеж вылазит, да и во всех курсах и книгах всегда чуть ли не каждой строкой капсом пишут ВОЗЬМИТЕ ЗА ПРИВЫЧКУ СОХРАНЯТЬ СЦЕНЫ НА СЛУЧАЙ РАНДОМНОГО КРАША. Чето пиздаболией воняет, я более чем уверен что ты тупо удалил старую сцену вместо новой пустой, сохранил при закрытии юнити, а когда снова открыл не нашел старой сцены, понял что обосрался, и начал в панике искать решение. Ну сиди собирай заново, скрипты и префабы то никуда не делись, наказание за тупость.
Делай сео. Делай рекламу. Рычи. Делай что нравится и не забывай двигать тазом, словно ты уже в фичеринге гугла.
1920x1080, 0:07
>>26734
>>26740
>>26735
>>26722
Я сам не знаю как это получилось.
По уроку из курса надо было создать новую сцену, назвав ее Главное Меню.
Я это сделал.
Не помню, сохранял что-то или нет.
По урокам из курса я воссоздал это главное меню - там есть кнопка Play и кнопка Quit.
Сделав эти кнопки и нажав на Play, я должен был попасть на первый уровень.
А попал я на абсолютно пустой уровень.
Начал разбираться, открыл ту сцену, которую делал несколько недель.
А она пустая.
Стал искать в проекте другие сцены.
А их нет - только Главное меню и Первый Уровень.
Как это вышло я не знаю.
Проект всегда сохранял, и часто.
Кажется понял.
Я нажал File -> New Scene, открылась новая пустая сцена.
А потом я нажал Ctrl+S...
...И сохранил эту новую сцену по названием Первый Уровень.
Спать я хотел, голова не робила.
Так это тебе на пользу пойдет.
Ты там несколько недель ковырялся с каким то простейшим курсом.
Теперь ты заново сделаешь эту сцену в разы быстрее, скажем за пару выходных.
Так навык и нарабатывается.
Я этот курс уже в пятый раз начинаю.
Каждый раз что-то крашится.
Жаль.
Мне осталось не так много до конца курса.
Наверное просто скачаю уже готовый проект с курса, и досмотрю оставшиеся уроки.
>Ты там несколько недель ковырялся с каким то простейшим курсом.
А какой курс не простейший?
На самом деле лагает, когда управляю трекпадом для обзора камерой. Дело в том, что по умолчанию он симулирует мышь. В итоге, когда я с одной стороны для перемещения использую левый стик, new input system переключается на scheme "Gamepad", а когда трогаю трекпад - на "Keyboard&Mouse". В итоге это переключение происходит, возможно, тысячу раз в секунду, а это мусор и зависание. Печаль короче. Видимо придется установить какой-то api от stram, где по умолчанию выставить трекпад как джойстик, а не мышь
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, артефакты же появятся, не?
Вот настройки из ведьмака.
То есть я могу включить vsync и мой моник будет выдавать 75fps, сколько и может.
А нижу выбрать 50fps и будет 50fps. Но при этом галочка vsync не снимается, то есть, создается впечателение, vsync по прежнему работает. чзх
Однако, если моник 144 герц, и игра будет отскакивать до 100, то чел захочет стабильности, и захочет залочить на 90.
Наверное, для этого и добавили эти взаимоисключающие опции.
Если игра отлично вывозит герцовку твоему моника - включаешь vsync. Если ты захотел по каким то причинам уменьшить fps, например, для экономии батарии, если играешь на ноуте, то ставим targetFrameRate=30fps например, но при этом отрубаем vsync
Хуй знает, как в ведьмаке, юнити игнорирует таргет фреймрейт, если установлен всинк. При этом виар и мобилки игнорируют всинк всегда, для мобилок нужно указывать таргет фреймрейт.
Да, я читал в доках, 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 ему придется выбрать из этих значений. Ладно, похуй
Прям самая нужна вещь, добавлять нонейм форматы в движок. Ничего важнее не нашлось, кроме этой бесполезной хуиты. А потом людей сокращают и движок стагнирует.
Ну это всё таки хоть что то. Лучше, чем ничего
лучше бы эти пидоры вернули поддержку трекерных форматов, не нужно было бы ебаться мне лично
Измени таргет сдк на нужный тебе в настройках проекта. При билдинге юнити сам предложит закачать указанную версию. Я сам никогда не закачивал сдк.
Как это исправить?
у тебя ротатион пули в префабе 90 градусов по иксу, видишь.
Верни поворот фаерПоинт как раньше и сделай так:
Instantiate(bullet, firePoint.position, new Vector3(firePoint.rotation.x+90, firePoint.rotation.y, firePoint.rotation.z));
а бля точно
Instantiate(bullet, firePoint.position, Quaternion.Euler(firePoint.rotation.x+90, firePoint.rotation.y, firePoint.rotation.z));
800x448, 0:25
Решил проблему.
В префабе пули повернул Bullet Bone на 90 градусов - так, чтобы пуля стала смотреть вниз.
После этого пули при выстреле расположились горизонтально.
Все равно что-то делаю не так, раз пулю пришлось расположить началом вниз, но что?
Есть машина, она двигается по криволинейной траектории.
Задача - при нажатии кнопки спавна нужно телепортировать ее на позицию, которая отстает от текущей на 10 метров, при чем лежит на траектории. При повторном нажатии на кнопку - телепортировать в эту же точку снова, а не на новую позади.
А в чем проблема? Сделай массив сохраненных точек, и хоть десяток разных.
Делаешь функцию которая творит ТП, в нее просто загружаешь нужную точку и всё.
Так и сделал
С чего лучше начать обучение юнити, непосредственно с самого движка (книги, курсы и тд) либо с с#? Либо с# лучше изучать параллельно движку в зависимости от необходимости? Также накидайте литературы с которой лучше начать обучение
Я бы рекомендовал отдельно начать изучать C#, создавая консольные приложения. Ещё момент: если ты хорошо освоишь C#, то считай, что ты освоил и все остальные языки. Потом без проблем сможешь перейти на Unreal Engine, например.
>>28324
В шапке есть пару книг, их берешь и занимаешься по ним, как только во время практики поймешь что нихуя не понимаешь что происходит, закрываешь книгу и идешь говнокодить то что хочешь. Сидеть глотать литературу месяцами нахуй не надо, тем более учить язык отдельно от движка, выхлоп от этого нулевый. Знания должны поступать порционно в зависимости от твоих потребностей. Захотел ты допустим стрельбу сделать, гуглишь "как сделать стрельбу", смотришь говногайды и повторяешь, тут еще важно не тупо повторять, но и понимать что пишешь и для чего. Первое время офк будет один хуй не понятно и сложно, но это с любым занятием так, главное не останавливаться и гуглить то что не понимаешь, потом будет проще. Это я конечно опираясь на свой опыт высрал, у тебя может быть и по другому.
Двачую этого >>28333 и совершено не двачую этого додика >>28327
Если у тебя в планах делать игры на Юнити, то тебе не нужно нивкоем случае дрочить голый net и консольные приложения.
Всё что тебе нужно это может прочить поверхностную базу по программирования по типу - Что такое массивы, функции и т.д, чтоб просто понимать когда видишь код что вообще там происходит, это 2-3 дня базы так сказать.
Дальше ты фантазируешь какую бы игру мечты хотел сделать, гоночки, стратегию, аркаду или что еще, и следом ищешь гайд на ютубе как какой нибудь пчелик делает подобное, или что-то близкое по механикам.
Далее последнее создаешь проект своей игры, и начинаешь вместе с пчеликом делать. Обязательно гуглить каждую не понятную хрень, и внимательно смотреть видосик.
И самое-самое главное не в коем случаи не дропай разработку, дострадай но высри альфу 0.0.01 версии которую выложишь на итч, и забудь о ней. Это позволит тебе в будущем возможно завершить свою первую игру. А если же дропнишь с мыслями - Ну вот следующую игру сделаю заебись, а на эту уже лень тратить силы, то так до конца жизни и будешь делать игры в стол.
Кое-что еще важно. Если мечтаешь делать игры в команде или на работе, то тут уже придется подрочить книжки, и всякий другой стафф, и приготовиться душиться пару месяцев.
>камера при движении не скакала по пикселям, а двигалась плавно?
Легко, бери или делай сам камеру с оффсетом. Из готового есть кинематик машин.
Смысл один, у тебя есть текущая позиция, и старая позиция, и каждый тик делаешь перемещение со старой к новой. Это тащемта база каждой адекватной камеры.
Можешь глянуть в пакете юников стандартном там реализована она в ручную кодом.
1920x1080, 0:22
Пчел.. Вопрос был не как сделать так что бы камера следовала за плеером, а как сделать так что бы камера двигалась свободно а не прыгая оп пикселям. Видрил то о чем я говорю.
>2-3 дня базы
>чтоб просто понимать когда видишь код что вообще там происходит
С такими "знаниями" его потолком умений будет переписывание готового кода с ютуба. Чуть шаг в сторону от туториала и придётся бежать куда-нибудь на форум, просить умных людей поправить код. А если для реализации его идеи нужно ещё активно ООП использовать, то всё, это будут похороны без реальной базы. Потом попробует на работу устроиться, его начнут спрашивать стандартные вещи, которые должен знать разработчик на net, а он бе-ме и до свидание.
Да не трогай ты этого шиза, пусть дальше пишет по туторчикам с ютабчика или юдеми.
Пускай раз за разом пишет кал говна и дрочит на маня пОсТеПеНнОе уЛуЧшЕнИе.
Я, например, уже устал этому кретину что-то пытаться объяснять, и ты просто забей.
1096x528, 0:30
Враг должен постоянно преследовать - но когда я поднимаюсь на возвышенность, он меня словно не видит и стоит на месте.
Приходится его подманивать, ходя рядом.
Почему?
На всякий случай, может поможет - скрины AI Navigation (пик 1, пик 2), скрин NavMesh Surface (пик 3).
В скрипте аи как находит игрока? Рейкаст кидает? Или вектор в сетдистанс на прямую передается? Если рейкаст сферу кидает, то она скорее всего тупо не достает из за размера.
void Update()
{
target = PlayerMove.instance.transform.position;
target.y = transform.position.y;
agent.destination = target;
//transform.LookAt(target);
//theRigidbody.velocity = transform.forward * moveSpeed;
if(Vector3.Distance(transform.position, target) > distanceToStop)
{
agent.destination = target;
} else
{
agent.destination = transform.position;
}
}
Делал недавно в другом движке, я так понимаю ты говоришь про что-то подобное, вот тут чувак с 4-й минуты объясняет как она работает (тебе понятно придется переделать все средствами юнити) https://www.youtube.com/watch?v=zxVQsi9wnw8&t=246s
Да я натыкался уже на этот видос, только хуй знает как в юнити это сделать адекватно. Попробовал через канвас отобразить рендер текстуру, ну вроде заебись, получилось то что и надо, только блять текстуру в 4к надо рендерить что бы норм была, лол.
Нихуя не в рандомный. Олсо страдай монобихевиорлалка ))))
Много работаю в юньки и редко сталкиваюсь с таким же внезапным сраньем в консоль с ошибками.
Лечения обычно происходит в двуз вариантах.
1. В 90% помогает просто перезапустить эдитор.
2. В очень редких случаях сношу юньку, чишу аппдату с кэшом, и ставлю чистую.
Перезапуск помогает с таким, как и написал анон выше
движкопися, прошу ...
>Причину бы узнать всего этого.
С вероятность 99.99% ты не узнаешь. Для этого надо декомпилировать и колупать ядро с исходниками, и потом в ручную дебажить, короче врятли это возможно обычному человеку.
Просто забиваешь хуй и всё.
Захотел прикрутить звук шагов при перемещении персонажа, при нажатии на w или s. Написал такой код:
if (Input.GetAxis("Vertical") != 0)
audioSource.Play();
И происходит ровно обратное: когда движения нет, воспроизводится звук шагов, а когда движение начинается, звук пропадает. А если вместо != поставить ==, то всё работает как надо.
Я даже специально вывел на консоль ввод:
print(Input.GetAxis("Vertical")); - показывает 1 или -1 при нажатии w или s.
Почему код сверху не работает как должен, а работает наоборот?
>audioSource.Play();
В этом и дело. Ты запускаешь клип заново в каждом кадре и не даешь ему тем самым проиграться. Поэтому когда не нажаты клавиши все работает нормально. Документацию для кого писали?
Спасибо. Какой же я дурак.
Он же мешается в сцене. Что с этим делать?
Сдвигать все объекты сцены чтобы они не попадали под канвас?
Делать канвас невидимым (в сцене) чтоб не мешался, и включать/выключать видимость по необходимости?
Менять режим рендеринга на ворлд спейс? (тогда канвас можно будет сдвинуть и уменьшить, но наверное вылезут всякие подводные)
Как поступают олды?
Тут много вариантов что можно сделать. Всё сильно упирается в твое желание. Приведу примеры.
1. Делать элементы интерфейса в отдельных сценах и потом их подгружать в гире.
2. Выключать гейм обжект или его компонент.
3. Скрывать в редакторе глазом.
4. Делать игру не в нулевых координатах.
5. Забить.
Оригинально, мне нравится
Посоны, билд без заставки юнити уже вышел?
Он включается при выстреле в методе 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;
Vector3 verticalMove = transform.forward Input.GetAxis("Vertical");
Vector3 horizontalMove = transform.right Input.GetAxis("Horizontal");
moveInput = horizontalMove + verticalMove;
moveInput.Normalize();
if (Input.GetKey(KeyCode.LeftShift))
{
moveInput = moveInput sprintSpeed;
}
else
{
moveInput = moveInput moveSpeed;
}
moveInput.y = yVelocity;
moveInput.y += Physics.gravity.y gravityForce Time.deltaTime;
if (characterController.isGrounded)
{
moveInput.y = Physics.gravity.y gravityForce Time.deltaTime;
}
canJump = Physics.OverlapSphere(groundCheckPoint.position, 0.2f, ground).Length > 0;
//Jumping
if (Input.GetKeyDown(KeyCode.Space) && canJump)
{
moveInput.y = jumpForce;
}
characterController.Move(moveInput Time.deltaTime);
//camera rotation
Vector2 mouseInput = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")) mouseSensitivity;
transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y + mouseInput.x, transform.rotation.eulerAngles.z);
cameraTransform.rotation = Quaternion.Euler(cameraTransform.rotation.eulerAngles + new Vector3(-mouseInput.y, 0f, 0f));
muzzleFlash.SetActive(false);
//Shooting
if (Input.GetMouseButtonDown(0) && activeGun.fireCounter <= 0)
{
RaycastHit hit;
if(Physics.Raycast(cameraTransform.position, cameraTransform.forward, out hit, 200f))
{
if(Vector3.Distance(cameraTransform.position, hit.point) > 1f)
{
firePoint.LookAt(hit.point);
} else
{
firePoint.LookAt(cameraTransform.position + (cameraTransform.forward 40f));
}
}
//Instantiate(bullet, firePoint.position, firePoint.rotation);
FireShot();
}
if (Input.GetMouseButton(0) && activeGun.canAutoFire)
{
if(activeGun.fireCounter <= 0)
{
RaycastHit hit;
if (Physics.Raycast(cameraTransform.position, cameraTransform.forward, out hit, 200f))
{
if (Vector3.Distance(cameraTransform.position, hit.point) > 1f)
{
firePoint.LookAt(hit.point);
}
else
{
firePoint.LookAt(cameraTransform.position + (cameraTransform.forward 40f));
}
}
FireShot();
}
}
if (Input.GetKeyDown(KeyCode.Q))
{
SwitchGun();
}
animator.SetFloat("moveSpeed", moveInput.magnitude);
animator.SetBool("onGround", canJump);
}
public void FireShot()
{
if(activeGun.currentAmmunition > 0)
{
activeGun.currentAmmunition--;
Instantiate(activeGun.bullet, firePoint.position, firePoint.rotation);
activeGun.fireCounter = activeGun.fireRate;
UI.instance.ammunitionText.text = "" + activeGun.currentAmmunition;
muzzleFlash.SetActive(true);
}
}
public void SwitchGun()
{
activeGun.gameObject.SetActive(false);
currentGun++;
if(currentGun >= allGuns.Count)
{
currentGun = 0;
}
activeGun = allGuns[currentGun];
activeGun.gameObject.SetActive(true);
UI.instance.ammunitionText.text = "" + activeGun.currentAmmunition;
firePoint.position = activeGun.firepoint.position;
}
}
Он включается при выстреле в методе 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;
Vector3 verticalMove = transform.forward Input.GetAxis("Vertical");
Vector3 horizontalMove = transform.right Input.GetAxis("Horizontal");
moveInput = horizontalMove + verticalMove;
moveInput.Normalize();
if (Input.GetKey(KeyCode.LeftShift))
{
moveInput = moveInput sprintSpeed;
}
else
{
moveInput = moveInput moveSpeed;
}
moveInput.y = yVelocity;
moveInput.y += Physics.gravity.y gravityForce Time.deltaTime;
if (characterController.isGrounded)
{
moveInput.y = Physics.gravity.y gravityForce Time.deltaTime;
}
canJump = Physics.OverlapSphere(groundCheckPoint.position, 0.2f, ground).Length > 0;
//Jumping
if (Input.GetKeyDown(KeyCode.Space) && canJump)
{
moveInput.y = jumpForce;
}
characterController.Move(moveInput Time.deltaTime);
//camera rotation
Vector2 mouseInput = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")) mouseSensitivity;
transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y + mouseInput.x, transform.rotation.eulerAngles.z);
cameraTransform.rotation = Quaternion.Euler(cameraTransform.rotation.eulerAngles + new Vector3(-mouseInput.y, 0f, 0f));
muzzleFlash.SetActive(false);
//Shooting
if (Input.GetMouseButtonDown(0) && activeGun.fireCounter <= 0)
{
RaycastHit hit;
if(Physics.Raycast(cameraTransform.position, cameraTransform.forward, out hit, 200f))
{
if(Vector3.Distance(cameraTransform.position, hit.point) > 1f)
{
firePoint.LookAt(hit.point);
} else
{
firePoint.LookAt(cameraTransform.position + (cameraTransform.forward 40f));
}
}
//Instantiate(bullet, firePoint.position, firePoint.rotation);
FireShot();
}
if (Input.GetMouseButton(0) && activeGun.canAutoFire)
{
if(activeGun.fireCounter <= 0)
{
RaycastHit hit;
if (Physics.Raycast(cameraTransform.position, cameraTransform.forward, out hit, 200f))
{
if (Vector3.Distance(cameraTransform.position, hit.point) > 1f)
{
firePoint.LookAt(hit.point);
}
else
{
firePoint.LookAt(cameraTransform.position + (cameraTransform.forward 40f));
}
}
FireShot();
}
}
if (Input.GetKeyDown(KeyCode.Q))
{
SwitchGun();
}
animator.SetFloat("moveSpeed", moveInput.magnitude);
animator.SetBool("onGround", canJump);
}
public void FireShot()
{
if(activeGun.currentAmmunition > 0)
{
activeGun.currentAmmunition--;
Instantiate(activeGun.bullet, firePoint.position, firePoint.rotation);
activeGun.fireCounter = activeGun.fireRate;
UI.instance.ammunitionText.text = "" + activeGun.currentAmmunition;
muzzleFlash.SetActive(true);
}
}
public void SwitchGun()
{
activeGun.gameObject.SetActive(false);
currentGun++;
if(currentGun >= allGuns.Count)
{
currentGun = 0;
}
activeGun = allGuns[currentGun];
activeGun.gameObject.SetActive(true);
UI.instance.ammunitionText.text = "" + activeGun.currentAmmunition;
firePoint.position = activeGun.firepoint.position;
}
}
Мде. Как думаешь, сколько кадров нужно для того что бы вспышка показалась? 1 или 0? Вот и думай.
Все, пофиксил.
IEnumerator WaitAndSetActiveFalse()
{
muzzleFlash.SetActive(true);
yield return new WaitForSeconds(0.2f);
muzzleFlash.SetActive(false);
}
Стоит отписаться в этом треде - и сам нахожу ответ.
Чтобы сохранять деньги которые накапливаются в процессе игры на которой я заработаю девять тысяч миллиардов восемь миллионов семсот девяносто рублей
красный канал перетаскивается в альфу и заливается белым, зеленый вроде бы остается на своем месте, но что с синим происходит? тоже белым заливается и реконстрируется шейдером?
я почему спрашиваю, ведь в этом случает целых два канала(красный и синий) в текстуре просто не используются, значит в них можно какое-нибудь АО и прочие ч\б текстуры дополнительно пихнуть.
Убиваю одного - текст меняется с 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;
if(currentHealth <= 0)
{
Destroy(gameObject);
killedEnemies++;
UI.instance.killedEnemiesText.text = "Killed Enemies: " + killedEnemies;
}
}
}
Убиваю одного - текст меняется с 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;
if(currentHealth <= 0)
{
Destroy(gameObject);
killedEnemies++;
UI.instance.killedEnemiesText.text = "Killed Enemies: " + killedEnemies;
}
}
}
Попытался сделать так:
UI класс
public void UpdateKilledEnemiesText()
{
killedEnemiesText.text = "Killed Enemies: " + EnemyHealth.instance.killedEnemies;
}
EnemyHealth класс
public void DamageEnemy(int damage)
{
currentHealth -= damage;
if(currentHealth <= 0)
{
Destroy(gameObject);
killedEnemies++;
UI.instance.UpdateKilledEnemiesText();
}
}
Не робит
>>30647
Ох, блин.
Путем долгих раздумий (случайно) решил проблему.
Добавил в UI класс следующую переменную:
public int killedEnemies;
И в классе DamageEnemy при смерти врага я сначала обращаюсь к классу UI, увеличивая переменную, а потом обращаюсь к UI, обновляя текст.
Может кто объяснить почему это не работало, когда переменная killedEnemies была в этой функции?
public void DamageEnemy(int damage)
{
currentHealth -= damage;
if(currentHealth <= 0)
{
Destroy(gameObject);
UI.instance.killedEnemies++;
UI.instance.killedEnemiesText.text = "Killed Enemies: " + UI.instance.killedEnemies;
}
}
Как это правильнее сделать?
Как ни пробую - у меня не получается.
Ну в твоем случае как правильнее не уместно. Тут скорее как что бы работало. При загрузки новой сцены, все изменения старой - пропадают, твой счетчик киллов не исключение. Значит тебе нужно как то сохранить цифру этого счетчика. Самое простое это создать ScriptableObject и записывать в него. Пикрил пример того что будет работать. Настоятельно рекомендую самому ознакомиться что такое скриптовый объект, и как его можно юзать.
Кстати по твоему прошлому вопросу. Впрочем, я хуй знает почему ты сам не понял в чем была проблема, но судя по тому что ты юзаешь синглтон для скрипта, объектов с которым на сцене может быть больше одного, все становится понятно. Сколько ты времени потратил на изучение базы? И изучал ли ты ее вообще? Попробуй в класс EnemyHealth в методе Start или Awake добавить такую строчку
if(Instance == null) Instance = this;
else Destroy(gameObject);
и посмотреть что из этого получится.
А изначальная проблема заключалось в том что ты киллы 'считал' в скрипте хп врага, лол
>>30841
>>30842
Пофиксил.
Int переменную killedEnemies добавил в скрипт GameManager.
При убийстве врага переменная увеличивается -
UI.instance.killedEnemiesText.text = "Killed Enemies: " + GameManager.instance.killedEnemies;
А при смерти игрока через Coroutine открывается сцена FinalScreen, в скрипте FinalScreen добавил следующие строки:
void Start()
{
FinalScreen.instance.killedEnemiesText.text = "KILLED ENEMIES: " + 0;
}
// Update is called once per frame
void Update()
{
FinalScreen.instance.killedEnemiesText.text = "KILLED ENEMIES: " + GameManager.instance.killedEnemies;
}
И все заработало, на финальном экране отображается кол-во уничтоженных врагов.
>но судя по тому что ты юзаешь синглтон для скрипта, объектов с которым на сцене может быть больше одного, все становится понятно. Сколько ты времени потратил на изучение базы? И изучал ли ты ее вообще? Попробуй в класс EnemyHealth в методе Start или Awake добавить такую строчку
Такого не знал, буду иметь ввиду.
Делаю по курсу с Udemy, честно говоря даже в голову не приходило что
public void Awake(){
instance = this;
}
- это вызов синглтона.
М-да, мне еще учиться и учиться...
А может ты знаешь, как обездвижить игрока при его смерти?
Если использовать строчку
gameObject.SetActive(false);
- то вылезает ошибка что Coroutine не вызывается, потому что объект не активен.
А если вызов Coroutine поставить вначале, и только потом gameObject.SetActive(false);
- новая сцена просто не загружается.
public void DamagePlayer(int damage)
{
currentHealth -= damage;
UI.instance.ShowDamage();
if(currentHealth <= 0)
{
//gameObject.SetActive(false);
currentHealth = 0;
StartCoroutine(WaitingForFinalScreen());
}
UI.instance.healthSlider.value = currentHealth;
UI.instance.healthText.text = "HEALTH: " + currentHealth + "/" + maxHealth;
}
Добавь булевую dead. В DamagePlayer в случае если хп меньше нуля присваиваешь dead истину. В методе передвижения сначала выполняй проверку dead, если ложь то метод продолжает выполняться, если истина то выход из метода.
Чего сложного то?
public bool dead = false;
public void Move(){
if (dead == true) return
...
...
}
public void DamagePlayer(int damage){
if (cuurentHealth <= 0)
{
dead = true;
}
}
А этот bool где объявлять - в Game Manager? Или Player Move? Или Player Health?
Я пытался, но не смог заставить это нормально работать. Вообще то да, можно нормалку с АО скомбить в нормальных пакетах 3д, но не в юнити
даже уроки вида "лоуполи моделька за 5 минут" занимают пару часов и на выходе вместо угловатого человечка получается помесь персонажа роблокса и кирпича-метамфетаминщика
кто что думает про 2.5д-стиль, когда окружение частично 3д, но персонажи и большинство объектов 2д-шные? как в Лмбе, Донтстарве и ДаркестДанжене
Нормально, посмотри на The Citadel - выглядит ебейше
да, это какое-то дрочево. я подозреваю что в стандарте сделали так, на первый взгляд нерационально, из-за вариантов. да и слабо понятно будет игроделам с какого хуя в нормалях какие-то каналы совсем не нормали, а что-то другое.
с другой стороны я разобрался чуток и накропал упаковщик@распаковщик, но это троллейбус из батона, юнити это и так в инспекторе делает.
по крайней мере что-то новое узнал..
Погоди а в годот вроде бы тоже c# есть, не?
вроде и нормальный полет, но опять какая-то хуйня пошла в последнее время.
я точно знаю что IDisposable есть, он работает и он не нуль, я это проверял много раз
вот такой метод вызывается менеджером снаружи упрощенно:
public void Cleanup()
{
//...
_sub.Dispose();
//...
MonoBehavour.Destroy(this);
}
дестроится уже после того как диспозится, но почему-то _sub ИНОГДА оказывается нулем и срет нулрефом.
_sub?.Dispose() с нулчеком убирает проблему, но почему она вообще нуль, когда не должна? с ней ничего в процессе не делается такого, от чего она откиснуть должна. сборщик ее тоже вроде бы забрать не должен, ведь она живет в живом объекте.
что за чертовщина?
>>31236
асмдефы используешь?
Алё, ты же всё засунул в Update
а такие вещи нужно засовывать в FixUpdate
вы бы хоть документацию почитали чем Update отличаются и для чего каждый..
Опять пердолинг, хули нормально сразу не сделать? Это же коммерческий продукт, пиздец
>>31307
>>31284
Если срунити надо целую минуту чето там конпилить в 2д игре на ай7 то это проблемы срунити, а не того, что новичек там амсдефы не юзает. Есть огромные проекты с ебейше насраным в апдейт кодом, которые компилируются на слабом железе быстрее, чем у него. Ты просто юнитилахта.
>>31261
Такое то появляется то пропадает у людей в зависимости от версии к версии. Я не понял почему один и тот же проект может вдруг начать конпелироваться в 4 раза дольше обычного, но если повезло обновиться на версию, где такого нет, то повезло и я так и сижу
>то это проблемы срунити
Дауны которые не могут освоить инструмент.
Вот поэтому этот тред раковник.
Если для того, чтобы 2д проект не лагал на ай7 нужен "инструмент" то это юнити кал, а не тред раковник.
пофиксил, оно было в память загружено
>//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?
ну и в чём он не прав?
>fix their shit up
напомнило все фичи юнети за последние 10 лет