На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны? - Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны? - Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity? - На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity? - Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры? - Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать? - Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты? - Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с 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. Head First. Изучаем C# 4е издание Авторы: Эндрю Стиллмен, Дженнифер Грин 2. Программирование на C# для начинающих 2е части Автор: Алексей Васильев 3. C# для чайников Автор книги – Джон Пол Мюллер 4. Unity и C#. Геймдев от идеи до реализации Автор: Джереми Гибсон Бонд 5. Язык программирования C# 7 и платформы .NET и .NET Core Авторы: Филипп Джепикс, Эндрю Троелсен
Для людей абсолютно не знакомых с движком есть 3и основные книги на русском языке:
1. Разработка игр на Unity 2018 за 24 часа Майка Гейга (Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков). 2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне (Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.) 3. Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание Хокинг Джозеф (Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
>>835726 (OP) Сукаблядь шапку переделайте ало, она на 90% уже устаревшее говно!!!111111111111111111 50% проблем новичков решалось бы сразу если бы шапка нормальная была Еще 50% вопрос также отсекалось после прочтения
>>835733 Рот завали. Шапка уже переделана. Все ссылки кроме юнити вики актуальны, список книг ссылается на последние издания на русском. Хрена тебё ещё надо?
>>835735 Ахуенно актуально >- На каких языках я могу писать скрипты для Unity? >- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
>>835726 (OP) Сап юнитач, нужно помощь знающих. Я тут туториал выполнил по инвентарю для 2д https://www.youtube.com/watch?v=X--JLDZboCs&t=1s Но столкнулся с тем что когда я нажимаю на спрайт на его месте появляется пустой слот, объект исчезает и не появляется пока я не тыкну в другой любой слот. Анимация перетаскивания не работает. Скрипт перемещения. void MoveObject()//перемещение объектов { Vector3 position = Input.mousePosition;
movingObject.position = camera.ScreenToWorldPoint(position); } И перемещаемый объект появляется в нижнем левом углу с дикими координатами мыши.
Често я уже подумываю отказаться от инвентаря, я даже ещё не реализовал подбор/выброс предмета или сохранение инвентаря, а здесь в такой элементарщине не могу разобраться.
>>835846 >GameObject.Find Юзай это только при инициализации. В процессе игры никогда. Во первых в зависимости от размера сцены может занять поток на 100% и уже от компудахтера повиснуть на несколько секунд вызвав фриз.
>>835847 это понятно, я имел ввиду, возможна ли такая ситуация, когда объект не успеет создастся и из-за этого GameObject.Find не сможет нормально отработать?
>>835726 (OP) Сап мейлач, на связи кун который вкатывается в gamedev Вот решил сделать простенькую сцену и протестировать своё творение в unity. Выбрал рендер hdrp. Но картинка будто gta sa с хуёвыми модами. Есть ли тутариал или пресет настройки отведения. Я всё облазил, но выходит какая -то бледная хрень. Помогите.
>>835976 Довольно много есть всяких настроек и шейдеров для красивой картинки, а уж работа с освещением и эффектами это на недели без опыта. В два клика такие не решится. Советую просто для начала поизучать возможности юньки, слишком много всего можно включить/выключить/настроить, и что самое главное разными путями под свой вкус. Одной кнопки универсальной - сделать красиво нет.
>>835982 >Довольно много есть всяких настроек и шейдеров для красивой картинки Я использовал pbr >>835982 >В два клика такие не решится. >Советую просто для начала поизучать возможности юньки, слишком много всего можно включить/выключить/настроить, и что самое главное разными путями под свой вкус. >Одной кнопки универсальной - сделать красиво нет.
Я понял, в общем - это тот ещё пердолинг. Штош, буду пробовать
OnLook в Input System выдает смещение курсора за один кадр. Значит, это значение не нужно умножать на Time.deltaTime, чтобы поддерживать фреймонезависимую скорость. Не так ли? Почему тогда разраб пишет, что надо умножить на Time.deltaTime? https://forum.unity.com/threads/mouse-delta-input.646606/ (первые два поста)
>>836124 Если есть специфика или кол-во анимаций и переходов более 10-15, то твой выбор это кастомная анимация в скрипте. Смотри на ютубчике как делается, не сложно и даже понятнее чем куча стрелочек и блоков в ванильном аниматоре.
>>836172 >Time.deltaTime Всегда используй это, без исключений. Хотя если тебе игру никому не надо давать, или в ней задействована собственная физика можно и без. А так это гарантия того что игра будет вести себя одинакова в разных условиях, но опять же есть исключения когда и даже так всё может пойти по пизде.
Это нормально иметь кучу пустых объектов для расчёта позиций и мест куда должны смотреть персонажи, процедурных анимаций и прочего? А то почему-то ощущается как костыль ебаный, но по-другому хз как.
Есть кнопка со скриптом, определяет когда над ней курсор (OnPointerEnter) и меняет цвет. Дублирую кнопку, делаю ее чайлдом у первой, если курсор над чайлдом то цвет меняется у обеих. Как сделать чтобы только у одной менялся?
>>836356 Ты структуру очень хуево сделал напихав буттоны под буттоны. Это нормальное поведение когда дочерние элементы ловят эвенты и переправляют своему паренту. Второе - покрас кнопки делается в самом компоненте кнопки, ты видел там пачку полей колоров? Вот их понастраивай.
>>836405 >150 рублей/час Уже лучше 99.9% предложений, соглашайся. Обычно первые пол-года, год вообще бесплатно ради опыта только берут. И то это надо на коленях упрашивать.
Кароч, запилил первую аномалию. Работает через анус, но работает. Единственно что я слишком тупой чтобы сделать так, когда камушек падает чтобы меш под ним в форме диска деформировался, а не квадрата. Я как бы интуитивно понимаю, что копать надо в направлении формулы площади круга и как-то экстраполировать на одномерный массив вершин меша, но мозг просто в ступор входит.
>>836747 Напишу псевдокодом: >function deform_circle(point, radius): >var radius2 = pow(radius, 2); >for x from point.x - radius to point.x + radius do >for y from point.y - radius to point.y + radius do >if pow(x, 2) + pow(y, 2) < radius2 then >deform_point(point); Ну ты понял, да? Перебираем квадрат точек, но изменяем только те точки, которые попадают в заданный радиус - в результате получаем круг/диск.
>копать надо в направлении формулы площади круга Нет, тут используется теорема Пифагора. https://ru.wikipedia.org/wiki/Теорема_Пифагора a и b - это x и y на координатных осях; c - это радиус, т.е. расстояние от точки с указанными координатами до (0; 0) (центр круга). Если хочешь круг, тебя интересуют точки с радиусом меньшим заданного. Если хочешь окружность, тебя интересуют точки с радиусом, примерно равным заданному (нужна небольшая погрешность для того, чтобы правильно изобразить окружность на дискретной матрице из точек, иначе точки будут слишком далеко друг от друга). Если хочешь вывернуть круг, то тебя интересуют точки с радиусом больше заданного.
Может, есть какие-то более эффективные алгоритмы, но этот самый простой для понимания.
Какой пиздец конечно. Учиться больше года чтобы получать зарплату складского рабочего в магните. Не, я понимаю что айти в целом ща косоебит у нас, но такая же хуйня была и до февраля. Это мизирные зп в геймдеве по сравнению с остальным айти. Тупа отсталая отрасль.
Аноны, а как в Mecanim тупо поставить клип на паузу? При том что я не хочу вообще всего персонажа вводить в ступор использовав animator.speed = 0. Я бы мог просто кадров в сам файл с анимацией добавить, но очевидно что лень таким заниматься.
>>836826 Сто раз обсуждалось, если ты получаешь зп грузчика, но при этом вместо грыжи от таскания ящиков сидишь в удобном кресле за любимым компом, ты уже успешнее 85% населения.
>>836840 Сестра поработала на всех дно работах. В пятерочке была одна из худших. Работают по 12 часов и насколько я помню все что сверху 8 не оплачивается))
>>836840 Ну кста я там на чилле работал. Часа за 4 коробки расставлял, а остальное время хуи пинал. Не в каждом магазе такое конечно, но все же имело место быть.
Просто знакомые ща устроился за 35к и штампует ГК. Сидит по 8-12 часов в день, потому что сроки сдачи мелкие, а объем работ большой. Ебанутый жанр, в котором каждый раз надо учить или пробовать что-то новое. Хочешь смешать жидкости? Качай плагин, шейдер и ебись как оно там сделано. Все твои знания предыдущие тут не катят. Хочешь сделать крутую механику с веревкой? Качай еба здоровый ассет и снова разбирайся за день, чтобы завтра показать хоть что-то. Хочешь создавать меш через касания на экране? Срочно беги изучать че такое вообще этот меш, как его генерить и че с ним дальше делать, потому что ни один ебаный курс этого тебе не рассказывает.
Ну ты думаю понял куда я клоню. Еба переработки, еба поток инфы (не всегда нужной) и все это за эти копейки. 100 раз подумаешь, а стоил ты все это того. У меня выбора то и нет уже, слишком времени дохуя потратил на юнити, надо уже добить, но хуево что перспективы такие себе пока.
>>836888 >обязан Никому, ничего ты не обязан. Можешь делать игры для себя хоть всю жизнь, главное чтобы было в удовольствие и чувствовал что делаешь то что хочется.
>>836843 >Хочешь смешать жидкости? >Хочешь сделать крутую механику с веревкой? >Хочешь создавать меш через касания на экране? Ну так это интересные задачи, это тебе не кубики через transform двигать. Считай что у него работа интереснее чем у 90% других Юнити-кодеров. Жаль что йоба-плагины нужны, но без них такие задачи за день не решаются.
Ну так что, кто-нибудь шарит в Меканим? Как в Mecanim тупо поставить клип на паузу? При том что я не хочу вообще всего персонажа вводить в ступор использовав animator.speed = 0. Я бы мог просто кадров в сам файл с анимацией добавить, но очевидно что лень таким заниматься.
>>836938 При обычной работе редко остается свободное время. Работы где можно ничего не делать очень редки. Работы после которой остаются силы писать игру ночью тоже.
>>836937 Мне нравится язык, но синдром самозванца не позволяет мне даже на собеседование записаться. >>836938 Так я и так пилю игоря в свободное от дно работки время. >>836926 >игра для себя Внезапно оказывается, что игр для себя не так интересна, как чужие незнакомые игры. Никаких секретов, всё же я сам написал.
>>836819 Попробую покурить, вообще у меня уже есть готовое решение, просто я хотел что-то свое попробовать. https://catlikecoding.com/unity/tutorials/mesh-deformation/ Там и крутой эффект с возвращением волны, а коллижен я уж сам умею менять. Просто как-то стыдно было целиком чужое решение пиздить.
>>837095 С чего бы решаются? Я вон пытался паузу индивидуально для стейта в Mecanim сделать, но хуй там, это невозможно без диких костылей. Стандартных способов нет, нужно искать исходный код и пытаться как-то самому расширить Mecanim, при этом нигде на ютубе или stackoverflow готовых туторов про это нет. А ведь это просто элементарная задача, гораздо проще чем готовая играбельная механика даже для гиперказуалки.
>>837226 >Куйда Евгения Игоревна >Филипп Дудчук >почему в России не умеют прощать неудачи >как Luka удалось привлечь пользователей благодаря ЛГБТ-коммьюнити в Бразилии >Из-за мирового финансового кризиса в России начал возрождаться национализм, а в 2012 году страну снова возглавил Владимир Путин. Мечты о более открытой России, казалось, улетучились. > Игорь Куйда > Участника дела о хищении 215 миллионов рублей в «Экопромбанке» оставили на свободе ?https://properm.ru/news/society/206809/
Беглый гуглинг показывает тусовку этнических украинцев, которые всей семьёй безнаказанно пиздили в России деньги, живя при этом за границей, обслуживая ЛГБТ-повесточку и обсирая русских.
>>837229 >которые всей семьёй безнаказанно пиздили в России деньги, живя при этом за границей Ну а у тех, кто не пиздили деньги и жили в России в итоге мобилизовали работников, оставив компанию без персонала и устроили войну, обрезав пути монетизации и придушив бизнес. Так ли эта тусовочка была неправа, что заранее съебала отсюда?
>>837253 Что ты там куда ввёл, стратег мамкин? Я тебе говорю, что если тебе хочется на профессиональных воров работать, то добро пожаловать, останавливать не буду.
>>837226 >Replika — самый популярный в мире чат-бот на английском. Это AI-друг, который хранит воспоминания пользователя и помогает справиться со сложными жизненными ситуациями. Replika получает более 10 млн сообщений от сотен тысяч активных пользователей каждый день. Основная аудитория — США. TL;DR: собирают персональные данные с миллионов хомячков и отдают их ФБР, рекламным сетям и т.д.
Никакого ИИ у них нет. Они уже несколько раз меняли направление развития, радикально меняя их "ИИ". Лжецы, одним словом. Но нельзя отрицать, что им удалось навешать лапши на уши миллионам.
>>837279 >зачем По той же причине, по какой Реплика собирает личные данные с пользователей - всё в интересах США.
>>837346 Один клик в апдейте? Возможно ты не правильно структуру реализовал если нужно это сделать. Ну а из простого сделай булевую переменную вне апдейте и проверку на ней при нажатии.
>>837350 Не помогает Самое интересное что (Input.GetKeyDown(KeyCode.Mouse1) - в апдейте жрёт клики а Input.GetKeyDown(KeyCode.E) работает как надо Но мне не нужна клавиатура
>>837375 Нее я же говорю как только задействую мышь так вот случается такой проёб связь между слотами обрывается , но когда нажимаю на клаве, то всё происходит как надо, проблема в том что у меня всё заточено под мышь.
>>837460 Спасибо но тоже не помогло. Возможно ли это из-за того что яактивно использую ивенты мыши на нажатие, отпускание и перетягивание предметов мыши? НО я это всё делаю только левой кнопкой, правую я специально зарезервировал, под использование предметов, т.е. впринципе она не должна, как и левая кнопка отслеживать нажати, отпускание или должно?
Просто я ума не приложу почему один и тот же код работает когда я использую E и н не работает когда я клюкаю.
>>837469 >почему один и тот же код работает когда я использую E и н не работает когда я клюкаю. поведение в редакторе может отличаться от поведения в билде, проверь
>поведение в редакторе может отличаться от поведения в билде Двачую >>837473 . Сам еще давно, и случайно обнаружил данную хрень. В следствии чего достаточно раз встречал с такими особенностями.
>>837481 >>837460 >>837375 Спасибо за помощь, но как я и думал проблема оказалась в ивентах, пока я полностью не запретил пользоваться ивентами при нажатии клавиши мыши, ничего не работало. Сейчас работает, но вчерашний билд игы, который я создал просто убил меня. Даже если не брать в расчёт картинки в канвасе которые у меня по экрану расплылись я понятия не имею почему персонаж перестал подбирать предметы. Как будто лучи которые он пускает перестали работать. Возможно стоит отказаться от рейкастов и перейти на триггеры или колайдеры.
Что лучше с точки зрения производительности - делать 2д уровень (топ даун зельда-лайк) с помощью встроенного редактора тайлов или одной картинкой отрисовать и запихнуть в атлас? Картинка получается не менее чем 4к разрешения, а в тайловом редакторе постоянно какие-то артефакты и пропадания кусков изображения, что нещадно раскаляет стул подо мной, заставляя подстраиваться под этот инструмент говна. Не замечаю разницы в производительности на рабочем пк, однако взяв ноут 2008 года (2 ядра, 4 гига) заметил, что некоторые картинки высокого разрешения он отрисовать в принципе не способен. Склоняюсь к тому, что надо совмещать эти два способа или резать особо большие спрайты на части, если надо использовать картинки без тайлинга. Как вообще выстроить воркфлоу, чтобы потом это всё не лагало и работало на слабых машинах?
>>837943 >4к Если не хочешь проблем и лагов, всегда используй 512, или 1024. Выше не советую. Тут уже надо учиться как сжимать чтобы выглядело красиво, а также оптимизировать разрезая всё на куски.
Юнитощек, подскажи. Хочу реализовать двери-переходы. Можно сделать легким способом где два геймобжекта и геймобжект Enter с триггерколлайдером при OnTriggerEnter2D телепортит по координатам дочернего геймобжект Exit.
Задача: можно ли изъебнуться что бы оба объекта ,были универсальными входами-выходами? Все это на одном скрипте с захватом объектов через public GameObject. Можно ли определять какой именно из геймобжектов затриггерился игроком?
>>837992 вроде в колижене есть функции где можно это проверить типа if(collision.GetContact().otherCollider.gameObject == door1) { TeleportHero(door2); }
но мне кажется логичнее сделать просто скрипт двери и прикрепить его на саму дверь. В скрипте так же делаешь public DoorScript exitGo; куда прикрепляешь выход.
>>837992 Сделай паблик поле к примеру со стрингом, там на обьекте пропиши уникальное имя, по типу - Door1, и внутри скрипта свичем по этому стрингу делай разные штуки. Но это не оптимальный вариант, лучше по структуре другое.
Не с кем больше поделиться, поэтому пишу сюда. Я начал делать игру в начале лета, и вот сейчас я уже чувствую что она начинает становится интересной, такое охуенное ощущение пиздец просто. Чувствую блять что я потенциально что-то охуенное делаю.
>>838130 Так оно так и есть. В начале делаешь тупо механики и скелет, а во что играть и изучать нету, а если не бросаешь появляется контент. Если и дальше не бросишь, а будешь с переодичностью обновлять то вообще конфетку сделаешь.
Пацантрэксы, какой-то баг портит мне жизню. Короче если скопировать текст, в котором есть перенос строки, и вставить его в input field, то юнитя в месте переноса ставит какой-то невидимый символ, и если после него что-то написать, то происходит наслоение/распидарашивание! Как фиксить эту хуйню?
>>838130 >>838131 Потом, когда контент будет хотя бы на 30% окажется что твоя игра кишит багами. Базовые механики так четко работали, так просто было бегать по пустым плоским пространствам. Потом даже если пофиксишь баги и релизнешь игру в Стим, игроки все равно пердят в обзорах: неотзывчиваое управление, застреваю в текстурах, текст в менюшках скачет! Короче, эта эйфория только в начале, увы.
Аноны, есть вопрос по физике. Как вы вообще относитесь к плоским Mesh Collider без толщины? Скажем, у меня пол в многоэтажном здании из обычных двух полигонов с Mesh Collider. Это пиздец, да? В нормально состоянии пока не замечал чтобы персонаж через пол проваливался, но вот если обычный коллайдер персонажа отключается и включается ragdoll из мелких частей тела, то стабильные полеты под пол при опредленных условиях.
>>838324 >физике Физика в юнити это не просто, и разные моменты решаются сугубо индивидуально. Из универсальных советов это первое - Физика любит медленную скорость, второе - Отключать физику тогда когда она не нужна и третье это - иногда лучше продумать варианты не затрагивая ванильную физику.
>>838333 >Физика любит медленную скорость Но геймплей тогда будет скучным, картинка тоже так себе. У меня на уровне много объектов-ловушек которые двигаются в разные стороны на высокой скорости. Если скорость будет низкая, то игрок сможет их очень ненапряжно обходить стороной, а в случае столкновения будет не эффектый полет в небеса на десяток метров, а просто падение жопой на землю.
>Отключать физику тогда когда она не нужна Да таких случаев почти и нет, на мой взгляд. Без физики сложно обработать взаимодействие с окружающей геометрией. А уж если персонаж в воздухе находится и без гравитации, то это пиздец.
>иногда лучше продумать варианты не затрагивая ванильную физику Ну это для тех у кого совсем простые игры. Я 3д экшон пилю, без ванильной физики тут невозможно.
>>838349 >то стабильные полеты под пол при опредленных условиях.
Поставь у RigidBody Collision Detection на какой-нибудь из видов Continious, это как раз для быстродвижущихся объектов и создано. Затратный по ресурсам вариант, если у тебя сотни объектов с этой опцией будет летать то можешь по цпу просесть.
MeshCollider- кринж. В случае рэгдолла конечно его можно использовать, но для обычный геометрии лучше использовать обычные коллайдеры. Мешевые увеличивают время загрузки сцены и в целом больше ресурсов жрут.
>>838417 >Поставь у RigidBody Collision Detection на какой-нибудь из видов Continious Спасибо, анон, такие очевидные вещи уже сделал.
>MeshCollider- кринж. >Мешевые увеличивают время загрузки сцены и в целом больше ресурсов жрут. Там в прямом смысле ровно 2 полигона на 1 кусок пола, вряд ли сильно влияет на производительность. Проблема в том что толщины нет вообще. У меня такое ощущение, что в Юнити чем более толстый коллаидер, тем ниже шанс сквозных пролетов сквозь него.
Нужно сделать clamp камеры(вид от первого лица) чтобы нельзя было поворачивать больше конкретного угла Получаю 2д вектор дельты движения мыши далее см скрин. Без клампа все ок, с клампа начинается какая-то хуйня. Камера дергается - т.е. после превышения значения, камера не остается на месте, а дергается резко вниз. ЧТо я делаю не так? Как поправить?
>>838505 >Спасибо, анон, такие очевидные вещи уже сделал. Ну мне откуда знать было ) >Проблема в том что толщины нет вообще. Это проблема, не могу описать технологию 100%, но если примерно. Когда объект движется, то он проверяет наперед столкнется он с чем-то или нет, представь что перед объектом следует несколько его копий, которые проверяют заранее столкнется ли объект с каким-то препятствием. Но если объект с которым должно произойти столкновение слишком тонкий, то есть большой шанс что ни одна из "копий" объекта не засечет столкновения и получится сквозной пролет. Только толщину твоего пола увеличивать, другого способа не знаю.
>>838556 Может быть связано с конвертацией в углы Эйлера, у тебя текущая ориентация камеры читается из transform.eulerAngles.
>>838643 >>838649 Эх, придется переделывать коллайдеры. Ну или отказываться от рагдолла. Большинство багов у меня вылазят именно в процессе перехода персонажа из обычного состояния в рагдолл, ну или когда анимационный контроллер использует root motion и анимация сдвигает transform персонажа в недопустимое место. Контроллер персонажа я не сам писал, кстати, вот он: https://assetstore.unity.com/packages/tools/game-toolkits/invector-third-person-controller-shooter-template-84583 Несмотря на кучу положительных отзывов на деле забагованное говно получается и близко нет той стабильности которую ожидаешь от нормальной игры. Количество багов, которые приходилось чуть ли не неделями отлавливать, исчисляется десятками.
>>838669 Пчел все ассеты со сторая стоит юзать только как временное решение. Тебе как минимум надо их переписывать/переделывать под себя, попутно фикся и выбрасывая лишний мусор. Юзать их как конечное решение это грубая ошибка.
>>838683 Ты вообще юзал ассеты или по картинкам в ассетсторе решил что их надо перепиливать? Есть огромное количество нормальных ассетов которые не нуждаются в переделке. Также есть куча говна, но рыночек и конкуренция порешали, на каждое говно есть нормальная альтернатива.
>>838676 >>838682 Там не просто контроллер игрока. Есть еще готовая боевая система с хитбоксами и базовый АИ противников с поведением в боевых ситуациях. Не говоря уже про сам рагдолл который уже связан с контроллером персонажа и меканимом, что самому написать очень непросто. Там не меньше сотни классов по 1000+ строк кода в сумме наберется точно. Теперь представь сколько самому писать это придется, год что ли тратить на это? Просто вопрос в том нахуя они так много элементарных багов оставили? Видно же что люди головастые писали этот контроллер, не индусы за миску риса. Но если взять какую-нибудь рандомную инди-игрушку со Стима, то в ней намного меньше багов будет.
>>838728 >Есть еще готовая боевая система с хитбоксами и базовый АИ противников с поведением в боевых ситуациях. Челище блять, это дерьмо делается десятком скриптов, и даже не тысячами строк, дело пары дней. Господи, ну хотябы сами бы пробывали писать прежде чем высирать тредятину такую. Во всех ассетах куча не нужного говнокода, который можно сократить на 50-80% под свои нужды. То я смотрю такими темпами реально миф про то что в юнити только ассеты таскают станет правда.
>>838837 >Есть спавнер Пулл, Pool, Пуляша. Это решение всех проблем со спавном/деспавном по производительности. Лучше и проще не найти. В кратце, у тебя спавнится лист при инициализации/загрузки, а потом ты просто on/off объекты.
5 лет работы в веб-разработке на галере и я не знал ни одного паттерна. 9 месяцев соло-гейдева и я познакомился с фабрикой, стейт-машиной, стратегией, event bus, теперь вот пул.
>>838841 Двачую, не зря во многих играх вне зоны видимости, за текстурами находятся персонажи и предметы, которые уже заиничены и готовы просто мгновенно переместится к персонажу за спину. Начни с пула который просто выключает/включает объекты, а инит их делай заранее. В гугле масса мануалов, выбери тот которые более абстрактный, обобщенный (T). Если в будущем будешь просидать по производительности с привидением типов выделишь конкретику в отдельный пул и не будешь иметь проблем, то есть тебе нужен не статический пул.
>>838272 Кому интересно, скопировал этот невидимый символ в конце строки, если вставить в другое место то пишет #FFFFFF Сколько же багов, пиздец. Смотрю как-то прозрачность не совпадает, сделал в фотожопе небольшой тест как выглядят пятна на прозрачном фоне и на белом, в юнити все наоборот, в спрайт эдиторе одно, блять, в игре другое. Даже нашел вроде у типа такой же косяк https://stackoverflow.com/questions/72635833/unity-displaying-a-textures-alpha-channel-incorrectly Кажется раз это самый популярный движок, то должны махом такое фиксить, но всем похуй, заметят через пять лет
>>838974 Короче оказалось, что косяк с прозрачностью не баг юнити, а просто очередной изъеб с галочками, нужно color space с linear на gamma переключить, либо в фотожопе в настройке цветов включить наложение цветов RGB с гаммой 1,00 Но если в юнити переключить то куча ньюансов какие-то разные результаты, опять непонятная галиматья
>>839335 ты уже его задал при создании через new GameObject[CanSpawn], CanSpawn выступает в качестве размера ps если это твой пул объектов то массив здесь не подойдет, с массивом тебе придется пересоздавать массив каждый раз когда нужно будет еще врагов навтыкать используй либо лист либо queue
Here are some of the topics we cover in the guide:
SOLID principles Design patterns for game development Factory, singleton, command, state, and observer patterns Object pooling Model View Presenter (MVP)
Download the e-book to review the examples, weigh pros and cons, and decide which design pattern best suits your project.
>>839357 ачевсмысле ему там не нравится, ошибку в студию ты создал пустой массив геймобъектов размером с CanSpawn. это именно так и должно работать если твой монобех на котором этот старт сидит активный.
Скажите, ребята, а можно старому пердуну, наносеку в другой сфере, вкатиться Unity по приколу и потихоньку одному пилить свою 2D игру для андроид для удовольствия? Потихоньку разбираясь в нюансах и языке. Гигантский масштаб предстоящей работы осознаю.
>>839376 >вкатиться Unity по приколу и потихоньку одному пилить свою 2D игру для андроид для удовольствия? Потихоньку разбираясь в нюансах и языке. Гигантский масштаб предстоящей работы осознаю. Странно, если ты имеешь опыт в работе, осознаешь масштбаы, есть мотивация и желание, то что мешает это сделать? Нужно разрешение от господ из юнити треда? Если серьезно то у тебя идеальный вариант, пили и не парься. Разве что держи в уме что из-за не хватки опыта, может быть придётся переделывать на определённом этапе, когда поймёшь что можно сделать иначе.
>>839376 Если попозже хочешь вкатится в работу по этой специальности то нужен ментор, видел самоучек которые пишут отвратительный код в котором и сами спустя 15 минут не могут разобраться. Если для себя, то ментор не нужен, но эффективность конечно будет мизерная.
>>838272 CR и LF — это управляющие символы или байт -код , которые можно использовать для обозначения разрыва строки в текстовом файле.
CR = возврат каретки ( \r, 0x0Dв шестнадцатеричном формате, 13 в десятичном) — перемещает курсор в начало строки без перехода на следующую строку. LF = перевод строки ( \n, 0x0Aв шестнадцатеричном формате, 10 в десятичном) — перемещает курсор вниз на следующую строку, не возвращаясь к началу строки. CR, сразу за которым следует LF (CRLF, \r\n, или 0x0D0A), перемещает курсор вниз на следующую строку, а затем в начало строки.
Решил так inputField.text = inputField.text.Replace((char)13, (char) 0);
Пиздец я ебал в рот эти корутины, один неверный шаг и юнити виснет нахуй, еще один неверный и стаковерфлоу. Ёбанарот, это либо магия, либо надо IQ>9000 иметь чтобы с ними работать надо. Каждый раз как с ними работаю готов сдаться уже через пару минут нахуй.
>>839639 таких багов кстати никогда не ловил смотри чужие скрипы и копипасти оттуда шкуратины, но было такое, что эта мразь дублировалась и я не мог вкурить почему, потом попробовал через unitask и вроде бы почти исправилось, стало максимум 2 дубля
Подскажите, есть ли технология, чтобы при наведении камеры на картинку - начинало проигрываться видео по этой картинке со звуком? я пока только анимации могу найти
>>839721 Это база, но еще надо логику строить как можно проще, чтобы не дай бог в бесконечный цикл не уйти.
>>839726 Моя проблема была в том что корутина запускалась по StartCouroutine, но при помощи StopCoroutine не останаваливалась, в итоге я запускал корутину по тыщу раз радуясь мемориликам. Как я это пофиксил? Я засунул корутину в переменную и отправлял её в StopCoroutine вместо названия самой корутины и ВНЕЗАПНО всё заработало как надо.
>>839976 Кстати вот это тот самый случай когда синглтон не помешал бы, только сейчас чёт догадался. Если я не могу запустить одну корутину больше одного раза, то и меморилик невозможен.
>>839987 Нет, не нужен. мне нужно из точки спавна добраться до базы игрока. )) У меня есть рабочий код, что я ставлю пустые объекты с навигационными метками каждая из которых передает информацию о следующей, но тут проблема в том, что путь типа извилистый и чтобы это смотрелось не кринжово, мне надо их ставить достаточно много. И как бы вот хз карочи.
>>839990 если тебе не нужен поиск пути, а просто из А в Б более-менее некринжово, то посмотри в сторону сплайнов кривая катмулл-рома часто в этом используется и проложит через твои навигационные объекты весьма приятно выглядящую кривую а ее собрат TCB/кочанек-бартельса еще больше контроля того как эта кривая выглядеть даст
>>839976 >запускалась по StartCouroutine, но при помощи StopCoroutine было такое, остановить можно через StopAllCoroutines, но это если у тебя в скрипте нет других шкур
>>839976 > Я засунул корутину в переменную и отправлял её в StopCoroutine вместо названия самой корутины и ВНЕЗАПНО всё заработало как надо. Ну так сам виноват, что шарп и юнити мало изучил. Но зато теперь знаешь.
>>840088 можешь перед запуском проверять запущена она уже или нет типа такого: Coroutine myCoroutine; if(myCoroutine == null) StartCoroutine(MyCoroutine); ну и останавливать через нее: StopCoroutine(myCoroutine);
Привет, самое токсичное коммьюнити среди игровых движков. Просветите по одному вопросу.
Давеча сдал пустые бутылки, от чего хватило на обновление пекарни. В космос не летает, но теперь хоть тянет юнити (и даже визул студию). Так вот. Есть ли резон вкатываться в юньку для мелкого заработка? Сам дохуя программист, не на C++++ конечно, но освоить за два вечера - неделю не составит проблем. Существует ли тут торговля мелкими заказами/скриптами?
>>840196 Работа на дядю, это приходить в офис и выслушивать бредни конченого тимлида, потому что он может поспособствовать урезанию твоей зарплаты. Искать заказы, это работа на себя. Работая на дядю, ты не выбираешь работу, ты не можешь от нее отказаться, не можешь отменить в процессе.
>>840224 >Работая на дядю, ты не выбираешь работу, ты не можешь от нее отказаться, не можешь отменить в процессе. Скорей соглашусь с тем антоном. Разница сильно преувиличена, и на РАБотке можно скидывать на других что-то если не потянул, и договариваться это делаешь это не делаешь, в крупных местах вообще бывает вместо увольнения в другой отдел переводишься. А от заказа тоже иногда нельзя отказаться в процессе, из за репутации или неустойки. Другое дело свое предпринимательство.
>>840224 >ты не выбираешь работу, ты не можешь от нее отказаться, не можешь отменить в процессе Не сомневался что игроделу из гд важна возможность дропнуть разработку своей игры спустя два дня после начала этой разработки
>>840313 Пуппет откуда берётся? Вангую как раз в том месте, где он берётся, тебе выдают ссылку на один и тот же экземпляр (а потом этот экземпляр батчится в виде нескольких визуальных инстансов на экране).
>>840315 То есть, это не префаб? Это ты просто скопипастил несколько объектов? Ну, в таких случаях, движки их как раз инстанцируют, для экономии ресурсов, как я обеснил выше. Все эти пуппеты на пикче - это всё клоны одного объекта, изначального. Меняешь один - меняются все.
>>840320 Описываемая тобой проблема похожа на инстансинг (все копии объекта являются одним экземпляром). И точно это определить можно только в строчке, где у тебя инициализируется переменная пуппет.
>>840324 > чому при таком методе инициализации проблемы пояляются только с добавлением строки Puppet.SetActive(false); ? Проблема стопроцентно в твоейм коде. Что делает корутина? Не получается ли так, что когда она заканчивает работу, выполняется он-екзит?
>>840324 В общем, внимательно просматривай код строчка за строчкой. Принтов туда напихай, например. Еще есть рекомендация, если немного написал, всё убери в сторону и перепиши заново, вот прям с нуля, не подглядывая и не копипастя. >>840326 Проперти пач. Не указывает ли он на один объект?
сделайте игру как ну погоди только вместо волка жопич собирает не яйца а кал иными словами ворует прямо из унитазов свежевысранное дерьмо сегодня вечером зайду за готовым продуктом
>>840224 >Работа на дядю >работа на себя Не всё так просто.
1. Ты можешь работать послушным рабом в огромной геймдев корпорации зла, которая делает очередную АААА по надоевшей всем франшизе, не имея никакого контроля за тем, каким будет проект. Сказали сделать говно - делаешь говно, будешь копротивляться - на твоё место большая очередь. А ты думал, почему в ААА так много говнокода, глупых багов и неудачных решений? Потому что решают люди сверху, а рабы делают что прикажут, пытаясь уложиться в установленные сверху сроки. Получил зряплату - свободен, никакой тебе доли с игры. С другой стороны, СТАБИЛЬНОСТЬ, т.е. даже когда галера начнёт тонуть и проект не взлетит или будет отменён, ты всё ещё получаешь обещанную зряплату. Плюс всякие там оплаченные отпуска, страховки, завтраки с обедами, и что там ещё могут наобещать в крупной компании. Рабство не отменили, его просто сделали очень приятным и даже выгодным...
2. Можешь работать в мелкой "инди"-компании, которая работает над своим проектом. Есть вероятность, что тебя услышат, если ты реально полезные вещи говоришь, т.к. в компании 3.5 человека и ты один из самых толковых в своей области знаний. Можешь получать зряплату и/или быть в доле с прибыли проекта. Но, скорее всего, вы делаете унылые клоны клонов клонов на мобилки, а не игры. Да и шансы потонуть намного выше, зряплата меньше и, возможно, нестабильней, но всё же ты работаешь с конкретными людьми, а не с рандомным заказчиком, так что можешь наладить с ними хорошие отношения. Это уже не тот далёкий дядя где-то наверху корпоративной пирамиды, а Петрович, которого ты лично знаешь и с которым даже проводишь время вместе в баре. Но ты ему всё же подчиняешься.
3. Можешь предлагать свои геймдев услуги через биржи фриланса - кому-то скриптик написал, кому-то механику реализовал, а кому-то целую игру под ключ на предоставленных ассетах. Оплата вообще никак не гарантирована, тебя легко могут кинуть, а новые заказы могут не поступать неделями, особенно если требуешь предоплату будучи нонеймом без отзывов на площадке. Контроля за продуктом нет - ты обязан выполнить условия договора, иначе насрут в отзывах или вообще забанят. Фантазии про "ты выбираешь, что тебе делать" оставь при себе - будешь делать то, что удастся урвать у сотни других таких же умников, выстроившихся в очереди к 3.5 доступным и адекватным заказам на бирже. Естественно, платят тебе только за работу, никакой "доли от прибыли". Ещё и демпинговать будешь, чтобы урвать себе хоть какой-то заказик, да только возьмут, конечно, не тебя. Есть шанс найти постоянного клиента, но с ним ты перейдёшь в категорию 2 или 1.
4. Можно делать игру самостоятельно или организовать группу разработчиков вокруг себя. Тут получается 100% контроль над продуктом, но никакой зряплаты самому себе - только другим, а риски максимальны: ты вкладываешь свой личный капитал и можешь ничего не получить, если игра не взлетит. Теоретически ситуацию может исправить спонсорство будущих игроков через известные площадки, но таких как ты умников тысячи - собрать платёжеспособное сообщество вокруг очередной несуществующей игры сложно, даже если твои идеи гениальны и есть куча наработок, а не только пустой фантик с обещаниями. Проще всего будет, если у тебя есть какой-то пассивный доход, на который ты можешь жить и откладывать часть на игру, не рассчитывая вернуть потраченные деньги. Но зато ты действительно работаешь НА СЕБЯ - это твой, личный проект, а не какого-то дяди, который платит тебе или обещает тебе долю. Ты можешь выложить этот проект бесплатно или в опенсурс, если захочешь, и жить только на донаты с патреона, не пытаясь подлизывать игрокам и не используя типичных уловок схемы "купи игру прежде чем поиграть" (все эти фейковые скриншоты, синематик трейлеры, графон и сюжет без реального геймплея и т.д., лишь бы ты нажал кнопку "купить"). Т.е. ты как свободный художник, выставляющий в картинной галерее свои уже выполненные работы в надежде, что они кого-нибудь заинтересуют и ты не помрёшь с голоду, рисуя очередную никому не нужную картину. Вот это - настоящий инди-геймдев, а не работа на дядю.
TL;DR: чем ближе ты к свободе от всяких дядь, тем выше риски и ниже стабильность, а работа на фрилансе - это та же работа на дядю, только хуже, а дяди сменяют друг друга как клиенты дешёвой шлюхи. Проститутки - это фрилансеры, задумайся об этом. Может, будет выгоднее работать проституткой, чем ловить удачу на геймдев фрилансе? Наверняка есть извращенцы, предпочитающие junior unity developer. Разработаешь себе все необходимые интерфейсы и будешь получать больше, чем любой разработчик игр. А ещё проституток любят, а разработчиков игр ругают и даже ненавидят за их игры...
У МЕНЯ ДВА КЛАССА, ХОЧУ ТРЕТИЙ КОТОРЫЙ ИМЕЕТ МЕТОДЫ ИЗ НИХ @ ТАААК БЛЯ ПАТТЕРН ДЕКОРАТОР, ТУТ ИНТЕРФЕЙС, А ЗДЕСЬ КОРОЧЕ, ПАДАЖЖИ ЁБАНА @ ДА НУ В ПИЗДУ ПРОСТО ОБА СКРИПТА БУДУ НАВЕШИВАТЬ, КОМПОЗИЦИЯ ЁБАНА
>>840463 > ПАТТЕРН ДЕКОРАТОР Не. Тебе нужен паттерн МВЦ плюс паттерн АДАПТЕР. И тогда ты сможешь нахуярить модель любой сложности, с любой иерархией классов, а затем эту модель вывести через юнити, да, навешивая адаптеры модели на монобехи.
мимо Сакутин Роман, директор, учитель, автор текстов и постов
Если при клике на кнопке выскакивает окошко с другой кнопкой на том месте где был клик, какого хуя юнити обрабатывает клик и по этой кнопке? из-за этой залупы отдельный велосипед что-ли писать какой-то?
>>840466 >паттерн МВЦ а я вот слышал бугурт от какого-то сеньора из юнитехов что в юнити МВЦ и прочие МВ* пытаются тащить перекаты из кровавых энтерпрайзов и что им за это надо бить лица
>>840480 Хуйню несут, даннинг-крюгеровскую. Геймдев сложнее тырпрайза. Все наработки тырпрайза применимы в геймдеве, потому что там ещё сложнее. Написать бесшовный открытый мир, например, сложнее чем банальный КРУД.
>>840480 Всё правильно ты слышал. В играх View это рендерер, он уже реализован на стороне движка. А с Юнити вообще многие паттерны идут по пизде из-за невозможности самому инстанциировать MonoBehaviour в нужном месте и что-то сделать в конструкторе.
>>840540 > невозможности самому инстанциировать MonoBehaviour А его и не надо инстанцировать. Ты его прикрепи к сцене а в нём инстанцируй свой ПОК-ПОК-объект с моделью.
>>840529 >Хуйню несут, даннинг-крюгеровскую Senior Software Engineer at Unity Technologies хуйню даннинг-крюгеровскую несет? ну хуй знает братан.. >>840540 жаль что он не объяснил как правильно в юнитипарадигме работать. вот у меня такой недавно затык случился: связать проперти на с# объекте(не от моноб) с гуем в обе стороны. а я хз как. в итоге сделал свой велосипедный компонент с INotify
Блять а чё вебгл билд играется сильно по-другому нежели когда я в эдиторе его запускаю, всё какое-то пиздец быстрое я ебал? Почему когда я перешёл на виндовский билд, то игра стала по-другому ощущаться даже в эдиторе? Разница едва уловимая, но она есть, и она меня раздражает.
>>840610 >>840666 Честно говоря, юнити вообще не пользуюсь, но я читал, что они разрабатывают новое ядро движка специально для веба и мобилок. Когда я последний раз проверял, он был в ранней альфа-стадии и множество фич не работало. Возможно, они уже внедрили его в основную ветку движка и неявным образом переключают с основного движка на этот второстепенный? Т.е. редактор один, а "плеера" у юнити теперь два, для разных целевых платформ.
>всё какое-то пиздец быстрое Убедись, что правильно используешь дельту времени. В вебгл частота кадров может быть совсем не такой, какая у тебя в нативном билде. В юнити же есть фича, чтобы тестировать игру на разных фиксированных частотах?
Почаны, а где брать ассеты для игр? Нужна моделька шипов, но не обычных, а мультяшных. На самых популярных сайтах хуй да нихуя бесплатного, а то что платно я так понимаю теперь не купишь из-за сложившейся ситуации
У меня сгорело очко от юнити когда я сделал билд своей игры, отправил трём друзьям, у одного не запустилось, у двух других игра играется ВООБЩЕ по-другому нежеле у меня на компе.
Это я криворукий и что-то не так сделал или это прикол у юнити такой?
>>840791 Конечно, ты криворукий макак, на юнити тысячи игорей в год выходит, у всех все запускается, но только ты прикоснулся к инструменту и все сломал нахой. Изучай, может у них герцовка другая
>>840788 >сидит в юнититреде Во-первых, у меня были попытки освоить юнити. Несколько раз в разные года, разные версии. Не то, чтобы не осилил, но мне не понравилось. Во-вторых, тут у вас иногда интересные вещи постят, которые не связаны с конкретным движком. В-третьих, я не "сижу", а изредка захожу, обычно когда вижу с нулевой интересный пост. Я же не призываю переходить на другой движок, не развожу движкосрач. У юнити есть свои преимущества...
>>840791 >у двух других игра играется ВООБЩЕ по-другому нежеле у меня на компе. Всё зависит от того, что ты подразумеваешь под этим самым "вообще". Скорость? Графика? Физика? UI?
>>840792 >на юнити тысячи игорей в год выходит, у всех все запускается, но только ты прикоснулся к инструменту и все сломал На юнити тысячи игр в год выходят, но ты в них не играешь на этапе раннего доступа, поэтому о проблемах не слышал и считаешь, что всё у всех прекрасно. Юнити стала мемом не просто так, знаешь ли.
Если б с юнити всё было настолько прекрасно, то: - юнити не нужен был бы пиар, вот совсем никакой; - альтернативы юнити никто бы не использовал. Но это, очевидно, не так - у юнити есть проблемы, глупо отрицать их наличие. Только фанатик будет отрицать наличие проблем.
>>840803 >Юнити стала мемом не просто так, знаешь ли. юнити стала мемом скорее от самого тупого хода юнитехов который вообще можно было придумать. неубираемая заставка персональной версии. у людей появилась и закрепилась четкая ассоциация "заставка made with unity" = "говнище". при этом есть реально крутые произведения, но если ты не будешь копаться, то даже не поймешь что это юнити.
>>840807 >тупого хода >неубираемая заставка Да практически любой движок во все времена старался вывести своё лого, лого разработчиков и т.д. Это вовсе не тупой ход, а классика геймдева.
Вот если бы ты делал велосипедный движок, тебе бы самому не хотелось гордо показать лого движка и надпись "сделано на движке АнонЭнжин"? Наверняка хотелось бы, иначе зачем делать движок...
>если ты не будешь копаться, то даже не поймешь что это юнити Достаточно открыть папку с игрой, все игры на Unity имеют крайне характерный набор файлов и папок. Да, о нём нужно знать, чтобы узнать, но я к тому, что скрытие логотипа на загрузке не поможет скрыть движок.
Куда сложнее узнать движки, которые не имеют строгой организации файлов, т.е. на которых все игры организованы по-разному - в таких случаях нужно смотреть внутренности исполняемых файлов на наличие каких-то маркеров (имена функций, модулей и прочее подобное). Но такие движки редко подходят полным новичкам.
>>840807 >юнити стала мемом Потому, что юнити слишком хороша. Не будь она настолько проста - легион дебилов не смог бы пить кривые подобия игр, не вынимая рук из жопы. Это основополагающая проблема движка, всё остальное просто надумано. Ну и реверс за два клика, но это не так уж и важно.
>>840803 >Всё зависит от того, что ты подразумеваешь под этим самым "вообще". Скорость? Графика? Физика? UI? Скорость, у них сильно быстрее чем у меня. В годот-треде подсказали куда копать. Я еще нагуглил что мне возможно имеет смысл поиграться с разными видами апдейта. Короче, работаем.
>>840807 В результате этого "тупого" хода у меня связалась ассоциация что даже конченный дебил может работать на юнити, я стал копать какие еще игры сделали на юнити и увидел что пряморукие сделали вполне себе годно и у меня сложилось впечатление что это дружелюбный движок с низким порогом вхождения, который может давать охуенный результат если постараться. В итоге работаю на нём.
посоветуйте посоны от сделал вот такой гуй блокировщик т.к. у меня есть несколько трансформ под которыми будут динамически спавниться кнопки и прочие Selectable, то надо их все собрать. Block() Unblock() повешу на OnClick кнопки. насколько я стреляю себе в ногу подобным линком в GetSelectables()? насколько часто вы вообще линк применяете? а может вообще имеет смысл сделать иначе? что-то типа свободно висящей трансформы со спрайтом(в канвас есть слои?), а на клике растягивать ее на все окно. спрайт будет перекрывать все под собой(наверное) и будет тот же эффект
>>840891 Не пойму что ты пытаешься сделать? Тебе надо что бы игрок не мог нажимать на кнопки? Так делай у них в компоненте кнопки интеректабле=фалсе. Если же тебе не надо засчитывать нажатия, делай внутри проверку на включенный флан. Ну а если тебе по какойто причине надо их наслаивать друг на друга и регистрировать только одну, то у всех остальных делай компонент рэйкасттаргет=фалсе, и врубай как понадобится. Не не понятно что ты там навелосипедил, если скорее всего это решается простыми действиями.
>>840896 >Так делай у них в компоненте кнопки интеректабле=фалсе. чел я это и делаю ало ты даже не читал что я писал что ли? у меня они динамически создаются
>>840891 По идее если ты просто рейкастблок сделаешь на родительский элемент, то кликать на детские компоненты Ui не выйдет, так что можешь сделать так вместо того чтобы вытягивать детские компоненты селектом и потом циклом по ним проходится.
Хочу вытащить из чужой игры текстуры, перешакалить их и запаковать обратно. Как это можно сделать? Нашёл AssetBundleExtractor, AssetStudio, но они могут только экспортировать.
>>840907 Чтобы расход памяти снизить. Я нашёл как в AssetBundleExtractor экспортировать и импортировать Texture2D в png, но это дико медленно происходит, чтобы вытащить 500 картинок, пережать, вставить обратно в бандл, сжать его через lz4, уходит 30 минут, а таких бандов 25 штук. Неужели нет способа сразу в бандле сжимать картинки.
Я не понимаю как в юнити работает скейл тайм, делаю симуляцию с более 500та навиагентами одновременно и вот когда разгоняю на скорость х3, а позже и х100 у меня просто агенты стоят ничего не делаю, хотя должны искать путь и идти к цели через destination. Вообще не понимаю, где этот и как destination реализуется. Просто мне казалось, что если компьютер не может что-то обработать, то будут резаться кадры, а не просто игнорироваться куски кода.
>>841119 >>841120 Ты хотябы пользовался последним ассетом нет обжектов? Это небо и земля в сравнение с тем калом что было. Ты буквально за вечер можешь сделать архитектуру игрок-игрок, или сервер-игроки. То что у них на гите это рак энтерпрайза, и то как обычно анону делать не следует, но полезно для чека при разработке.
Как из дефолтных шейдеров выжать максимум? Неужели для нормального графена нужно обязательно качать приблуды с нодами или самому шейдеры писать?? Версия Юнити - 2020
Допустим, простой пример - мне нужно назначить в материале карту АО, для которой развёртка во втором канале (UV01) - ну и как это сделать стандартными средствами?
>>841182 Можешь подробнее расписать. Хотя наверное нужно для начала понять, что делает именно Time.timeScale и за счет чего она ускоряет частоту апдейтов и прочее.
>>841208 Ускорят мир игры через глобальный скейл это ужасная идея. Если нужно что-то ускорить, просто делай это в скрипте объекта. Там скорость или что надо увеличивай.
>>841240 >>841254 Пытался вкатиться в мультиплеер года два назад, перепробывал все бесплатные решения, и забил. Базу сделать просто было, но как только происходило усложнение геймплея и синхронизация сосал член. Сейчас же ради интереса вкатился на релизные нет обджекты, и буквально за 2 дня родил рабочую версию того что не удавалась неделями тогда. Тупо есть инфа, примеры, и все работает и не глючит.
>>840891 >насколько я стреляю себе в ногу подобным линком в GetSelectables()?
Лучше больше контроля, кешировать кнопки которые ты заблокировал и уже их разблокировать и удалять из списка, не будешь постоянно геткомпонент при анблоке использовать, использование HashSet ускорит при большом кол-ве элементов.
Так, разгадайте загадку. Есть три объекта, на всех них одинаковый скрипт висит. Два из них это экземпляры одного и того же префаба. На втором скрине скрипт, который я активирую в инспекторе без запуска игры. Он просто вносит значения стринг в поле. В первом объекте, не префабе текст после запуска игры сохраняется. Во втором объекте экземпляре префаба текст исчезает. На третьем тоже экземпляре я ввожу тот же самый текст через инспектор и он после запуска не пропадает. Вопрос почему на втором объекте он пропадает? Причем таким же способом вводил int и float они сохраняются. Пробовал разные версии юники везде так же.
>>841314 Ну всмысле хуй, я весь форум юнити по ключевым словам просмотрел, и погуглил. Но вроде казалось бы очень рядовая проблема, но ее решение я не нашел нигде.
Пиздец нахуй. я на этой доске относительно давно уже пержу, но я еще не видел ни одного вопрошающего, кроме меня конечно, который нормально отфоткает код и ошибку и нормально поставит вопрос.
>>841308 Нихуя не понятно карочи, но возможно, что проблема в публичном модификаторе доступа к массиву. Типа юнити его автоматом создает, чтобы показать в редакторе. Там как-то так работает. Попробуй заприватить его переменную. Или не присваивай ей значение в старте.
>>841313 когда ты меняешь префаб через скрипты, то меняются данные самого префаба когда ты изменяешь в редакторе, то меняются данные экземпляра этого префаба на сцене
наверное из-за этого что-то менять поля экземпляра префаба надо через API редактора
>>841339 Хорошо, ты сказал, что через скрипт я меняю основной префаб. Тогда вопрос, почему я тогда когда наживаю на префаб не вижу в поле значение, которое я <<якобы>> изменил.
>>841356 короче, я потестировал. у префаба сбрасывается все поля измененные через прямое присвоение в скрипте, после выхода из play mode, потому что юнити не может определить эти изменения, и после выхода из режима восстанавливает состояние префаба до оригинального. для обычных объектов на сцене не сбрасывается если тыкнуть в поле префаба, то изменения подхватятся
как я и писал, нужно изменять поля префаба через специальное API
>>841308 Поле Spawned в компоненте покажи, у тебя поди 0 в редакторе стоит. То что ты в скрипте Spawned = 3 поставил это дефолтное значение которое перезаписывается значением из редактора.
Как дебажить игры для разных платформ? Столкнулся с проблемой что игра работает для друзей с нвидиа и интел, но друган с амд почему-то ловит краши, причём что в ПК билде, что в вебгл билде.
>>841450 А версия юньки у тебя какая? Лонг тайм саппорт или бета какая-нибудь? Выборку амудешников увеличь за счёт расшара билда в группах в вкшечке для игроделов или тут среди анонасов. Вообще надо на доске создать тред для билдов и отзывов, взаимный тестинг игор
>Выборку амудешников увеличь за счёт расшара билда в группах в вкшечке для игроделов или тут среди анонасов. Вообще надо на доске создать тред для билдов и отзывов, взаимный тестинг игор Ну ок, найду еще X амдшников, у которых не работает и чё делать с этим?
>>841549 Для такого лучше юзать корутину, там можно задержки выставлять, безопаснее и управлять можешь получая инстанс корутины чтобы её в любой момент убить. Если у тебя много объектов используй пул, дестрой дорогой.
>>841568 Двачую, еще возможно не помешает небольшая стейт-машина, чтобы определять когда можно спавнить и не плодить вложенные условные операторы аки яндередев.
>>841615 Хз где у тебя не требуются они, может во влажных фантазиях а не настоящей разработки игр, где у тебя в скриптах по 1к строк и сотня функций, ну ок.
>>841619 >>841631 Вкатуны, спок. Грамотная семантика когда по названию фукнции или переменной сразу понятно что происходит, декаплинг, SRP и прочие SOLID принципы и код реально можно читать как книжку без всяких комментариев.
>>841716 Погугли decoupling, суть в том чтобы максимально отвязывать классы друг от дружки, чтобы при изменении одного класса другой класс никак не задевало, это и на читабельность кода влияет, когда можешь спокойно читать код не прыгая между классами чтобы понять что происходит.
Блять, оказывается в новой юнити инпут системе уже заданы события на которые можно подписываться, типа игрок разжал кнопку мыши, и не надо делать проверку каждый фрейм. Этож столько вещей упрощает
>>841765 Берёшь готовый контроллер от юников, чекаешь как работают и обрабатываtтся там импут от игрока. Браво вы полностью познали новый импут за час.
>>841765 Упрощает? Ну если в шутанчике можно отвязать прыжок от цикла обновления, то в сложных играх так не получится (или например если надо проверить ввод внутри коруитны)
Пацантре, как сделать в товер дефенсе выстрелы башен. Пока у меня заглушка в виде - к башне привязана сфера имитирующая снаряд. Собственно при выстреле она летит до цели, при колизии срабатывает VFX привязанный к сфере. Допустим у меня башня стреляет стрелами. Есть может техники какие прикольные там туда сюда. Может прям через VFX, там же есть система колизий тоже какая-то. Карочи подкиньте может идей каких-нибудь?
>>841792 >надо проверить ввод внутри коруитны Зачем это делать прямо внутри? Тупо подписываешься на эвент, при срабатывании меняешь булево значение, которое проверяет корутина, и всё. И это самое первое что в башку пришло. Но так или иначе имхо лучше избегать в корутинах делать проверку инпутов в принципе, да и вообще делать что-то кроме одного действия, ради которого корутина и заводилась.
>>841832 >Тупо подписываешься на эвент, при срабатывании меняешь булево значение, которое проверяет корутина Вот бы была функция, которая бы делала этого автоматически без необходимости заводить переменную. Ах да, она называется Input.GetKey()
>лучше избегать в корутинах делать проверку инпутов Например машина состояний для персонажа. В разных состояниях сделаны разные действия на одну кнопку
Короче, я имею ввиду что на практике просто проверить состояние нажатия кнопки где-то глубоко внутри стека вызовов апдейта на практике намного проще, чем лепить сложную абстракцию ради абстракции как сделали в новом инпуте
>>841838 >Ах да, она называется Input.GetKey() Эх щас бы каждый фрейм функцию дёргать когда можно только когда надо по подписке менять значение. Вас опыт яндередева ничему не научил?
>>841845 Игра обновляется внутри вызываемых движком функций обновления, а события ввода случаются при нажатии кнопок. Возникает проблема как это синхронизировать между собой. Не просто так во всех движках сохраняется состояние ввода, которое можно потом проверить в апдейте.
>>841845 Ничего себе ты умный. Может для рогалика будет удобно ловить эвент нажатия кнопки чтоб перепрыгнуть персонажем с клеточки на клеточку, но в риалтайм игре без апдейта все равно не обойтись знаешь ли.
>>841894 >без апдейта все равно не обойтись знаешь ли но как бы хотелось.... унитеки - собаки на сене. на примере трансформ. ХОЛОП-ИГРОДЕЛЕЦ, НА КОЖАНОЙ ДУДЕ ИГРАТЬ УМЕЛЕЦ: -господин движок, проверь пожалуйста в этой функции апдейта каждый фрейм не пришли ли изменения в мои трансформы и если да, то посчитай вот это и это -господин движок, проверь пожалуйста в этой функции апдейта ... -господин движок, проверь пожалуйста в этой функции апдейта ... КРЕСТОХТОННЫМ БАСОМ СНИЗУ: -э слыш, если тебя поменяли хрюкни, а мы подхватим и решим стоит ли тебя пересчитывать. холопу сверху hasChanged поменяй.
>>841860 >>841894 Воу-воу, палехче, я не предлагаю избавляться от апдейта, я всего лишь предлагаю разгрузить его избавившись от вызовов функций инпута каждый фрейм.
>>841845 На практике это мало чем поможет, потому что тебе надо еще и знать значения нажатости других кнопок. В результате ты на события начнешь заводить флаги isLeftPressed = true И вернешься к полному дублированию GetKey
>>841611 >>841601 >>841581 Форматирование в разнобой, около = почти везде пробелы рандомно стоят, private гдето есть где то нет
Не используется вар
Нет RequireComponent для NavigationPoint
Сразу понятно, что с зонами ответственности чето не то - спавнер еще и за уничтожение отвечает(он же спавнер???), есть зависимость от controller, хотя спавнеру должно быть пох на него
Ну и понятно, что controller походу там божественный класс, который отвечает за все.
Непонятно зачем nextWaveCountdown, и почему тебе его надо именно в апдейте обновлять
Но тем не менее, ты молодец если ты новичок, видно, что ты тем не менее все это не просто так делал, а вполне сделал че хотел, особо не заморачивайся с тем что я написал
>>841549 > Как отвязать наспавненные объекты от спавнера ? Ну через transform.parent поменять
>>841944 Ты расписал конечно по красоте, но ответь на один вопрос. Ты игры делал когда нибудь? В соло? Вопрос риторический конечно же, те кто делали и так всё понимают.
>>841947 Ну тогда должен понимать что в реальности происходит не твои маняфантазии, а реальная разработка. Без обид, но ты походишь на того пчелика который ходит срёт по тредам говоря про солид методы и т.д. Т.е безигорного шиза.
>>841948 Так наоборот же, как раз в реальности разработка загибается если забить на всё это, код становится неподдерживаемым, баги вылезают из самых неожиданных мест, любую новую фичу добавить сложно, новые разработчики на проекте не понимают че происходит.
А если и не загибается окончательно, то только потому, что разрабы молодцы и героически пробиваются через говнокод не теряя рассудок, впрочем делать дело они будут медленно.
>>841944 >Ну через transform.parent поменять не лучше ли тогда SetParent(parent, false) тогда можно будет определить точку спавна/точку пула и оно сразу туда прыгать будет без лишних манипуляций с позишеном а сам спавнер где угодно можно будет держать
>>841950 К сожалению как вижу игры ты никогда не заканчивал, а может даже и не делал. Возможно ты работаешь веб-макакой думая что игры делаются как и сайты, но огорчу ты не прав полностью.
Я повторю что ты пишешь совершенно верные мысли в плане логики, но в реальности когда ты соло индюк это можно смело выбрасывать на помойку, потому что делать игру годами у тебя нету времени. Жизнь закончится быстрее чем с таким подходом игру сделашеь.
>>841969 Я мимопроходил, пилю первую игру, говнокожу пиздец, откладываю день великого рефакторинга на потом, пока не сделаю базовый геймплей. Я так понимаю этот день возможно никогда и не наступит?
>>841969 база помню смотрел код какой-то распиздато продавшейся инди игрулины, а там ебать колотить богокласс гейм менеджер соло индюкам главное нахуячить и продать, а потом можно и повыебываться с солидами етими и прочей нужной темой...
>>841974 >Художник уныло таскает текстурки по 100+ часов чтобы морда норм смотрелась Да нет такого, я подписан на канал зебры, некоторые за трансу в несколько часов могут хайпольку чуть ли не под продакшн заделать
>>841969 Спокойствие, всё это и придуманы для экономии времени, потому что в противном случае огромное количество времени тратится на постоянное переписывание, поиск багов и выдумывание костылей для новых фич.
> Возможно ты работаешь веб-макакой думая что игры делаются как и сайты Я работаю геем-девелопером
>>841944 >Сразу понятно, что с зонами ответственности чето не то - спавнер еще и за уничтожение отвечает(он же спавнер???), есть зависимость от controller, хотя спавнеру должно быть пох на него
Ну я подразумевал, что это фабрика.
>Ну и понятно, что controller походу там божественный класс, который отвечает за все.
ровно 3 функции. запуск игровой доски. подсчет золота и жизней и содержание соотвествующих эвентов. Возвращаясь к предыдущему и как типа чтоб по красоте золото считать игрока? Делегат чтоли передавать?
>Непонятно зачем nextWaveCountdown, и почему тебе его надо именно в апдейте обновлять это у меня был задел на тот момент, если игрок запустит новую волну вручную, то его премировать золотом в размере оставшегося времени. Т.е. действительно это просто счетчик, который не делает ничего сейчас. И у меня такая стема спавна, что вероятно я вообще его и функцию ручного запуска волны удалю.
Делаю синглтон с функциями вида bool GetJump() => Input.GetKeyDown(KeyCode.Space)
на релизе меняю на чтение кнопок из конфига. Все. Никакого пердолинга с настройкой кнопок в редакторе, с маразматичным API считывания этих действий и т.д.
>>841984 В таком простом случае да, преимуществ не видно, но там можно врубать и вырубать контроль, например при входе в меню вырубать контроль персонажа, настраивать на разные виды инпута, а в классе управления персонажем получать сразу тупо вектор, и куча разных приколюх для корнеркейсов.
>>842008 Конченная презентация. Половину рассказывал про генерацию карты без практических подробностей. Вторая половина это пук-среньк мы использовали джобы для LOD'ов. Только время потратил.
Пасаны, как сделать список объектов, чтобы был доступен и в редакторе и в игре? Мне похуй, хоть класс-бог, хоть я не знаю что.
Я создаю список модулей, из которых в игре будет собираться перс. Но пресеты некоторых типовых моделей персов надо собирать в эдиторе. Раньше было просто, поскольку пресет это тупо список айди модулей, а связность с функционалом устанавливается уже в рантайме, когда персы инициализуются. Но сейчас характеристик у модулей становится много и я захотел чтобы в эдиторе было видно, какие суммарные характеристики получатся у итогового перса, а для этого модифицировал эдитор чтобы он плюсовал все характеристики от всех модулей и выводил списочком. Но менеджер, в котором хранятся данные модулей, до рантайма не существует, на него не сошлешься в эдиторе. Оттака хуйня. Дайте советов мудрых. Пока в голову приходит пилить внутриигровой редактор персов и на нем напиливать ассеты дальше, но нет ли блядь пути попроще чем пилить отдельную игру для создания игры?
Бля пиздец вы видели уеч пятый? Нанит, люмен, 4к ассеты всего подряд забесплатно, метахуманс. Никакой ебли со светом и запеканием, никакой ебли с LOD, охуенные ассеты из коробки, никакой ебли с гуманоидами и лицами, всё из коробки блять. У них даже мультиплеер из коробки есть.
Я просто хотел сделать 3Д мультиплеерную мочильню и сперва взялся за юнити как за более дружелюбный движ, но чёт уеч теперь кажется дружелюбнее и изичнее даже. Разве что с крестами проблемы будут, но если окажусь совсем хлебушком говорят блюпринты вполне норм.
Серьезно подумываю попробовать уеч теперь. Вы не пробовали еще?
>>842053 Дак а я тут причём? Я тут где-то заявлял что ща повторю успех майнкрафта? Я просто хочу сделать свою игру с как можно меньшими заёбами, будет она заебатой или нет уже покажет практика. Просто я не так далеко еще ушёл в своей разработке на Юнити чтобы не срыгнуть куда-то еще, на переделку уйдёт максимум месяц. Вот и думал может тут кто уже пробовал и поделится подводными камнями.
>>842036 добавляешь поле в свой монобех: [SerializeField] private MySettings mySettings класс наследуешь от SO: public class MySettings : ScriptableObject { //.. } и перетаскиваешь свой SO на монобех
еще можешь сделать такую мульку: 1.добавляешь OnValidate() на свой монобех 2. в нем раскидываешь данные с перетащенного SO на свои поля и прочее OnValidate срабатывает каждый раз когда ты меняешь референсы в эдиторе причем ввод данных можно сделать данные в любом формате хоть с жсона какогонибудь(TextAsset) хоть SO хоть аллаха очень удобно
Бля чета меня квартернионы ейлеры на хую еулили походу. В общем вон д2 чел, он в 3д мире наклонен по оси Х на 60. К нему прикреплен пустой объект, на котором весит чайлдом спрайт стрелы. В общем пытаюсь сделать так, чтобы стрела поворачивалась в сторону цели. она мне в очко поворачивается чета(((
>>842088 Поясняю ёбана, короче находишь НАПРАВЛЕНИЕ и по нему выстраиваешь кватернионом поворот. Для нахождения НАПРАВЛЕНИЯ берёшь позицию объекта в сторону которого нужно направить стрелу и отнимаешь позицию стрелы, это всё Vector2 есессно. Потом берёшь это НАПРАВЛЕНИЕ и при помощи Quaternion.LookRotation(НАПРАВЛЕНИЕ, ВВЕРХ) делаешь заебись.
Дичь какая-то ебаная. Типа у меня конечный результат ротейшена должен иметь приблизительно такой вид euler(60,0, тут угол между стрелой и целью). у меня из-за наклона Y и Z поменялись местами. Я пробовал взять векторы2 из X и Z трансформа стрелы и цели соответсвенно и взять между ними угол, который засуну в ебучий еулер. Так вот хуй вкусный получился да. ням ням. Вместо ожидаемого угла условно в 90 градусов мне почему-то прилетает какая-то то залупаЮ больше похожая на ебаный косинус или синус.
>>842132 Ноль полезной инфы. Можно заменить все видео одной фразой "мы использовали типа csg брашей для создания террейна". Как они сделали эти браши, как они сгенерировали террейн из них - не показали. Больше похоже на видео самопиара и похвальбы, чем на полезную презентацию для разработчиков
>>842144 Бля, но реально можно сделать карочи так лол)))) типо апгрейд башни лучника, вместо классической стрелы лучник выпускает срелосюрюкен, который бьет в аое)))))))
Да сраные кватернионы Мне надо сбросить оси икс и зэт в ноль, при этом не сбрасывая игрек transform.rotation=Quaternion.Euler(0f, transform.rotation.y, 0f); не подходит
>>842164 Ну тут сыглы конечно. Но времени тупо нет на такое. Если к назначенному сроку не успею рабочий билд сделать, то буду уже красоту наводить пытаться, хули уж. А так для первой игры и так сойдет в принципе.
>>842186 это затравка на будущее если понадобится какая-то логика там, а у тебя уже и место куда ее положить есть и приватное поле тоже т.е. обозначенное не меняется, все классы кому надо как работали через гетсет так и работают, а что внутри происходит их не парит
transform.forward - это же +1 по оси Z трансформа с учетом имеющихся вращений? Прально? Чет в дебаге попробовал нарисовать линию от transform.position до transform.forward и он рисует линию от трансформа до vector3.forward. я чет недопонимаю или юнити говно ест? Если сложить трансформ с трансформ форвар, то рисует уже как надо.
Карочи ебался я дохуя, пока не понял, что неправильно думаю о векторах. Немного передумал покрутил повертел, сляпал такую хуйню. Теперь стрела всегда в нужном ракурсе к камере и острием к цели. Если кому интересно конечно.
>>842243 Ну типа вектор один это вектор показывающий направление оси х трансформа, которая соответствует направлению стрелы. Вектор два это вектор от стрелы до цели. Игрик в обоих векторах выравниваю, чтобы расчет угла между векторами происходил строго горизонтально, без этого косоебит стрелу. Ну и карочи по факту надо чтобы вектор один имел то же направление, что вектор 2. Угол, на который довернуть, мы только что вычислили. В самом еулере 60 это угол наклона билборда. На самом деле все это скорее всего делается проще через функции камеры вообще.
>>842291 Как выше сказали можно либо убрать саму стрелу, и спавнить её на долю сек. Или спавни, поворачивай на противника, и пусть летит прямо. Не забывай что стрела это спрайт который находится вложен в пустой гм.
>>842331 Душевно чтобы было. Типо выбираешь клип - эвент не работает. Выбираешь обьект в иерархии, жмешь опять на этот же клип и этот обьект уже внесен в эвент и это нихуя не понятно интуитивно как ты откуда что открыл вообще.
>>842328 Насчет юнити эвентов анимации, то че у меня пердак отлетел, эта ебаная залупа не может мне выдать длину клипа флоатом в секундах. Т.е. у меня запускалась анимация атаки. Параллельно с ней, запускалась корутина, которая считала время этого клипа и по его истечению меняла стейт анимации. Я попробовал достаточно много всего и получил хуй, вместо времени, указанного в клипе. Но зато пришел к тому, что нахуй мне это время, если я после последнего кадра клипа могу повесить эфент, который и поменяет стейт аниматора.
А сейчас вообще есть возможность для гражданина РФ выкладывать свои игры в стим или на итч.ио какой-нибудь? И следующий сразу вопрос, это можно монетизировать или вывести будет никак?
>>842358 если не заморочиться то всем мамкиным декалпеляторам видно да. но я про модификаторы доступа, по умолчанию даже без него все приватное. мужик тот прав, ОСОБЕННО про пустые юнитиметоды. старт, апдейт и т.д., даже если они пустые - все это все равно дергается движком и отъедает производительность буквально, литерально на пустом месте. и сокращения не нужны писать так надо чтобы самому понятно было через год даже если никому больше показывать не будешькак по мне это самое сложное придумывать осмысленное название всем желающим поучить стиль рекомендую прочитать положняк: https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions еще можно настроить студию на то чтобы орала когда что-то не очень правильно делаешь и если насвинячил а ты студиябоярин то ctrl+KD и нормально
>>842368 >старт, апдейт и т.д., даже если они пустые - все это все равно дергается движком и отъедает производительность дефрагментатор, это ООП. если ты не напишешь метод, то его все равно подсунет сисярп в базовом классе. Ну и конечно вменяемый компилятор выкинет такой вызов (по крайней мере обычный .net умел это 14 лет назад https://stackoverflow.com/questions/11783/in-net-will-empty-method-calls-be-optimized-out
>>842342 Какой же Сакутин тупой ебанат это пиздец. 1ая доебка- решается в одно действие 2ая я даже не понял в чем она заключается переменные названы нормально и понятны, в идеале конечно добавить заголовки группам переменным чтоб более читалось, но опять же нахуй это оно надо 3ая пустой апдейт просто пустой апдейт, что его будет что не будет ничего не случится 4ая модификаторы у них есть, юнити по дефолту ставит приват в таких случаях. Короче не понял что он шортом этим сказать хотел, я думал тут будет хотя бы не оптимизированный код в апдейтах или всякие вызовы геткомпонент ну или что-нибудь в таком духе. Но по итогу доеб ради доеба.
После билда или хз в какой момент юнька в рандомное количество скриптов добавляется в самом верху где using разное говно которое не используется и вообще никогда даже не видел.
В чем может быть трабла? Сама студия этой херотой занимается, или юня? В большинстве скриптов юзается всего пару нужных полей по типу UnityEngine, другие тупо даже не нужны. Это не то что критично, но я заебался вычищать это дерьмо, скриптов две сотни и каждый раз чекать утомляет.
По типу таких: System.Runtime.CompilerServices; UnityEngine.Video; System.Collections.Generic; System.Collections; System.Xml.Linq; System; UnityEngine.EventSystems; System.Security.Cryptography;
>>842418 Нормально все он сказал, это все фиксится за 1 минуту, но код становится лучше. Когда у тебя тьма кода то ты уже это фиксить в каждом скрипте заебешься, на работе тебе апрув мерж реквеста на такое не дадут, будешь исправлять.
>>842420 когда новый файл в студии создаешь такая же простыня появляется? в качестве временного костыля, прогони через пикрелейтед, по умолчанию он вычистит тебе все пустые юзинги и т.д.
>>842428 Когда новый скрипт создаю по умолчанию обычные три using ставятся System.Collections, System.Collections.Generic, UnityEngine. Два из них сразу тру и всё окей.
Трабла то снова и снова повторяется в разных скриптах, в этом проблема.
>в качестве временного костыля, прогони через пикрелейтед, по умолчанию он вычистит тебе все пустые юзинги и т.д. У меня точно ничего лишнего не потрётся? Очкую давать бездушной машине мои скрипты чекать на наличие чего-то что она посчитает не нужным, у меня пиздец большая игра с кучей говнокода.
>>842429 Так ты не понял, это хрень появляется в скриптах которые я даже не трогал с момента создания, по типу мелких на 5-20 строк у которых совсем маленькая задача и про них даже не вспоминаю. Да и все эти строки всегда серые и не используются, у меня примитивные код без специфики в основном.
>>842433 тебе ведь эти корутины запускать надо будет и т.д. и все ради того чтобы эмулировать апдейт, зачем добавлять себе головняк и еще целую кучу точек отказа? так же и с менеджером апдейтов, вроде идея хорошая, но так ли уж поможет? надо смотреть что конкретно у тебя в проекте творится и от этого плясать
>>842439 Вообще было бы полезно знать скольк 1 пустой апдейт образно жрёт производительности для ясности. К примеру 1 апдейт жрёт 0.01% и сразу будет понятно стоит ли игра свеч.
>>842436 Опять этого выблядка кинул. Напомню базу, этот человек имеет убыточную геймдев студию, основной приток капитала идет с гоев, которые покупают его курсы. Их игры это гиперказуальная хуйня, которая даже в своем жанре не добивается особых успехов.
>>842485 Чисто личный вопрос. Что важнее в жизни. Сделать/делать хорошую/игру мечты или выпускать гипервизуальный-мобильный кал но который приносит доход?? Вот интересно мнение, на что надо тратить свою жизнь?
потому что в ней есть такая токсичная параша как создатель бесполезного говновидео про ОБОСРУ КОД НОВИЧКА. потому что у хохлов до сих пор интернет работает
Я тут такую хуйню обнаружил, что я обращаюсь к инактивному объекту, вызываю у него функцию инициализации, которая его активирует лол)) Причем я еще и параметры в него передаю, до активации. И все работает как надо. Но ведь скрипты инактивного объекта не должны же работать, не?
Вопрос. Есть некоторое количество скриптов с разными имена и функциями, но у всех них есть пара больших функций называющихся одинаково. Так вот, как взять рефы на эти функции в массив или что-то такое при этом зная что названия скриптов разное? Короче надо вызывать эти функции, но не дергая по отдельности каждый раз разный геткомпонент, а как то в массив их поместить? Есть вообще такая штука как засунуть разные скрипты в массив и вызывать их там не знаю, от имени или по индексу? Знаю только что одинаковые сущности можно.
Спалил годноту, но мне не жалко. Еще есть с десяток менее хороших, вплане позновательности каналов, но тоже достаточно занятных. Все в ру сегменте нормально, просто надо душить таких цыганей как Сакутин и отговаривать людей покупать курсы.
>>842579 заверни в интерфейс с этими функциями, положи в коллекцию интерфейсов и вызывай как хочется вне зависимости кто за интерфейсом >>842594 спосибо кто-нибудь из них с компьют/сурф шейдерами работал?
Глянул про скакутина этого, много в гугле сразу говновидео выдало с байтящими названиями. В общем, у кого все хорошо по делам, такой хуйней заниматься не будет, только если эта хуйня не является основным делом. Иными словами инфоцыган ссущий в уши.
>>842614 С одной стороны у меня бесплатное самообразование c возможностью в любой момент связаться с авторами видео и спросить некоторые моменты, с другой 150к за курс который научит меня делать казуальный кал. А судя по роликам, что кидал аноны там требования апдейты пустыми не делать и между объявлениями полей и началом класса пробелы ставить.
Окей, я понял что есть такая штука как плеймод. И они бывают двух видов - StopAll и StopSameLayer. КАк его использовать назуй? Пишу myAnimator.CrossFade(name,time,PlayMode.StopSameLayer); выдаёт ошибку error CS1503: Argument 3: cannot convert from 'UnityEngine.PlayMode' to 'int'
>>842780 Пиздец, как же хочется. Скрафтить хоть немного сложный интерфейс с менюшками на старой системе юнити просто нереально нахуй. И в то же время как же просто все делается на HTML. Я уже сколько лет не могу начать делать ебаную игру тупо из за того, что интерфейсы не в состоянии запилить на юнити. Вроде есть движки, позволяющие делать десктопные приложения на html, но там другая беда - жабаскрипт. Насколько хорош и красив шарп, настолько же уродлив этот язык.
>>842859 Красота. Прям сейчас советую заползти в профайлер и открыть окошко статс дабы следить за фпс и производительностью, пока не поздно начать фиксить проблемные места.
>>842891 Кого? Тебя? Лол)) Ну-во первых, ты гандон, который неоднократно был замечен за тем, что целенаправленно подсирает новичкам. В принципе этого уже достаточно, чтобы твоим мнением подтирать зад, чем я и занимаюсь. Во-вторых, ебал твою мамашу шлюху.
>>842941 Может тебя тоже во властелине колец фродо заебал? Мистер Фродо, я не могу нести кольцо вместо вас, но я могу нести вас вместо кольца. О Сэм. звуки жаркого секса
пасаны помогите принять волевое решение есть пикрелейтед вроде бы работает но в апдейте получилась ебенячая лапша из ифов имеет ли смысл это перетащить на что-то типа стейтмашины или не стоит ебать себе мозги и усложнять если оно работает и каши не просит? выделил три состояния: 1. поиск компонента (рейкаст) 2. подсветка (есть хит из известных коллайдеров) 3. перетаскивание(есть хит + зажата мышь)
Простите за форс протыклассника, но просто так так жопа горит с того, что хомячки в комментариях поддерживают. Человек полгода лично не курирует дела студии и удивляется проблемам.
Наговнякал третий тир для ведьмочки. Нихуя самому не нравится, но главное видно что ебать мощщщщный маг летает скалу кидает взрывается так что вместе с новиградом нахуй сразу. Туда сюда получается 6 башен есть, 5 из них со звуком. еще 5 башен замутить и можно начинать балансить. Походу до нового года даже эту залупу не доделаю.
>переполз на "новую" версию >вот эта параша при каждом открытии >проект на м2 нвме как вы это терпите вообще? старые юники открывались вообще моментально нахуй
Анонасы, не шарю за солид и паттерны, поэтому нужен совет бывалых по архитектуре. Вот код, который управляет моими башнями. В момент атаки он активирует геймобжект, являющийся снарядом, который содержит простой код полета от башни до цели, по прилету колбекает атаку башни. Хочу разнообразить поведение снарядов, например одни летят по прямой, другие баллистикой, третьи вообще луч. Я думал сначала ебануть декоратора, но вспомнив, что код должен наследовать от моно, пукнул и обмяк. Ну и собственно хотелось бы получить рефью кода башни.
>>843317 TowerAttack класс, отвечающий за поведение снаряда, делаю интерфейсом. От него и от моно наследуют несколько поведеньческих классов, и эти классы я уже ручками вешаю компонентом в перфабы снарядов. Соотвественно башня через интерфейс может инициализировать любой тип. Так чтоли?
Подскажите, пожалуйста, есть способ сделать модель всегда освещенной или куда стоит копать? Нашел ассет с запеченным светом, как я понимаю. Когда вставляю туда модель стороннюю, она все время во тьме. Можно ли заставить модель игнорировать источники света и все время быть освещенной?
юнитачи, у меня есть кучка элементов-кнопок(однотипных), я их штампую из префаба, раскидываю куда надо(трекают объекты в 3д мирке) и есть два режима работы гуя которые в корне меняют то что делает клик по этим кнопкам придумал два варианта 1. добавить онклик на сами кнопки, передавать онкликом самого себя и передавать это текущему режиму работы гуя сверху 2. запилить свой онклик в отдельном классе через график рейкастер, сделать поиск нужного компонента через допустим словарь геймобжект-компонент чтобы не было хуеты типа геткомпонента на каждом клике, дать доступ к этому онклику режимам работы гуя и пусть там сами кликают то что нужно когда им нужно на какой стул сесть? второй кажется оверинжинирингом...
>>844110 Странный вопрос. Думаю у тебя что неправильно с архитектурой, ну ладно постараюсь ответить - если ты вызываешь какой то экшен по кнопке ты его можешь менять, или тупо в самом методе реагировать или же сделать классы и юзать полиморфизм
>есть два режима работы гуя что мешает сделать тупо так? public void OnClick() { if(state == States.state1) { doForState1 } }
>>844018 В Unity можно сделать модель всегда освещенной, настроив для ее материалов использование "неосвещенного" шейдера. Это позволит модели быть видимой независимо от освещения в сцене. Вы можете найти "неосвещенные" шейдеры во встроенной библиотеке шейдеров, которая поставляется с Unity.
Чтобы использовать "неосвещенный" шейдер на модели, вам нужно выполнить следующее:
Выберите модель в иерархии сцен или в проектном представлении. В окне Инспектора щелкните по компоненту материала, чтобы открыть свойства материала. В свойствах материала найдите раскрывающийся список шейдеров. В раскрывающемся списке "Шейдер" выберите шейдер из категории "Неосвещенный". Кроме того, вы можете создать свой собственный "неосвещенный" шейдер с помощью инструмента Shader Graph. Это позволит вам настроить отображение модели, когда она всегда освещена.
Я надеюсь, что это поможет! Дайте мне знать, если у вас возникнут какие-либо вопросы.