Вы видите копию треда, сохраненную 3 мая в 16:19.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый тред: >>829512 (OP) (OP)
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и 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х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
Сукаблядь шапку переделайте ало, она на 90% уже устаревшее говно!!!111111111111111111
50% проблем новичков решалось бы сразу если бы шапка нормальная была
Еще 50% вопрос также отсекалось после прочтения
А без этого не как?
Рот завали. Шапка уже переделана.
Все ссылки кроме юнити вики актуальны, список книг ссылается на последние издания на русском.
Хрена тебё ещё надо?
Переделай сам.
Ахуенно актуально
>- На каких языках я могу писать скрипты для Unity?
>- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
Сап юнитач, нужно помощь знающих.
Я тут туториал выполнил по инвентарю для 2д
https://www.youtube.com/watch?v=X--JLDZboCs&t=1s
Но столкнулся с тем что
когда я нажимаю на спрайт на его месте появляется пустой слот, объект исчезает и не появляется пока я не тыкну в другой любой слот. Анимация перетаскивания не работает.
Скрипт перемещения.
void MoveObject()//перемещение объектов
{
Vector3 position = Input.mousePosition;
position.z = InventoryMainObject.GetComponent<RectTransform>().position.z;
movingObject.position = camera.ScreenToWorldPoint(position);
}
И перемещаемый объект появляется в нижнем левом углу с дикими координатами мыши.
Често я уже подумываю отказаться от инвентаря, я даже ещё не реализовал подбор/выброс предмета или сохранение инвентаря, а здесь в такой элементарщине не могу разобраться.
Он тонуть пару лет будет, это не бэ. Единственный выход это сидеть пердеть здесь, и надеяться чтобы след перекат не сделал залётный чмоня.
Неужели это сама Persona99 озвучивала? Настоящая?
>GameObject.Find
Юзай это только при инициализации. В процессе игры никогда. Во первых в зависимости от размера сцены может занять поток на 100% и уже от компудахтера повиснуть на несколько секунд вызвав фриз.
бамп вопросу
это понятно, я имел ввиду, возможна ли такая ситуация, когда объект не успеет создастся и из-за этого GameObject.Find не сможет нормально отработать?
>объект не успеет создастся
Если вызвать инстанс до поиска до успеет всегда. А вот инициализация в этом созданом гм может не успеть пройти.
Сап мейлач, на связи кун который вкатывается в gamedev
Вот решил сделать простенькую сцену и протестировать своё творение в unity. Выбрал рендер hdrp. Но картинка будто gta sa с хуёвыми модами. Есть ли тутариал или пресет настройки отведения. Я всё облазил, но выходит какая -то бледная хрень.
Помогите.
А ещё какие -то косяки по альфе
Довольно много есть всяких настроек и шейдеров для красивой картинки, а уж работа с освещением и эффектами это на недели без опыта.
В два клика такие не решится.
Советую просто для начала поизучать возможности юньки, слишком много всего можно включить/выключить/настроить, и что самое главное разными путями под свой вкус.
Одной кнопки универсальной - сделать красиво нет.
>Довольно много есть всяких настроек и шейдеров для красивой картинки
Я использовал pbr
>>35982
>В два клика такие не решится.
>Советую просто для начала поизучать возможности юньки, слишком много всего можно включить/выключить/настроить, и что самое главное разными путями под свой вкус.
>Одной кнопки универсальной - сделать красиво нет.
Я понял, в общем - это тот ещё пердолинг.
Штош, буду пробовать
Почему тогда разраб пишет, что надо умножить на Time.deltaTime?
https://forum.unity.com/threads/mouse-delta-input.646606/ (первые два поста)
Если есть специфика или кол-во анимаций и переходов более 10-15, то твой выбор это кастомная анимация в скрипте. Смотри на ютубчике как делается, не сложно и даже понятнее чем куча стрелочек и блоков в ванильном аниматоре.
>Time.deltaTime
Всегда используй это, без исключений. Хотя если тебе игру никому не надо давать, или в ней задействована собственная физика можно и без.
А так это гарантия того что игра будет вести себя одинакова в разных условиях, но опять же есть исключения когда и даже так всё может пойти по пизде.
Есть альтернатива в виде расчёта по формуле, но если не хочется запариваться, лучше использовать пустышки.
1260x840, 0:08
Они не перекрывают друг друга. А что такое референсы? Хрень какая-то как всегда на самом простом обсираюсь
Ну в скрипте у тебя какой то код на кнопку, там же и должен быть референс на неё, и скорее всего обсёр где то там.
Ты структуру очень хуево сделал напихав буттоны под буттоны. Это нормальное поведение когда дочерние элементы ловят эвенты и переправляют своему паренту.
Второе - покрас кнопки делается в самом компоненте кнопки, ты видел там пачку полей колоров? Вот их понастраивай.
>150 рублей/час
Уже лучше 99.9% предложений, соглашайся.
Обычно первые пол-года, год вообще бесплатно ради опыта только берут. И то это надо на коленях упрашивать.
Завести в скрипте переменную в которую возвращается инстанс той кнопки на которую заходит курсор и менять цвет этого инстанса?
1110x388, 1:02
Я как бы интуитивно понимаю, что копать надо в направлении формулы площади круга и как-то экстраполировать на одномерный массив вершин меша, но мозг просто в ступор входит.
Напишу псевдокодом:
>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) (центр круга).
Если хочешь круг, тебя интересуют точки с радиусом меньшим заданного. Если хочешь окружность, тебя интересуют точки с радиусом, примерно равным заданному (нужна небольшая погрешность для того, чтобы правильно изобразить окружность на дискретной матрице из точек, иначе точки будут слишком далеко друг от друга). Если хочешь вывернуть круг, то тебя интересуют точки с радиусом больше заданного.
Может, есть какие-то более эффективные алгоритмы, но этот самый простой для понимания.
Я бы мог просто кадров в сам файл с анимацией добавить, но очевидно что лень таким заниматься.
Сто раз обсуждалось, если ты получаешь зп грузчика, но при этом вместо грыжи от таскания ящиков сидишь в удобном кресле за любимым компом, ты уже успешнее 85% населения.
А переработки, сидячий образ жизни, выгорание - никак не влияет наверное на здоровье)
Странное немного сравнение.
24к это стартовый оффер для резюме с прочтенными лернингами юнити и юнити ин экшон лол.
Бля, на мое резюме ответили с таким предложением лол.
Сестра поработала на всех дно работах. В пятерочке была одна из худших. Работают по 12 часов и насколько я помню все что сверху 8 не оплачивается))
Ну кста я там на чилле работал. Часа за 4 коробки расставлял, а остальное время хуи пинал. Не в каждом магазе такое конечно, но все же имело место быть.
Просто знакомые ща устроился за 35к и штампует ГК. Сидит по 8-12 часов в день, потому что сроки сдачи мелкие, а объем работ большой. Ебанутый жанр, в котором каждый раз надо учить или пробовать что-то новое.
Хочешь смешать жидкости? Качай плагин, шейдер и ебись как оно там сделано. Все твои знания предыдущие тут не катят.
Хочешь сделать крутую механику с веревкой? Качай еба здоровый ассет и снова разбирайся за день, чтобы завтра показать хоть что-то.
Хочешь создавать меш через касания на экране? Срочно беги изучать че такое вообще этот меш, как его генерить и че с ним дальше делать, потому что ни один ебаный курс этого тебе не рассказывает.
Ну ты думаю понял куда я клоню. Еба переработки, еба поток инфы (не всегда нужной) и все это за эти копейки.
100 раз подумаешь, а стоил ты все это того. У меня выбора то и нет уже, слишком времени дохуя потратил на юнити, надо уже добить, но хуево что перспективы такие себе пока.
>У меня выбора то и нет уже, слишком времени дохуя потратил на юнити, надо уже добить,
Вот этого двачую, столько времени убил на шарп и юнити, что просто обязан, хоть что то в стиме выпустить.
>обязан
Никому, ничего ты не обязан. Можешь делать игры для себя хоть всю жизнь, главное чтобы было в удовольствие и чувствовал что делаешь то что хочется.
>Хочешь смешать жидкости?
>Хочешь сделать крутую механику с веревкой?
>Хочешь создавать меш через касания на экране?
Ну так это интересные задачи, это тебе не кубики через transform двигать. Считай что у него работа интереснее чем у 90% других Юнити-кодеров.
Жаль что йоба-плагины нужны, но без них такие задачи за день не решаются.
Ну так что, кто-нибудь шарит в Меканим? Как в Mecanim тупо поставить клип на паузу? При том что я не хочу вообще всего персонажа вводить в ступор использовав animator.speed = 0.
Я бы мог просто кадров в сам файл с анимацией добавить, но очевидно что лень таким заниматься.
Если у тебя есть игра для себя, то ты уже не безыгорный. Важна законченность игры, а не ее выложенность в стим.
Так а что мешает немного поучить применение Шарпа в энтерпрайз разработке и идти в 300к/наносек пилить корпоративные системы на шарпе?
Так а что мешает найти нормальную работу и пилить игру мечты в свободное время?
При обычной работе редко остается свободное время. Работы где можно ничего не делать очень редки. Работы после которой остаются силы писать игру ночью тоже.
Мне нравится язык, но синдром самозванца не позволяет мне даже на собеседование записаться.
>>36938
Так я и так пилю игоря в свободное от дно работки время.
>>36926
>игра для себя
Внезапно оказывается, что игр для себя не так интересна, как чужие незнакомые игры. Никаких секретов, всё же я сам написал.
Попробую покурить, вообще у меня уже есть готовое решение, просто я хотел что-то свое попробовать.
https://catlikecoding.com/unity/tutorials/mesh-deformation/
Там и крутой эффект с возвращением волны, а коллижен я уж сам умею менять. Просто как-то стыдно было целиком чужое решение пиздить.
Что-то не верится в такие зарплаты, а как же обещания всяких курсов о "востребованной работе геймдевелопера" с зарплатой от 100к?
>Жаль что йоба-плагины нужны, но без них такие задачи за день не решаются.
Вообще-то решаются.
Эта ебанина оффлайн включается вообще?
С чего бы решаются?
Я вон пытался паузу индивидуально для стейта в Mecanim сделать, но хуй там, это невозможно без диких костылей. Стандартных способов нет, нужно искать исходный код и пытаться как-то самому расширить Mecanim, при этом нигде на ютубе или stackoverflow готовых туторов про это нет. А ведь это просто элементарная задача, гораздо проще чем готовая играбельная механика даже для гиперказуалки.
https://replikaai.notion.site/Unity-Developer-3781119194fd4f9b97a312a3acb566f6
>Куйда Евгения Игоревна
>Филипп Дудчук
>почему в России не умеют прощать неудачи
>как Luka удалось привлечь пользователей благодаря ЛГБТ-коммьюнити в Бразилии
>Из-за мирового финансового кризиса в России начал возрождаться национализм, а в 2012 году страну снова возглавил Владимир Путин. Мечты о более открытой России, казалось, улетучились.
> Игорь Куйда
> Участника дела о хищении 215 миллионов рублей в «Экопромбанке» оставили на свободе ?https://properm.ru/news/society/206809/
Беглый гуглинг показывает тусовку этнических украинцев, которые всей семьёй безнаказанно пиздили в России деньги, живя при этом за границей, обслуживая ЛГБТ-повесточку и обсирая русских.
Уж лучше в Пятёрочке работать.
>которые всей семьёй безнаказанно пиздили в России деньги, живя при этом за границей
Ну а у тех, кто не пиздили деньги и жили в России в итоге мобилизовали работников, оставив компанию без персонала и устроили войну, обрезав пути монетизации и придушив бизнес. Так ли эта тусовочка была неправа, что заранее съебала отсюда?
Что ты там куда ввёл, стратег мамкин? Я тебе говорю, что если тебе хочется на профессиональных воров работать, то добро пожаловать, останавливать не буду.
>вводишь войска в другую страну
>тебя отключают от глобальной экономики
>ЗА ЩОООООО?
тоже не понимаю, зачем украина на днр напала.
Зп такая, потому что на старте-то тебе не доверяют, и конкуренция большая. Зато когда устроишься - дальше уже быстро будешь подниматься.
Стоит ли перекатываться с 2019 до современного юнити если комп калькулятор?
>Replika — самый популярный в мире чат-бот на английском. Это AI-друг, который хранит воспоминания пользователя и помогает справиться со сложными жизненными ситуациями. Replika получает более 10 млн сообщений от сотен тысяч активных пользователей каждый день. Основная аудитория — США.
TL;DR: собирают персональные данные с миллионов хомячков и отдают их ФБР, рекламным сетям и т.д.
Никакого ИИ у них нет. Они уже несколько раз меняли направление развития, радикально меняя их "ИИ". Лжецы, одним словом. Но нельзя отрицать, что им удалось навешать лапши на уши миллионам.
>>37279
>зачем
По той же причине, по какой Реплика собирает личные данные с пользователей - всё в интересах США.
Сап, как можно отследить всего один клик в апдейте мышкой?
Один клик в апдейте? Возможно ты не правильно структуру реализовал если нужно это сделать.
Ну а из простого сделай булевую переменную вне апдейте и проверку на ней при нажатии.
Не помогает
Самое интересное что
(Input.GetKeyDown(KeyCode.Mouse1) - в апдейте жрёт клики
а
Input.GetKeyDown(KeyCode.E)
работает как надо
Но мне не нужна клавиатура
Как не помогает если это должно работать?
if(!bool) bool=true; DoShit()
Но вообще лучше нормально сделать это через функцию события как весь интерфейс юи, ну или хотябы через новую систему инпута.
Нее я же говорю как только задействую мышь так вот случается такой проёб
связь между слотами обрывается
, но когда нажимаю на клаве, то всё происходит как надо,
проблема в том что у меня всё заточено под мышь.
Спасибо но тоже не помогло.
Возможно ли это из-за того что яактивно использую ивенты мыши на нажатие, отпускание и перетягивание предметов мыши?
НО я это всё делаю только левой кнопкой, правую я специально зарезервировал, под использование предметов, т.е. впринципе она не должна, как и левая кнопка отслеживать нажати, отпускание или должно?
Просто я ума не приложу почему один и тот же код работает когда я использую E и н не работает когда я клюкаю.
>почему один и тот же код работает когда я использую E и н не работает когда я клюкаю.
поведение в редакторе может отличаться от поведения в билде, проверь
>поведение в редакторе может отличаться от поведения в билде
Двачую >>37473 .
Сам еще давно, и случайно обнаружил данную хрень. В следствии чего достаточно раз встречал с такими особенностями.
Создал билд, а там вообще ничего не работает, сука как же это всё заебало...
Финальный бос айронмита?
>>37460
>>37375
Спасибо за помощь, но как я и думал проблема оказалась в ивентах, пока я полностью не запретил пользоваться ивентами при нажатии клавиши мыши, ничего не работало. Сейчас работает, но вчерашний билд игы, который я создал просто убил меня. Даже если не брать в расчёт картинки в канвасе которые у меня по экрану расплылись я понятия не имею почему персонаж перестал подбирать предметы. Как будто лучи которые он пускает перестали работать. Возможно стоит отказаться от рейкастов и перейти на триггеры или колайдеры.
>картинки в канвасе которые у меня по экрану расплылись
>лучи которые он пускает перестали работать.
с камерой все норм? проверял?
К примеру что бы коллайдер противника проходил через коллайдер игрока но не проходил через коллайдер стены.
С меня котик
Конечно, таже аналогия работы со слоями, всё просто.
https://docs.unity3d.com/Manual/LayerBasedCollision.html
Physics.IgnoreCollision
>с камерой все норм? проверял?
Да. У меня персонаж пускает лучи, не камера, так как вид сверху, камера просто следует за игроком.
Unity не твоя мамка, чтобы твой контент модерировать. Делай что хочешь.
Нет, не дебажил. У меня почему то луч не отрисовывается (и да я использовал специальный метод отрисовки для дебага)
Сперва в юнити сторе, там что-то нормальное только за деньги, потом в гугл пошёл, там анальная регистрация через карточку везде.
Картинка получается не менее чем 4к разрешения, а в тайловом редакторе постоянно какие-то артефакты и пропадания кусков изображения, что нещадно раскаляет стул подо мной, заставляя подстраиваться под этот инструмент говна.
Не замечаю разницы в производительности на рабочем пк, однако взяв ноут 2008 года (2 ядра, 4 гига) заметил, что некоторые картинки высокого разрешения он отрисовать в принципе не способен. Склоняюсь к тому, что надо совмещать эти два способа или резать особо большие спрайты на части, если надо использовать картинки без тайлинга.
Как вообще выстроить воркфлоу, чтобы потом это всё не лагало и работало на слабых машинах?
>4к
Если не хочешь проблем и лагов, всегда используй 512, или 1024. Выше не советую. Тут уже надо учиться как сжимать чтобы выглядело красиво, а также оптимизировать разрезая всё на куски.
Хочу реализовать двери-переходы. Можно сделать легким способом где два геймобжекта и геймобжект Enter с триггерколлайдером при OnTriggerEnter2D телепортит по координатам дочернего геймобжект Exit.
Задача: можно ли изъебнуться что бы оба объекта ,были универсальными входами-выходами? Все это на одном скрипте с захватом объектов через public GameObject.
Можно ли определять какой именно из геймобжектов затриггерился игроком?
У кого нить текст в эдиторе превращался в квадраты?
При чем проблема именно в юньке 2020 в вкладке сервисов и в пакет менеджера
вроде в колижене есть функции где можно это проверить типа
if(collision.GetContact().otherCollider.gameObject == door1)
{
TeleportHero(door2);
}
но мне кажется логичнее сделать просто скрипт двери и прикрепить его на саму дверь.
В скрипте так же делаешь public DoorScript exitGo; куда прикрепляешь выход.
ну и там как бы изи уже
Первый раз вижу подобное, а в юньке дерьма я навидался много. Копал бы в сторону проблем на маке или шрифтов/рендера.
Сделай паблик поле к примеру со стрингом, там на обьекте пропиши уникальное имя, по типу - Door1, и внутри скрипта свичем по этому стрингу делай разные штуки.
Но это не оптимальный вариант, лучше по структуре другое.
Так оно так и есть. В начале делаешь тупо механики и скелет, а во что играть и изучать нету, а если не бросаешь появляется контент.
Если и дальше не бросишь, а будешь с переодичностью обновлять то вообще конфетку сделаешь.
Выкладывай игру, порадуемся за тебя.
малаца, горжусь тобой
>>38131
Потом, когда контент будет хотя бы на 30% окажется что твоя игра кишит багами. Базовые механики так четко работали, так просто было бегать по пустым плоским пространствам.
Потом даже если пофиксишь баги и релизнешь игру в Стим, игроки все равно пердят в обзорах: неотзывчиваое управление, застреваю в текстурах, текст в менюшках скачет!
Короче, эта эйфория только в начале, увы.
Аноны, есть вопрос по физике. Как вы вообще относитесь к плоским Mesh Collider без толщины? Скажем, у меня пол в многоэтажном здании из обычных двух полигонов с Mesh Collider. Это пиздец, да? В нормально состоянии пока не замечал чтобы персонаж через пол проваливался, но вот если обычный коллайдер персонажа отключается и включается ragdoll из мелких частей тела, то стабильные полеты под пол при опредленных условиях.
>физике
Физика в юнити это не просто, и разные моменты решаются сугубо индивидуально.
Из универсальных советов это первое - Физика любит медленную скорость, второе - Отключать физику тогда когда она не нужна и третье это - иногда лучше продумать варианты не затрагивая ванильную физику.
>Физика любит медленную скорость
Но геймплей тогда будет скучным, картинка тоже так себе.
У меня на уровне много объектов-ловушек которые двигаются в разные стороны на высокой скорости.
Если скорость будет низкая, то игрок сможет их очень ненапряжно обходить стороной, а в случае столкновения будет не эффектый полет в небеса на десяток метров, а просто падение жопой на землю.
>Отключать физику тогда когда она не нужна
Да таких случаев почти и нет, на мой взгляд. Без физики сложно обработать взаимодействие с окружающей геометрией. А уж если персонаж в воздухе находится и без гравитации, то это пиздец.
>иногда лучше продумать варианты не затрагивая ванильную физику
Ну это для тех у кого совсем простые игры. Я 3д экшон пилю, без ванильной физики тут невозможно.
>то стабильные полеты под пол при опредленных условиях.
Поставь у RigidBody Collision Detection на какой-нибудь из видов Continious, это как раз для быстродвижущихся объектов и создано. Затратный по ресурсам вариант, если у тебя сотни объектов с этой опцией будет летать то можешь по цпу просесть.
MeshCollider- кринж. В случае рэгдолла конечно его можно использовать, но для обычный геометрии лучше использовать обычные коллайдеры. Мешевые увеличивают время загрузки сцены и в целом больше ресурсов жрут.
>Поставь у RigidBody Collision Detection на какой-нибудь из видов Continious
Спасибо, анон, такие очевидные вещи уже сделал.
>MeshCollider- кринж.
>Мешевые увеличивают время загрузки сцены и в целом больше ресурсов жрут.
Там в прямом смысле ровно 2 полигона на 1 кусок пола, вряд ли сильно влияет на производительность. Проблема в том что толщины нет вообще. У меня такое ощущение, что в Юнити чем более толстый коллаидер, тем ниже шанс сквозных пролетов сквозь него.
Это в любом физическом движке что я встречал так.
Получаю 2д вектор дельты движения мыши далее см скрин.
Без клампа все ок, с клампа начинается какая-то хуйня. Камера дергается - т.е. после превышения значения, камера не остается на месте, а дергается резко вниз. ЧТо я делаю не так? Как поправить?
>Спасибо, анон, такие очевидные вещи уже сделал.
Ну мне откуда знать было )
>Проблема в том что толщины нет вообще.
Это проблема, не могу описать технологию 100%, но если примерно.
Когда объект движется, то он проверяет наперед столкнется он с чем-то или нет, представь что перед объектом следует несколько его копий, которые проверяют заранее столкнется ли объект с каким-то препятствием. Но если объект с которым должно произойти столкновение слишком тонкий, то есть большой шанс что ни одна из "копий" объекта не засечет столкновения и получится сквозной пролет. Только толщину твоего пола увеличивать, другого способа не знаю.
ShapeCast, как RayCast, только всей тушкой. Не знаю какие именно доступны в юнити, обычно есть сфера, цилиндр. Полный меш может быть дорого.
Может быть связано с конвертацией в углы Эйлера, у тебя текущая ориентация камеры читается из transform.eulerAngles.
>>38643
>>38649
Эх, придется переделывать коллайдеры.
Ну или отказываться от рагдолла. Большинство багов у меня вылазят именно в процессе перехода персонажа из обычного состояния в рагдолл, ну или когда анимационный контроллер использует root motion и анимация сдвигает transform персонажа в недопустимое место.
Контроллер персонажа я не сам писал, кстати, вот он: https://assetstore.unity.com/packages/tools/game-toolkits/invector-third-person-controller-shooter-template-84583
Несмотря на кучу положительных отзывов на деле забагованное говно получается и близко нет той стабильности которую ожидаешь от нормальной игры. Количество багов, которые приходилось чуть ли не неделями отлавливать, исчисляется десятками.
Пчел все ассеты со сторая стоит юзать только как временное решение.
Тебе как минимум надо их переписывать/переделывать под себя, попутно фикся и выбрасывая лишний мусор.
Юзать их как конечное решение это грубая ошибка.
Что нихуя? Назови хоть один ассет который ты бы использовал не изменяя? Даун штоли?
Даже шейдеры тебе надо править под свои нужды.
Extenject, unirx, unitask, cinemachine, все юнитековские ассеты из категории 2д, реклама и аналитика
Довольно странно кидать ассеты которые есть на гите.
>cinemachine
Уж этот кал тебе обязательно надо переделывать, оно не оптимизированно и забагованно по самые яйца.
Крч я хз ты кинул не ассеты, а скорее части самой юньки, которые тем не менее нужно чекать.
Ты вообще юзал ассеты или по картинкам в ассетсторе решил что их надо перепиливать? Есть огромное количество нормальных ассетов которые не нуждаются в переделке. Также есть куча говна, но рыночек и конкуренция порешали, на каждое говно есть нормальная альтернатива.
>>38682
Там не просто контроллер игрока. Есть еще готовая боевая система с хитбоксами и базовый АИ противников с поведением в боевых ситуациях. Не говоря уже про сам рагдолл который уже связан с контроллером персонажа и меканимом, что самому написать очень непросто. Там не меньше сотни классов по 1000+ строк кода в сумме наберется точно. Теперь представь сколько самому писать это придется, год что ли тратить на это?
Просто вопрос в том нахуя они так много элементарных багов оставили? Видно же что люди головастые писали этот контроллер, не индусы за миску риса. Но если взять какую-нибудь рандомную инди-игрушку со Стима, то в ней намного меньше багов будет.
>Есть еще готовая боевая система с хитбоксами и базовый АИ противников с поведением в боевых ситуациях.
Челище блять, это дерьмо делается десятком скриптов, и даже не тысячами строк, дело пары дней. Господи, ну хотябы сами бы пробывали писать прежде чем высирать тредятину такую.
Во всех ассетах куча не нужного говнокода, который можно сократить на 50-80% под свои нужды.
То я смотрю такими темпами реально миф про то что в юнити только ассеты таскают станет правда.
О, опять разработчик в голове рассказывает свои фантазии про пару дней.
тип того
>Есть спавнер
Пулл, Pool, Пуляша.
Это решение всех проблем со спавном/деспавном по производительности. Лучше и проще не найти.
В кратце, у тебя спавнится лист при инициализации/загрузки, а потом ты просто on/off объекты.
Двачую, не зря во многих играх вне зоны видимости, за текстурами находятся персонажи и предметы, которые уже заиничены и готовы просто мгновенно переместится к персонажу за спину.
Начни с пула который просто выключает/включает объекты, а инит их делай заранее. В гугле масса мануалов, выбери тот которые более абстрактный, обобщенный (T). Если в будущем будешь просидать по производительности с привидением типов выделишь конкретику в отдельный пул и не будешь иметь проблем, то есть тебе нужен не статический пул.
Кому интересно, скопировал этот невидимый символ в конце строки, если вставить в другое место то пишет #FFFFFF
Сколько же багов, пиздец. Смотрю как-то прозрачность не совпадает, сделал в фотожопе небольшой тест как выглядят пятна на прозрачном фоне и на белом, в юнити все наоборот, в спрайт эдиторе одно, блять, в игре другое. Даже нашел вроде у типа такой же косяк
https://stackoverflow.com/questions/72635833/unity-displaying-a-textures-alpha-channel-incorrectly
Кажется раз это самый популярный движок, то должны махом такое фиксить, но всем похуй, заметят через пять лет
>Кажется раз это самый популярный движок, то должны махом такое фиксить
Лол с чего это? Какой-то минорный корнеркейс, вообще насрать.
Пока ничего, но обещали анальную монетизацию
Короче оказалось, что косяк с прозрачностью не баг юнити, а просто очередной изъеб с галочками, нужно color space с linear на gamma переключить, либо в фотожопе в настройке цветов включить наложение цветов RGB с гаммой 1,00
Но если в юнити переключить то куча ньюансов какие-то разные результаты, опять непонятная галиматья
Такие варианты нихуя не работают
ты уже его задал при создании через new GameObject[CanSpawn], CanSpawn выступает в качестве размера
ps если это твой пул объектов то массив здесь не подойдет, с массивом тебе придется пересоздавать массив каждый раз когда нужно будет еще врагов навтыкать
используй либо лист либо queue
Смотрите, бесплатная официальная книжка по паттернам, солид и прочим шнягам.
Достаточная база?
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.
А что именно не работает?
ачевсмысле ему там не нравится, ошибку в студию
ты создал пустой массив геймобъектов размером с CanSpawn. это именно так и должно работать если твой монобех на котором этот старт сидит активный.
>вкатиться Unity по приколу и потихоньку одному пилить свою 2D игру для андроид для удовольствия? Потихоньку разбираясь в нюансах и языке. Гигантский масштаб предстоящей работы осознаю.
Странно, если ты имеешь опыт в работе, осознаешь масштбаы, есть мотивация и желание, то что мешает это сделать? Нужно разрешение от господ из юнити треда?
Если серьезно то у тебя идеальный вариант, пили и не парься. Разве что держи в уме что из-за не хватки опыта, может быть придётся переделывать на определённом этапе, когда поймёшь что можно сделать иначе.
Если попозже хочешь вкатится в работу по этой специальности то нужен ментор, видел самоучек которые пишут отвратительный код в котором и сами спустя 15 минут не могут разобраться.
Если для себя, то ментор не нужен, но эффективность конечно будет мизерная.
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);
https://github.com/LordEnma/YandereSimulatorDecompiled
https://vk.com/wall-184990757_5500?ysclid=laa8iy6sk1217983992 - книга
https://github.com/jhocking/uia-3e - src
если кому надо
я решил, что нет
Ух, ну все, ща почитаю, и точно буду делать игры
Скачал, засунул в папочку, потом прочту. И реально прочту, многие откладывают и забывают, но не я, я потом вспоминаю.
То же подбамбливает с короутинов. Ты скорее всего из апдейда из запускаешь тысячу штук
таких багов кстати никогда не ловил смотри чужие скрипы и копипасти оттуда шкуратины, но было такое, что эта мразь дублировалась и я не мог вкурить почему, потом попробовал через unitask и вроде бы почти исправилось, стало максимум 2 дубля
Просто ты долбоеб который хуярит вечные циклы.
mov, webm, mp4 etc
Я ничего не могу, я не шарю в шейдерах. Мне надо на юрпе.
А что, если будет на билт ине то можно перенести на юрп?
Нет, на эти грабли я не наступил.
>>39721
Это база, но еще надо логику строить как можно проще, чтобы не дай бог в бесконечный цикл не уйти.
>>39726
Моя проблема была в том что корутина запускалась по StartCouroutine, но при помощи StopCoroutine не останаваливалась, в итоге я запускал корутину по тыщу раз радуясь мемориликам. Как я это пофиксил? Я засунул корутину в переменную и отправлял её в StopCoroutine вместо названия самой корутины и ВНЕЗАПНО всё заработало как надо.
Кстати вот это тот самый случай когда синглтон не помешал бы, только сейчас чёт догадался. Если я не могу запустить одну корутину больше одного раза, то и меморилик невозможен.
Нет, не нужен. мне нужно из точки спавна добраться до базы игрока. )) У меня есть рабочий код, что я ставлю пустые объекты с навигационными метками каждая из которых передает информацию о следующей, но тут проблема в том, что путь типа извилистый и чтобы это смотрелось не кринжово, мне надо их ставить достаточно много. И как бы вот хз карочи.
без навмеша имеется ввиду.
если тебе не нужен поиск пути, а просто из А в Б более-менее некринжово, то посмотри в сторону сплайнов
кривая катмулл-рома часто в этом используется и проложит через твои навигационные объекты весьма приятно выглядящую кривую
а ее собрат TCB/кочанек-бартельса еще больше контроля того как эта кривая выглядеть даст
>запускалась по StartCouroutine, но при помощи StopCoroutine
было такое, остановить можно через StopAllCoroutines, но это если у тебя в скрипте нет других шкур
> Я засунул корутину в переменную и отправлял её в StopCoroutine вместо названия самой корутины и ВНЕЗАПНО всё заработало как надо.
Ну так сам виноват, что шарп и юнити мало изучил. Но зато теперь знаешь.
можешь перед запуском проверять запущена она уже или нет типа такого:
Coroutine myCoroutine;
if(myCoroutine == null) StartCoroutine(MyCoroutine);
ну и останавливать через нее:
StopCoroutine(myCoroutine);
я забыл про присвоение асел
if(myCoroutine == null)
myCoroutine = StartCoroutine(MyCoroutine);
Давеча сдал пустые бутылки, от чего хватило на обновление пекарни. В космос не летает, но теперь хоть тянет юнити (и даже визул студию). Так вот.
Есть ли резон вкатываться в юньку для мелкого заработка?
Сам дохуя программист, не на C++++ конечно, но освоить за два вечера - неделю не составит проблем. Существует ли тут торговля мелкими заказами/скриптами?
https://github.com/F4kogLc/unity-debug-overlay
осторожно, спагетти код
Заказы - это работа на дядю, который заказывает тебе его игру. А ты делай свои игры.
Работа на дядю, это приходить в офис и выслушивать бредни конченого тимлида, потому что он может поспособствовать урезанию твоей зарплаты.
Искать заказы, это работа на себя. Работая на дядю, ты не выбираешь работу, ты не можешь от нее отказаться, не можешь отменить в процессе.
>Работая на дядю, ты не выбираешь работу, ты не можешь от нее отказаться, не можешь отменить в процессе.
Скорей соглашусь с тем антоном. Разница сильно преувиличена, и на РАБотке можно скидывать на других что-то если не потянул, и договариваться это делаешь это не делаешь, в крупных местах вообще бывает вместо увольнения в другой отдел переводишься. А от заказа тоже иногда нельзя отказаться в процессе, из за репутации или неустойки. Другое дело свое предпринимательство.
>ты не выбираешь работу, ты не можешь от нее отказаться, не можешь отменить в процессе
Не сомневался что игроделу из гд важна возможность дропнуть разработку своей игры спустя два дня после начала этой разработки
Пуппет откуда берётся?
Вангую как раз в том месте, где он берётся, тебе выдают ссылку на один и тот же экземпляр (а потом этот экземпляр батчится в виде нескольких визуальных инстансов на экране).
То есть, это не префаб? Это ты просто скопипастил несколько объектов? Ну, в таких случаях, движки их как раз инстанцируют, для экономии ресурсов, как я обеснил выше. Все эти пуппеты на пикче - это всё клоны одного объекта, изначального. Меняешь один - меняются все.
Я ХЗ. Ты упорно отказываешься показать, откуда в коде берётся переменная пуппет, поэтому всё туманно. Подождём штатных телепатов.
Описываемая тобой проблема похожа на инстансинг (все копии объекта являются одним экземпляром). И точно это определить можно только в строчке, где у тебя инициализируется переменная пуппет.
А вот там справа кнопачька с кружочьком и точечькой. Там есть какая-то менюшка? А в ней есть пункт типа "сделать уникальным"?
> чому при таком методе инициализации проблемы пояляются только с добавлением строки Puppet.SetActive(false); ?
Проблема стопроцентно в твоейм коде. Что делает корутина? Не получается ли так, что когда она заканчивает работу, выполняется он-екзит?
В общем, внимательно просматривай код строчка за строчкой. Принтов туда напихай, например. Еще есть рекомендация, если немного написал, всё убери в сторону и перепиши заново, вот прям с нуля, не подглядывая и не копипастя.
>>40326 (Del)
Проперти пач. Не указывает ли он на один объект?
сегодня вечером зайду за готовым продуктом
Хуйню несешь же
У тебя папет включается колайдером игрока, а выключается любым колайдером, не?
https://assetstore.unity.com/packages/tools/utilities/dungeon-architect-53895
Как это работает? Какой алгоритм используется для генерации? WFC?
Хотелось бы все таки киску.
>Работа на дядю
>работа на себя
Не всё так просто.
1. Ты можешь работать послушным рабом в огромной геймдев корпорации зла, которая делает очередную АААА по надоевшей всем франшизе, не имея никакого контроля за тем, каким будет проект. Сказали сделать говно - делаешь говно, будешь копротивляться - на твоё место большая очередь. А ты думал, почему в ААА так много говнокода, глупых багов и неудачных решений? Потому что решают люди сверху, а рабы делают что прикажут, пытаясь уложиться в установленные сверху сроки. Получил зряплату - свободен, никакой тебе доли с игры. С другой стороны, СТАБИЛЬНОСТЬ, т.е. даже когда галера начнёт тонуть и проект не взлетит или будет отменён, ты всё ещё получаешь обещанную зряплату. Плюс всякие там оплаченные отпуска, страховки, завтраки с обедами, и что там ещё могут наобещать в крупной компании. Рабство не отменили, его просто сделали очень приятным и даже выгодным...
2. Можешь работать в мелкой "инди"-компании, которая работает над своим проектом. Есть вероятность, что тебя услышат, если ты реально полезные вещи говоришь, т.к. в компании 3.5 человека и ты один из самых толковых в своей области знаний. Можешь получать зряплату и/или быть в доле с прибыли проекта. Но, скорее всего, вы делаете унылые клоны клонов клонов на мобилки, а не игры. Да и шансы потонуть намного выше, зряплата меньше и, возможно, нестабильней, но всё же ты работаешь с конкретными людьми, а не с рандомным заказчиком, так что можешь наладить с ними хорошие отношения. Это уже не тот далёкий дядя где-то наверху корпоративной пирамиды, а Петрович, которого ты лично знаешь и с которым даже проводишь время вместе в баре. Но ты ему всё же подчиняешься.
3. Можешь предлагать свои геймдев услуги через биржи фриланса - кому-то скриптик написал, кому-то механику реализовал, а кому-то целую игру под ключ на предоставленных ассетах. Оплата вообще никак не гарантирована, тебя легко могут кинуть, а новые заказы могут не поступать неделями, особенно если требуешь предоплату будучи нонеймом без отзывов на площадке. Контроля за продуктом нет - ты обязан выполнить условия договора, иначе насрут в отзывах или вообще забанят. Фантазии про "ты выбираешь, что тебе делать" оставь при себе - будешь делать то, что удастся урвать у сотни других таких же умников, выстроившихся в очереди к 3.5 доступным и адекватным заказам на бирже. Естественно, платят тебе только за работу, никакой "доли от прибыли". Ещё и демпинговать будешь, чтобы урвать себе хоть какой-то заказик, да только возьмут, конечно, не тебя. Есть шанс найти постоянного клиента, но с ним ты перейдёшь в категорию 2 или 1.
4. Можно делать игру самостоятельно или организовать группу разработчиков вокруг себя. Тут получается 100% контроль над продуктом, но никакой зряплаты самому себе - только другим, а риски максимальны: ты вкладываешь свой личный капитал и можешь ничего не получить, если игра не взлетит. Теоретически ситуацию может исправить спонсорство будущих игроков через известные площадки, но таких как ты умников тысячи - собрать платёжеспособное сообщество вокруг очередной несуществующей игры сложно, даже если твои идеи гениальны и есть куча наработок, а не только пустой фантик с обещаниями. Проще всего будет, если у тебя есть какой-то пассивный доход, на который ты можешь жить и откладывать часть на игру, не рассчитывая вернуть потраченные деньги. Но зато ты действительно работаешь НА СЕБЯ - это твой, личный проект, а не какого-то дяди, который платит тебе или обещает тебе долю. Ты можешь выложить этот проект бесплатно или в опенсурс, если захочешь, и жить только на донаты с патреона, не пытаясь подлизывать игрокам и не используя типичных уловок схемы "купи игру прежде чем поиграть" (все эти фейковые скриншоты, синематик трейлеры, графон и сюжет без реального геймплея и т.д., лишь бы ты нажал кнопку "купить"). Т.е. ты как свободный художник, выставляющий в картинной галерее свои уже выполненные работы в надежде, что они кого-нибудь заинтересуют и ты не помрёшь с голоду, рисуя очередную никому не нужную картину. Вот это - настоящий инди-геймдев, а не работа на дядю.
TL;DR: чем ближе ты к свободе от всяких дядь, тем выше риски и ниже стабильность, а работа на фрилансе - это та же работа на дядю, только хуже, а дяди сменяют друг друга как клиенты дешёвой шлюхи. Проститутки - это фрилансеры, задумайся об этом. Может, будет выгоднее работать проституткой, чем ловить удачу на геймдев фрилансе? Наверняка есть извращенцы, предпочитающие junior unity developer. Разработаешь себе все необходимые интерфейсы и будешь получать больше, чем любой разработчик игр. А ещё проституток любят, а разработчиков игр ругают и даже ненавидят за их игры...
>Работа на дядю
>работа на себя
Не всё так просто.
1. Ты можешь работать послушным рабом в огромной геймдев корпорации зла, которая делает очередную АААА по надоевшей всем франшизе, не имея никакого контроля за тем, каким будет проект. Сказали сделать говно - делаешь говно, будешь копротивляться - на твоё место большая очередь. А ты думал, почему в ААА так много говнокода, глупых багов и неудачных решений? Потому что решают люди сверху, а рабы делают что прикажут, пытаясь уложиться в установленные сверху сроки. Получил зряплату - свободен, никакой тебе доли с игры. С другой стороны, СТАБИЛЬНОСТЬ, т.е. даже когда галера начнёт тонуть и проект не взлетит или будет отменён, ты всё ещё получаешь обещанную зряплату. Плюс всякие там оплаченные отпуска, страховки, завтраки с обедами, и что там ещё могут наобещать в крупной компании. Рабство не отменили, его просто сделали очень приятным и даже выгодным...
2. Можешь работать в мелкой "инди"-компании, которая работает над своим проектом. Есть вероятность, что тебя услышат, если ты реально полезные вещи говоришь, т.к. в компании 3.5 человека и ты один из самых толковых в своей области знаний. Можешь получать зряплату и/или быть в доле с прибыли проекта. Но, скорее всего, вы делаете унылые клоны клонов клонов на мобилки, а не игры. Да и шансы потонуть намного выше, зряплата меньше и, возможно, нестабильней, но всё же ты работаешь с конкретными людьми, а не с рандомным заказчиком, так что можешь наладить с ними хорошие отношения. Это уже не тот далёкий дядя где-то наверху корпоративной пирамиды, а Петрович, которого ты лично знаешь и с которым даже проводишь время вместе в баре. Но ты ему всё же подчиняешься.
3. Можешь предлагать свои геймдев услуги через биржи фриланса - кому-то скриптик написал, кому-то механику реализовал, а кому-то целую игру под ключ на предоставленных ассетах. Оплата вообще никак не гарантирована, тебя легко могут кинуть, а новые заказы могут не поступать неделями, особенно если требуешь предоплату будучи нонеймом без отзывов на площадке. Контроля за продуктом нет - ты обязан выполнить условия договора, иначе насрут в отзывах или вообще забанят. Фантазии про "ты выбираешь, что тебе делать" оставь при себе - будешь делать то, что удастся урвать у сотни других таких же умников, выстроившихся в очереди к 3.5 доступным и адекватным заказам на бирже. Естественно, платят тебе только за работу, никакой "доли от прибыли". Ещё и демпинговать будешь, чтобы урвать себе хоть какой-то заказик, да только возьмут, конечно, не тебя. Есть шанс найти постоянного клиента, но с ним ты перейдёшь в категорию 2 или 1.
4. Можно делать игру самостоятельно или организовать группу разработчиков вокруг себя. Тут получается 100% контроль над продуктом, но никакой зряплаты самому себе - только другим, а риски максимальны: ты вкладываешь свой личный капитал и можешь ничего не получить, если игра не взлетит. Теоретически ситуацию может исправить спонсорство будущих игроков через известные площадки, но таких как ты умников тысячи - собрать платёжеспособное сообщество вокруг очередной несуществующей игры сложно, даже если твои идеи гениальны и есть куча наработок, а не только пустой фантик с обещаниями. Проще всего будет, если у тебя есть какой-то пассивный доход, на который ты можешь жить и откладывать часть на игру, не рассчитывая вернуть потраченные деньги. Но зато ты действительно работаешь НА СЕБЯ - это твой, личный проект, а не какого-то дяди, который платит тебе или обещает тебе долю. Ты можешь выложить этот проект бесплатно или в опенсурс, если захочешь, и жить только на донаты с патреона, не пытаясь подлизывать игрокам и не используя типичных уловок схемы "купи игру прежде чем поиграть" (все эти фейковые скриншоты, синематик трейлеры, графон и сюжет без реального геймплея и т.д., лишь бы ты нажал кнопку "купить"). Т.е. ты как свободный художник, выставляющий в картинной галерее свои уже выполненные работы в надежде, что они кого-нибудь заинтересуют и ты не помрёшь с голоду, рисуя очередную никому не нужную картину. Вот это - настоящий инди-геймдев, а не работа на дядю.
TL;DR: чем ближе ты к свободе от всяких дядь, тем выше риски и ниже стабильность, а работа на фрилансе - это та же работа на дядю, только хуже, а дяди сменяют друг друга как клиенты дешёвой шлюхи. Проститутки - это фрилансеры, задумайся об этом. Может, будет выгоднее работать проституткой, чем ловить удачу на геймдев фрилансе? Наверняка есть извращенцы, предпочитающие junior unity developer. Разработаешь себе все необходимые интерфейсы и будешь получать больше, чем любой разработчик игр. А ещё проституток любят, а разработчиков игр ругают и даже ненавидят за их игры...
>мораль поста: надо было родиться тяном и идти в проститутки, а в перерывах делать игры
так-то справедливо..
> Наверняка есть извращенцы, предпочитающие junior unity developer.
тут надо запостить уже олдовый мемас
@
ТАААК БЛЯ ПАТТЕРН ДЕКОРАТОР, ТУТ ИНТЕРФЕЙС, А ЗДЕСЬ КОРОЧЕ, ПАДАЖЖИ ЁБАНА
@
ДА НУ В ПИЗДУ ПРОСТО ОБА СКРИПТА БУДУ НАВЕШИВАТЬ, КОМПОЗИЦИЯ ЁБАНА
> ПАТТЕРН ДЕКОРАТОР
Не. Тебе нужен паттерн МВЦ плюс паттерн АДАПТЕР. И тогда ты сможешь нахуярить модель любой сложности, с любой иерархией классов, а затем эту модель вывести через юнити, да, навешивая адаптеры модели на монобехи.
мимо Сакутин Роман, директор, учитель, автор текстов и постов
>паттерн МВЦ
а я вот слышал бугурт от какого-то сеньора из юнитехов что в юнити МВЦ и прочие МВ* пытаются тащить перекаты из кровавых энтерпрайзов и что им за это надо бить лица
Хуйню несут, даннинг-крюгеровскую. Геймдев сложнее тырпрайза. Все наработки тырпрайза применимы в геймдеве, потому что там ещё сложнее. Написать бесшовный открытый мир, например, сложнее чем банальный КРУД.
Всё правильно ты слышал. В играх View это рендерер, он уже реализован на стороне движка. А с Юнити вообще многие паттерны идут по пизде из-за невозможности самому инстанциировать MonoBehaviour в нужном месте и что-то сделать в конструкторе.
> невозможности самому инстанциировать MonoBehaviour
А его и не надо инстанцировать.
Ты его прикрепи к сцене а в нём инстанцируй свой ПОК-ПОК-объект с моделью.
POCO-object, если вдруг кто не понял щютку
>Хуйню несут, даннинг-крюгеровскую
Senior Software Engineer at Unity Technologies хуйню даннинг-крюгеровскую несет? ну хуй знает братан..
>>40540
жаль что он не объяснил как правильно в юнитипарадигме работать.
вот у меня такой недавно затык случился: связать проперти на с# объекте(не от моноб) с гуем в обе стороны. а я хз как.
в итоге сделал свой велосипедный компонент с INotify
а как хотел, малой? всё по чесноку
@
СИНИЙ ЭКРАН В КАЖДОМ ВТОРОМ СЛУЧАЕ
@
МАЛЕНЬКАЯ СЦЕНА БИЛДИТСЯ ПО 10 МИНУТ
Спасибо юнитеки, скинул ссылку на игру друзьям. Походу в вебгл нихуя кроме микросцены выкладывать не выйдет.
>>40666
Честно говоря, юнити вообще не пользуюсь, но я читал, что они разрабатывают новое ядро движка специально для веба и мобилок. Когда я последний раз проверял, он был в ранней альфа-стадии и множество фич не работало. Возможно, они уже внедрили его в основную ветку движка и неявным образом переключают с основного движка на этот второстепенный? Т.е. редактор один, а "плеера" у юнити теперь два, для разных целевых платформ.
>всё какое-то пиздец быстрое
Убедись, что правильно используешь дельту времени. В вебгл частота кадров может быть совсем не такой, какая у тебя в нативном билде. В юнити же есть фича, чтобы тестировать игру на разных фиксированных частотах?
Это я криворукий и что-то не так сделал или это прикол у юнити такой?
Конечно, ты криворукий макак, на юнити тысячи игорей в год выходит, у всех все запускается, но только ты прикоснулся к инструменту и все сломал нахой. Изучай, может у них герцовка другая
Я тоже не сижу, но иногда вопросы настолько простые, что можно и ответить.
>сидит в юнититреде
Во-первых, у меня были попытки освоить юнити. Несколько раз в разные года, разные версии. Не то, чтобы не осилил, но мне не понравилось. Во-вторых, тут у вас иногда интересные вещи постят, которые не связаны с конкретным движком. В-третьих, я не "сижу", а изредка захожу, обычно когда вижу с нулевой интересный пост. Я же не призываю переходить на другой движок, не развожу движкосрач. У юнити есть свои преимущества...
>>40791
>у двух других игра играется ВООБЩЕ по-другому нежеле у меня на компе.
Всё зависит от того, что ты подразумеваешь под этим самым "вообще". Скорость? Графика? Физика? UI?
>>40792
>на юнити тысячи игорей в год выходит, у всех все запускается, но только ты прикоснулся к инструменту и все сломал
На юнити тысячи игр в год выходят, но ты в них не играешь на этапе раннего доступа, поэтому о проблемах не слышал и считаешь, что всё у всех прекрасно. Юнити стала мемом не просто так, знаешь ли.
Если б с юнити всё было настолько прекрасно, то:
- юнити не нужен был бы пиар, вот совсем никакой;
- альтернативы юнити никто бы не использовал.
Но это, очевидно, не так - у юнити есть проблемы, глупо отрицать их наличие. Только фанатик будет отрицать наличие проблем.
>Юнити стала мемом не просто так, знаешь ли.
юнити стала мемом скорее от самого тупого хода юнитехов который вообще можно было придумать. неубираемая заставка персональной версии.
у людей появилась и закрепилась четкая ассоциация "заставка made with unity" = "говнище".
при этом есть реально крутые произведения, но если ты не будешь копаться, то даже не поймешь что это юнити.
>тупого хода
>неубираемая заставка
Да практически любой движок во все времена старался вывести своё лого, лого разработчиков и т.д. Это вовсе не тупой ход, а классика геймдева.
Вот если бы ты делал велосипедный движок, тебе бы самому не хотелось гордо показать лого движка и надпись "сделано на движке АнонЭнжин"? Наверняка хотелось бы, иначе зачем делать движок...
>если ты не будешь копаться, то даже не поймешь что это юнити
Достаточно открыть папку с игрой, все игры на Unity имеют крайне характерный набор файлов и папок. Да, о нём нужно знать, чтобы узнать, но я к тому, что скрытие логотипа на загрузке не поможет скрыть движок.
Куда сложнее узнать движки, которые не имеют строгой организации файлов, т.е. на которых все игры организованы по-разному - в таких случаях нужно смотреть внутренности исполняемых файлов на наличие каких-то маркеров (имена функций, модулей и прочее подобное). Но такие движки редко подходят полным новичкам.
>юнити стала мемом
Потому, что юнити слишком хороша. Не будь она настолько проста - легион дебилов не смог бы пить кривые подобия игр, не вынимая рук из жопы. Это основополагающая проблема движка, всё остальное просто надумано. Ну и реверс за два клика, но это не так уж и важно.
>Всё зависит от того, что ты подразумеваешь под этим самым "вообще". Скорость? Графика? Физика? UI?
Скорость, у них сильно быстрее чем у меня. В годот-треде подсказали куда копать. Я еще нагуглил что мне возможно имеет смысл поиграться с разными видами апдейта. Короче, работаем.
В результате этого "тупого" хода у меня связалась ассоциация что даже конченный дебил может работать на юнити, я стал копать какие еще игры сделали на юнити и увидел что пряморукие сделали вполне себе годно и у меня сложилось впечатление что это дружелюбный движок с низким порогом вхождения, который может давать охуенный результат если постараться. В итоге работаю на нём.
https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop
от сделал вот такой гуй блокировщик т.к. у меня есть несколько трансформ под которыми будут динамически спавниться кнопки и прочие Selectable, то надо их все собрать.
Block() Unblock() повешу на OnClick кнопки.
насколько я стреляю себе в ногу подобным линком в GetSelectables()?
насколько часто вы вообще линк применяете?
а может вообще имеет смысл сделать иначе? что-то типа свободно висящей трансформы со спрайтом(в канвас есть слои?), а на клике растягивать ее на все окно. спрайт будет перекрывать все под собой(наверное) и будет тот же эффект
Не пойму что ты пытаешься сделать? Тебе надо что бы игрок не мог нажимать на кнопки? Так делай у них в компоненте кнопки интеректабле=фалсе. Если же тебе не надо засчитывать нажатия, делай внутри проверку на включенный флан. Ну а если тебе по какойто причине надо их наслаивать друг на друга и регистрировать только одну, то у всех остальных делай компонент рэйкасттаргет=фалсе, и врубай как понадобится.
Не не понятно что ты там навелосипедил, если скорее всего это решается простыми действиями.
>Как вообще юнити справляется с множеством лоуполи 3д объектов?
Вспомнил этот видос: https://www.youtube.com/watch?v=G9Otw12OUvE
>Так делай у них в компоненте кнопки интеректабле=фалсе.
чел я это и делаю ало ты даже не читал что я писал что ли? у меня они динамически создаются
По идее если ты просто рейкастблок сделаешь на родительский элемент, то кликать на детские компоненты Ui не выйдет, так что можешь сделать так вместо того чтобы вытягивать детские компоненты селектом и потом циклом по ним проходится.
Чтобы расход памяти снизить. Я нашёл как в AssetBundleExtractor экспортировать и импортировать Texture2D в png, но это дико медленно происходит, чтобы вытащить 500 картинок, пережать, вставить обратно в бандл, сжать его через lz4, уходит 30 минут, а таких бандов 25 штук. Неужели нет способа сразу в бандле сжимать картинки.
Просто мне казалось, что если компьютер не может что-то обработать, то будут резаться кадры, а не просто игнорироваться куски кода.
кал
>new, Unity networking framework
они опять высрали P2P-дерьмище которое копирует unet.
в чем смысл?
>>41120
Ты хотябы пользовался последним ассетом нет обжектов? Это небо и земля в сравнение с тем калом что было.
Ты буквально за вечер можешь сделать архитектуру игрок-игрок, или сервер-игроки.
То что у них на гите это рак энтерпрайза, и то как обычно анону делать не следует, но полезно для чека при разработке.
Неужели для нормального графена нужно обязательно качать приблуды с нодами или самому шейдеры писать??
Версия Юнити - 2020
Допустим, простой пример - мне нужно назначить в материале карту АО, для которой развёртка во втором канале (UV01) - ну и как это сделать стандартными средствами?
Можешь подробнее расписать. Хотя наверное нужно для начала понять, что делает именно Time.timeScale и за счет чего она ускоряет частоту апдейтов и прочее.
Ускорят мир игры через глобальный скейл это ужасная идея. Если нужно что-то ускорить, просто делай это в скрипте объекта. Там скорость или что надо увеличивай.
>Это небо и земля в сравнение с тем калом что было
И в чем разница? Наследование от NetworkBehavior. пердолинг с if (IsServer)
>за вечер можешь сделать архитектуру игрок-игрок, или сервер-игроки
как и на старом unet'е. накидать компонентов можно было за пять минут.
проблема не сетевой архитектуре, а в пердолинге с p2p
>>41254
Пытался вкатиться в мультиплеер года два назад, перепробывал все бесплатные решения, и забил. Базу сделать просто было, но как только происходило усложнение геймплея и синхронизация сосал член.
Сейчас же ради интереса вкатился на релизные нет обджекты, и буквально за 2 дня родил рабочую версию того что не удавалась неделями тогда. Тупо есть инфа, примеры, и все работает и не глючит.
> Это я криворукий
Это.
Неглядя могу сразу предположить, ты перемещения сделал без привязки ко времени.
После старта убери GameObject[]
>насколько я стреляю себе в ногу подобным линком в GetSelectables()?
Лучше больше контроля, кешировать кнопки которые ты заблокировал и уже их разблокировать и удалять из списка, не будешь постоянно геткомпонент при анблоке использовать, использование HashSet ускорит при большом кол-ве элементов.
В первом объекте, не префабе текст после запуска игры сохраняется. Во втором объекте экземпляре префаба текст исчезает. На третьем тоже экземпляре я ввожу тот же самый текст через инспектор и он после запуска не пропадает.
Вопрос почему на втором объекте он пропадает? Причем таким же способом вводил int и float они сохраняются. Пробовал разные версии юники везде так же.
Ну всмысле хуй, я весь форум юнити по ключевым словам просмотрел, и погуглил. Но вроде казалось бы очень рядовая проблема, но ее решение я не нашел нигде.
Пиздец нахуй. я на этой доске относительно давно уже пержу, но я еще не видел ни одного вопрошающего, кроме меня конечно, который нормально отфоткает код и ошибку и нормально поставит вопрос.
Нихуя не понятно карочи, но возможно, что проблема в публичном модификаторе доступа к массиву. Типа юнити его автоматом создает, чтобы показать в редакторе. Там как-то так работает. Попробуй заприватить его переменную. Или не присваивай ей значение в старте.
когда ты меняешь префаб через скрипты, то меняются данные самого префаба
когда ты изменяешь в редакторе, то меняются данные экземпляра этого префаба на сцене
наверное из-за этого что-то
менять поля экземпляра префаба надо через API редактора
это типичная ошибка новичков, когда пишут прямо в префаб и ломают его
Хорошо, ты сказал, что через скрипт я меняю основной префаб. Тогда вопрос, почему я тогда когда наживаю на префаб не вижу в поле значение, которое я <<якобы>> изменил.
Потому что изменения вносимые в плеймоде не сохраняются в редакторе мейби? в отличии от скриптабле обжектов конечно
Где ты видишь включенных плеймод? Я вношу изменения с выключенным, через [ContextMenu("test")]
я ебу как ты там вносишь, вкинул 3 скрина на которых ровно нихуя и тебе должны чета пояснить.
короче, я потестировал. у префаба сбрасывается все поля измененные через прямое присвоение в скрипте, после выхода из play mode, потому что юнити не может определить эти изменения, и после выхода из режима восстанавливает состояние префаба до оригинального. для обычных объектов на сцене не сбрасывается
если тыкнуть в поле префаба, то изменения подхватятся
как я и писал, нужно изменять поля префаба через специальное API
>Так подскажи если знаешь
Нет смысла.
Голодному надо дать удочку https://learn.microsoft.com/ru-ru/dotnet/csharp/
или ты так и будешь постоянно спрашивать простые вещи
Поле Spawned в компоненте покажи, у тебя поди 0 в редакторе стоит. То что ты в скрипте Spawned = 3 поставил это дефолтное значение которое перезаписывается значением из редактора.
private int Spawned = 3;
И хули ты это не заскринил, долбоящер?
ПикселЕй жалко
Но заскринил жи
Никак, пиши в системных требованиях интел с нвидией
А версия юньки у тебя какая? Лонг тайм саппорт или бета какая-нибудь? Выборку амудешников увеличь за счёт расшара билда в группах в вкшечке для игроделов или тут среди анонасов. Вообще надо на доске создать тред для билдов и отзывов, взаимный тестинг игор
>Лонг тайм саппорт
Оф корс
>Выборку амудешников увеличь за счёт расшара билда в группах в вкшечке для игроделов или тут среди анонасов. Вообще надо на доске создать тред для билдов и отзывов, взаимный тестинг игор
Ну ок, найду еще X амдшников, у которых не работает и чё делать с этим?
>Ну ок, найду еще X амдшников, у которых не работает и чё делать с этим?
Обзывать их и поливать грязью
включаешь то что на скрине, чекаешь Player.log, Player-prev.log
Вот это уже что-то дельное, спасибо. Есть ли вообще книга или курсик чтобы читануть как дебажить билды?
забей, возможно просто у твоего друга дерьмо вместо железа, просто нужно разобраться в апдейтах, Time и не юзать unsafe код
Есть спавнер который спавнит противников и заносит их в свое поле геймобжектов. Хочу что бы спавнер уничтожался как только наспавнит нужное количество
Проблема:методом Destroy он уничтожается вместе с полем наспавненных противников
Как отвязать наспавненные объекты от спавнера ?
вопрос снят
Для такого лучше юзать корутину, там можно задержки выставлять, безопаснее и управлять можешь получая инстанс корутины чтобы её в любой момент убить.
Если у тебя много объектов используй пул, дестрой дорогой.
Двачую, еще возможно не помешает небольшая стейт-машина, чтобы определять когда можно спавнить и не плодить вложенные условные операторы аки яндередев.
Очинь абидна. Почти так же абидна, когда вызвал шлюху с полной предоплатой, а приехала твоя уродливая мамаша.
Спс.
Нормальный код не требует комментариев. Если конечно не приходится писать дичь требуемая в гдд
другой анон
Хз где у тебя не требуются они, может во влажных фантазиях а не настоящей разработки игр, где у тебя в скриптах по 1к строк и сотня функций, ну ок.
>Нормальный код не требует комментариев
Сразу видно того кто больше одной строчки хелло ворлда не писал.
Дать бы тебе фиксить проект без комментариев с "понятными названиями переменных", посмотрел бы на твое ебало.
Погугли decoupling, суть в том чтобы максимально отвязывать классы друг от дружки, чтобы при изменении одного класса другой класс никак не задевало, это и на читабельность кода влияет, когда можешь спокойно читать код не прыгая между классами чтобы понять что происходит.
ну как грится с почином, добро пожаловать в клуб элитарных реактивоэвентдривенгоспод, не забудь отписаться
Тут я тоже не понял нихуя. Но новая импут система клевая
Берёшь готовый контроллер от юников, чекаешь как работают и обрабатываtтся там импут от игрока. Браво вы полностью познали новый импут за час.
Да вроде постоянно пишу, так что не попал.
Упрощает? Ну если в шутанчике можно отвязать прыжок от цикла обновления, то в сложных играх так не получится (или например если надо проверить ввод внутри коруитны)
И в довесок еще бы имитировать баллистику. Кет лайк кодинг варинт не хочу.
>надо проверить ввод внутри коруитны
Зачем это делать прямо внутри? Тупо подписываешься на эвент, при срабатывании меняешь булево значение, которое проверяет корутина, и всё. И это самое первое что в башку пришло. Но так или иначе имхо лучше избегать в корутинах делать проверку инпутов в принципе, да и вообще делать что-то кроме одного действия, ради которого корутина и заводилась.
>Тупо подписываешься на эвент, при срабатывании меняешь булево значение, которое проверяет корутина
Вот бы была функция, которая бы делала этого автоматически без необходимости заводить переменную. Ах да, она называется Input.GetKey()
>лучше избегать в корутинах делать проверку инпутов
Например машина состояний для персонажа. В разных состояниях сделаны разные действия на одну кнопку
>Ах да, она называется Input.GetKey()
Эх щас бы каждый фрейм функцию дёргать когда можно только когда надо по подписке менять значение. Вас опыт яндередева ничему не научил?
Игра обновляется внутри вызываемых движком функций обновления, а события ввода случаются при нажатии кнопок. Возникает проблема как это синхронизировать между собой.
Не просто так во всех движках сохраняется состояние ввода, которое можно потом проверить в апдейте.
Аниматион эвент походу.
Ничего себе ты умный. Может для рогалика будет удобно ловить эвент нажатия кнопки чтоб перепрыгнуть персонажем с клеточки на клеточку, но в риалтайм игре без апдейта все равно не обойтись знаешь ли.
>без апдейта все равно не обойтись знаешь ли
но как бы хотелось.... унитеки - собаки на сене. на примере трансформ.
ХОЛОП-ИГРОДЕЛЕЦ, НА КОЖАНОЙ ДУДЕ ИГРАТЬ УМЕЛЕЦ:
-господин движок, проверь пожалуйста в этой функции апдейта каждый фрейм не пришли ли изменения в мои трансформы и если да, то посчитай вот это и это
-господин движок, проверь пожалуйста в этой функции апдейта ...
-господин движок, проверь пожалуйста в этой функции апдейта ...
КРЕСТОХТОННЫМ БАСОМ СНИЗУ:
-э слыш, если тебя поменяли хрюкни, а мы подхватим и решим стоит ли тебя пересчитывать. холопу сверху hasChanged поменяй.
На практике это мало чем поможет, потому что тебе надо еще и знать значения нажатости других кнопок. В результате ты на события начнешь заводить флаги
isLeftPressed = true
И вернешься к полному дублированию GetKey
Что в плане оптимизона лучше, проверять булево значение каждый фрейм или вызывать getkey? Или одинаково?
так если такая проблема возникает наверное имеет смысл уже полноценную стейт машину делать нет?
>новая импут систем умеет в ивенты, инжой фолкс
двачую
https://www.youtube.com/watch?v=kP7BawiCCZU
>>41601
>>41581
Форматирование в разнобой, около = почти везде пробелы рандомно стоят, private гдето есть где то нет
Не используется вар
Нет RequireComponent для NavigationPoint
Сразу понятно, что с зонами ответственности чето не то - спавнер еще и за уничтожение отвечает(он же спавнер???), есть зависимость от controller, хотя спавнеру должно быть пох на него
Ну и понятно, что controller походу там божественный класс, который отвечает за все.
Непонятно зачем nextWaveCountdown, и почему тебе его надо именно в апдейте обновлять
Но тем не менее, ты молодец если ты новичок, видно, что ты тем не менее все это не просто так делал, а вполне сделал че хотел, особо не заморачивайся с тем что я написал
>>41549
> Как отвязать наспавненные объекты от спавнера ?
Ну через transform.parent поменять
Ты расписал конечно по красоте, но ответь на один вопрос. Ты игры делал когда нибудь? В соло?
Вопрос риторический конечно же, те кто делали и так всё понимают.
Ну тогда должен понимать что в реальности происходит не твои маняфантазии, а реальная разработка. Без обид, но ты походишь на того пчелика который ходит срёт по тредам говоря про солид методы и т.д. Т.е безигорного шиза.
Так наоборот же, как раз в реальности разработка загибается если забить на всё это, код становится неподдерживаемым, баги вылезают из самых неожиданных мест, любую новую фичу добавить сложно, новые разработчики на проекте не понимают че происходит.
А если и не загибается окончательно, то только потому, что разрабы молодцы и героически пробиваются через говнокод не теряя рассудок, впрочем делать дело они будут медленно.
>Ну через transform.parent поменять
не лучше ли тогда SetParent(parent, false)
тогда можно будет определить точку спавна/точку пула и оно сразу туда прыгать будет без лишних манипуляций с позишеном
а сам спавнер где угодно можно будет держать
Работает-не трогай
1280x720, 1:02
К сожалению как вижу игры ты никогда не заканчивал, а может даже и не делал. Возможно ты работаешь веб-макакой думая что игры делаются как и сайты, но огорчу ты не прав полностью.
Я повторю что ты пишешь совершенно верные мысли в плане логики, но в реальности когда ты соло индюк это можно смело выбрасывать на помойку, потому что делать игру годами у тебя нету времени. Жизнь закончится быстрее чем с таким подходом игру сделашеь.
Я мимопроходил, пилю первую игру, говнокожу пиздец, откладываю день великого рефакторинга на потом, пока не сделаю базовый геймплей. Я так понимаю этот день возможно никогда и не наступит?
база
помню смотрел код какой-то распиздато продавшейся инди игрулины, а там ебать колотить богокласс гейм менеджер
соло индюкам главное нахуячить и продать, а потом можно и повыебываться с солидами етими и прочей нужной темой...
Реальность:
1. Художник уныло таскает текстурки по 100+ часов чтобы морда норм смотрелась
2. Программист пялится в монитор по два часа, чтобы нахуярить три строчки
>Художник уныло таскает текстурки по 100+ часов чтобы морда норм смотрелась
Да нет такого, я подписан на канал зебры, некоторые за трансу в несколько часов могут хайпольку чуть ли не под продакшн заделать
Ну не 100, а 3 часа, ок, но они там не танцуют и поют, а напряжённо пялятся в монитор и дёргают мышку или стилус, суть в этом.
Спокойствие, всё это и придуманы для экономии времени, потому что в противном случае огромное количество времени тратится на постоянное переписывание, поиск багов и выдумывание костылей для новых фич.
> Возможно ты работаешь веб-макакой думая что игры делаются как и сайты
Я работаю геем-девелопером
>Сразу понятно, что с зонами ответственности чето не то - спавнер еще и за уничтожение отвечает(он же спавнер???), есть зависимость от controller, хотя спавнеру должно быть пох на него
Ну я подразумевал, что это фабрика.
>Ну и понятно, что controller походу там божественный класс, который отвечает за все.
ровно 3 функции. запуск игровой доски. подсчет золота и жизней и содержание соотвествующих эвентов. Возвращаясь к предыдущему и как типа чтоб по красоте золото считать игрока? Делегат чтоли передавать?
>Непонятно зачем nextWaveCountdown, и почему тебе его надо именно в апдейте обновлять
это у меня был задел на тот момент, если игрок запустит новую волну вручную, то его премировать золотом в размере оставшегося времени. Т.е. действительно это просто счетчик, который не делает ничего сейчас. И у меня такая стема спавна, что вероятно я вообще его и функцию ручного запуска волны удалю.
>делать игру годами у тебя нету времени
но ты ее и будешь делать годами с таким подходом
там, где профи за 3 месяца запилит всю архитектуру игры чисто и без багов, ты будешь наступать на свои написанные грабли несколько лет.
такой подход оправдан только в каких-то совсем простых платформерах
Боже, какой кал.
Делаю синглтон с функциями вида bool GetJump() => Input.GetKeyDown(KeyCode.Space)
на релизе меняю на чтение кнопок из конфига. Все.
Никакого пердолинга с настройкой кнопок в редакторе, с маразматичным API считывания этих действий и т.д.
>знать значения нажатости других кнопок
они это вынесли в сам ассет. теперь надо запрограммировать ассет кнопок ввода
В таком простом случае да, преимуществ не видно, но там можно врубать и вырубать контроль, например при входе в меню вырубать контроль персонажа, настраивать на разные виды инпута, а в классе управления персонажем получать сразу тупо вектор, и куча разных приколюх для корнеркейсов.
Конченная презентация. Половину рассказывал про генерацию карты без практических подробностей. Вторая половина это пук-среньк мы использовали джобы для LOD'ов. Только время потратил.
Спасибо, сохранил время. Юнитеки вообще у себя нак анале что-то годное выпускают или там остальное такой же кал?
иногда из тырпрайс саппорт клетки на сцену выпускают чела который про бест практис рассказвает, не помню как зовут
Я создаю список модулей, из которых в игре будет собираться перс. Но пресеты некоторых типовых моделей персов надо собирать в эдиторе. Раньше было просто, поскольку пресет это тупо список айди модулей, а связность с функционалом устанавливается уже в рантайме, когда персы инициализуются. Но сейчас характеристик у модулей становится много и я захотел чтобы в эдиторе было видно, какие суммарные характеристики получатся у итогового перса, а для этого модифицировал эдитор чтобы он плюсовал все характеристики от всех модулей и выводил списочком. Но менеджер, в котором хранятся данные модулей, до рантайма не существует, на него не сошлешься в эдиторе. Оттака хуйня. Дайте советов мудрых. Пока в голову приходит пилить внутриигровой редактор персов и на нем напиливать ассеты дальше, но нет ли блядь пути попроще чем пилить отдельную игру для создания игры?
Сделать скриптабле обжекто. который создается персом и куда перс сливает статы со всех модулей. хз
Сейчас нет. Раньше в старых unite конференциях попадалось что-то годное.
В принципе ничего не поменялось, можно смотреть их
Хотя вот полезное видео про новую систему UI
https://www.youtube.com/watch?v=J2KNj3bw0Bw&t=647s
Просто они несколько лет уже не делали свои unite, поэтому у них на канале ничего интересного за это время не было
Я просто хотел сделать 3Д мультиплеерную мочильню и сперва взялся за юнити как за более дружелюбный движ, но чёт уеч теперь кажется дружелюбнее и изичнее даже. Разве что с крестами проблемы будут, но если окажусь совсем хлебушком говорят блюпринты вполне норм.
Серьезно подумываю попробовать уеч теперь. Вы не пробовали еще?
Да, я безигорище, но я хочу сделать игру побыстрее, и уеч возможно мне поможет, в чём я не прав?
в том что даже из готовых ассетов не у каждого выходит сделать интересную игру и далеко не каждая выстреливает
Дак а я тут причём? Я тут где-то заявлял что ща повторю успех майнкрафта? Я просто хочу сделать свою игру с как можно меньшими заёбами, будет она заебатой или нет уже покажет практика. Просто я не так далеко еще ушёл в своей разработке на Юнити чтобы не срыгнуть куда-то еще, на переделку уйдёт максимум месяц. Вот и думал может тут кто уже пробовал и поделится подводными камнями.
добавляешь поле в свой монобех:
[SerializeField] private MySettings mySettings
класс наследуешь от SO:
public class MySettings : ScriptableObject
{
//..
}
и перетаскиваешь свой SO на монобех
1.добавляешь OnValidate() на свой монобех
2. в нем раскидываешь данные с перетащенного SO на свои поля и прочее
OnValidate срабатывает каждый раз когда ты меняешь референсы в эдиторе
причем ввод данных можно сделать данные в любом формате хоть с жсона какогонибудь(TextAsset) хоть SO хоть аллаха
очень удобно
Поясняю ёбана, короче находишь НАПРАВЛЕНИЕ и по нему выстраиваешь кватернионом поворот. Для нахождения НАПРАВЛЕНИЯ берёшь позицию объекта в сторону которого нужно направить стрелу и отнимаешь позицию стрелы, это всё Vector2 есессно. Потом берёшь это НАПРАВЛЕНИЕ и при помощи Quaternion.LookRotation(НАПРАВЛЕНИЕ, ВВЕРХ) делаешь заебись.
Спс. все эще нихуя не работает)))) но я точно на верном пути
двачую
Ноль полезной инфы. Можно заменить все видео одной фразой "мы использовали типа csg брашей для создания террейна". Как они сделали эти браши, как они сгенерировали террейн из них - не показали.
Больше похоже на видео самопиара и похвальбы, чем на полезную презентацию для разработчиков
Бля, но реально можно сделать карочи так лол)))) типо апгрейд башни лучника, вместо классической стрелы лучник выпускает срелосюрюкен, который бьет в аое)))))))
ну сделай как пасхалку с шансом 0.1%
Мне надо сбросить оси икс и зэт в ноль, при этом не сбрасывая игрек
transform.rotation=Quaternion.Euler(0f, transform.rotation.y, 0f); не подходит
Ну как сделать
1244x720, 0:10
ты хочешь чтобы при перемещении в 3д пространстве биллборд крутился в направлении движения в экранном пространстве?
Надо по параболе стрелу запускать
Если 2д стрела будет лететь по прямой то будет сильно всрато выглядеть
Ну тут сыглы конечно. Но времени тупо нет на такое. Если к назначенному сроку не успею рабочий билд сделать, то буду уже красоту наводить пытаться, хули уж. А так для первой игры и так сойдет в принципе.
Ща в баньку схожу и захуярю.
Возможно переменную можно как то обозначить что бы она могла подсасываться сторонними объектами через скрипты но при этом не засоряла окно инспектора?
юзай атрибут hide in inspector, по типу space.
>она могла подсасываться сторонними объектами через скрипты
Для этого правильнее юзать свойства
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties
это затравка на будущее если понадобится какая-то логика там, а у тебя уже и место куда ее положить есть и приватное поле тоже т.е. обозначенное не меняется, все классы кому надо как работали через гетсет так и работают, а что внутри происходит их не парит
Ну типа вектор один это вектор показывающий направление оси х трансформа, которая соответствует направлению стрелы. Вектор два это вектор от стрелы до цели. Игрик в обоих векторах выравниваю, чтобы расчет угла между векторами происходил строго горизонтально, без этого косоебит стрелу. Ну и карочи по факту надо чтобы вектор один имел то же направление, что вектор 2. Угол, на который довернуть, мы только что вычислили. В самом еулере 60 это угол наклона билборда. На самом деле все это скорее всего делается проще через функции камеры вообще.
640x578, 0:19
на крутых углах (если стрелять вверх) получается нереалистичное вращение
вот эти вот темы типа умножения ротейшенов или векторов это вообще такой темный лес.
В школе учился на 2-3. В универе уд. В гробу видел ту сухую дрочь с цифрами, но при этом успешный гейдевелопер, где твой бог сейчас?
Алсо все механики уже придуманы до нас, остаётся только найти пример, разобрать, и сделать по аналогии.
1856x1080, 0:15
сделай что стрела летить немного строго влево или вправо долю секунды, потом удаляй. никакого смысла в этой летящей стреле все равно нет
Как выше сказали можно либо убрать саму стрелу, и спавнить её на долю сек.
Или спавни, поворачивай на противника, и пусть летит прямо. Не забывай что стрела это спрайт который находится вложен в пустой гм.
>Или спавни, поворачивай на противника, и пусть летит прямо.
Вот насчет такого тоже думал, да.
ну может быть.
Может за тебя игру ещё сделать?
Две секунды поиска в гугле дали мне понять что это какой-то закрытый форум.
1. Там есть сливы ассетов?
2. Как туда попасть?
а у нас?
Я душнила и мне не дают просто
Душевно чтобы было. Типо выбираешь клип - эвент не работает. Выбираешь обьект в иерархии, жмешь опять на этот же клип и этот обьект уже внесен в эвент и это нихуя не понятно интуитивно как ты откуда что открыл вообще.
легальная халява:
https://github.com/HotpotDesign/Unity-Game-Assets
пиратобратушки из ЮВА:
unityassetcollection.com
ну и конечно же рутрахер кудаж без него
А кто таким не был?
>>42328
Насчет юнити эвентов анимации, то че у меня пердак отлетел, эта ебаная залупа не может мне выдать длину клипа флоатом в секундах. Т.е. у меня запускалась анимация атаки. Параллельно с ней, запускалась корутина, которая считала время этого клипа и по его истечению меняла стейт анимации. Я попробовал достаточно много всего и получил хуй, вместо времени, указанного в клипе. Но зато пришел к тому, что нахуй мне это время, если я после последнего кадра клипа могу повесить эфент, который и поменяет стейт аниматора.
>модификаторы доступя для пидоров
Всё так, я гордный индюк, в мой буду лезть только я и хакеры если игра увидит свет.
Ну так навскидку не скажу, мб что-то из ui спиздить или еще чего-нибудь
Ну зачем тогда рекомендовать его
спи спокойно, о том что ты peedor знают только компилятор и ты азаз
При вскрытие юнити игры функции и переменные разве не сохраняют свои названия? Объекты на сцене? Префабы и другие ресурсы?
Ну если хочешь на мир, будет на мир.
Или там можно как-то на виртуалке изъябнуться?
если не заморочиться то всем мамкиным декалпеляторам видно да.
но я про модификаторы доступа, по умолчанию даже без него все приватное.
мужик тот прав, ОСОБЕННО про пустые юнитиметоды.
старт, апдейт и т.д., даже если они пустые - все это все равно дергается движком и отъедает производительность буквально, литерально на пустом месте.
и сокращения не нужны писать так надо чтобы самому понятно было через год даже если никому больше показывать не будешькак по мне это самое сложное придумывать осмысленное название
всем желающим поучить стиль рекомендую прочитать положняк:
https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions
еще можно настроить студию на то чтобы орала когда что-то не очень правильно делаешь
и если насвинячил а ты студиябоярин то ctrl+KD и нормально
>старт, апдейт и т.д., даже если они пустые - все это все равно дергается движком и отъедает производительность
дефрагментатор, это ООП. если ты не напишешь метод, то его все равно подсунет сисярп в базовом классе. Ну и конечно вменяемый компилятор выкинет такой вызов (по крайней мере обычный .net умел это 14 лет назад https://stackoverflow.com/questions/11783/in-net-will-empty-method-calls-be-optimized-out
Шиз, спок
Какой же Сакутин тупой ебанат это пиздец.
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;
Нормально все он сказал, это все фиксится за 1 минуту, но код становится лучше. Когда у тебя тьма кода то ты уже это фиксить в каждом скрипте заебешься, на работе тебе апрув мерж реквеста на такое не дадут, будешь исправлять.
когда новый файл в студии создаешь такая же простыня появляется?
в качестве временного костыля, прогони через пикрелейтед, по умолчанию он вычистит тебе все пустые юзинги и т.д.
Когда новый скрипт создаю по умолчанию обычные три using ставятся System.Collections, System.Collections.Generic, UnityEngine. Два из них сразу тру и всё окей.
Трабла то снова и снова повторяется в разных скриптах, в этом проблема.
>в качестве временного костыля, прогони через пикрелейтед, по умолчанию он вычистит тебе все пустые юзинги и т.д.
У меня точно ничего лишнего не потрётся? Очкую давать бездушной машине мои скрипты чекать на наличие чего-то что она посчитает не нужным, у меня пиздец большая игра с кучей говнокода.
>>42429
Так ты не понял, это хрень появляется в скриптах которые я даже не трогал с момента создания, по типу мелких на 5-20 строк у которых совсем маленькая задача и про них даже не вспоминаю. Да и все эти строки всегда серые и не используются, у меня примитивные код без специфики в основном.
чё не так? или это вна галерах рабов таким образом пытаются переформатировать?
тебе ведь эти корутины запускать надо будет и т.д. и все ради того чтобы эмулировать апдейт, зачем добавлять себе головняк и еще целую кучу точек отказа?
так же и с менеджером апдейтов, вроде идея хорошая, но так ли уж поможет?
надо смотреть что конкретно у тебя в проекте творится и от этого плясать
Вообще было бы полезно знать скольк 1 пустой апдейт образно жрёт производительности для ясности.
К примеру 1 апдейт жрёт 0.01% и сразу будет понятно стоит ли игра свеч.
Опять этого выблядка кинул. Напомню базу, этот человек имеет убыточную геймдев студию, основной приток капитала идет с гоев, которые покупают его курсы. Их игры это гиперказуальная хуйня, которая даже в своем жанре не добивается особых успехов.
так просто не используй пустые апдейты и проблема не возникнет вообще.
Чисто личный вопрос. Что важнее в жизни. Сделать/делать хорошую/игру мечты или выпускать гипервизуальный-мобильный кал но который приносит доход??
Вот интересно мнение, на что надо тратить свою жизнь?
Ты вопрос то свой читал хоть?
получается доебы чисто для продвижения своих курсов.
понятно.
ясно.
почему русегмент такая параша посоны?
>почему русегмент такая параша посоны?
потому что в ней есть такая токсичная параша как создатель бесполезного говновидео про ОБОСРУ КОД НОВИЧКА. потому что у хохлов до сих пор интернет работает
Component[] components = hit.collider.GetComponents(typeof(Component));
foreach (Component comps in components)
{
Debug.Log(comps.name);
}
Зарабатываю без курсов.
Короче надо вызывать эти функции, но не дергая по отдельности каждый раз разный геткомпонент, а как то в массив их поместить?
Есть вообще такая штука как засунуть разные скрипты в массив и вызывать их там не знаю, от имени или по индексу? Знаю только что одинаковые сущности можно.
Причина баха?
>RDragon
>Night Train Code
>Emerald Powder
>NoobGameDev
>Лавка Разработчика
>Unity Оk
Спалил годноту, но мне не жалко. Еще есть с десяток менее хороших, вплане позновательности каналов, но тоже достаточно занятных. Все в ру сегменте нормально, просто надо душить таких цыганей как Сакутин и отговаривать людей покупать курсы.
С одной стороны у меня бесплатное самообразование c возможностью в любой момент связаться с авторами видео и спросить некоторые моменты, с другой 150к за курс который научит меня делать казуальный кал. А судя по роликам, что кидал аноны там требования апдейты пустыми не делать и между объявлениями полей и началом класса пробелы ставить.
КАк его использовать назуй? Пишу myAnimator.CrossFade(name,time,PlayMode.StopSameLayer);
выдаёт ошибку error CS1503: Argument 3: cannot convert from 'UnityEngine.PlayMode' to 'int'
У тебя на скрине класс анимация, а ты судя по всему вызываешь метод класса аниматор, у которого другой набор параметров уася.
Содержимое:
- Наработки по боёвке;
- Наработки по генерации уровней;
- Персонажи, звуки, и т. д.
https://anonfiles.com/1fI5jfK0y8/NightFall_rar
>но ведь скрипты инактивного объекта не должны же работать
должны, но не будут юнити ивенты Awake, Start , OnEnable,
Вот это он викинг конечно
Как выйдет в релиз и пофиксят баги переползу на него, слишком он хорошо, как тот же текстмешпро по сравнению с ванильным ui.
Пиздец, как же хочется. Скрафтить хоть немного сложный интерфейс с менюшками на старой системе юнити просто нереально нахуй. И в то же время как же просто все делается на HTML. Я уже сколько лет не могу начать делать ебаную игру тупо из за того, что интерфейсы не в состоянии запилить на юнити. Вроде есть движки, позволяющие делать десктопные приложения на html, но там другая беда - жабаскрипт. Насколько хорош и красив шарп, настолько же уродлив этот язык.
им надо было не эту шляпу велосипедить а тупо выкупить doozy ui
Почему?
Красота. Прям сейчас советую заползти в профайлер и открыть окошко статс дабы следить за фпс и производительностью, пока не поздно начать фиксить проблемные места.
дрочат дро колы
Кого? Тебя? Лол)) Ну-во первых, ты гандон, который неоднократно был замечен за тем, что целенаправленно подсирает новичкам. В принципе этого уже достаточно, чтобы твоим мнением подтирать зад, чем я и занимаюсь. Во-вторых, ебал твою мамашу шлюху.
Podcastle.
Может тебя тоже во властелине колец фродо заебал? Мистер Фродо, я не могу нести кольцо вместо вас, но я могу нести вас вместо кольца. О Сэм. звуки жаркого секса
Да.
962x542, 0:13
есть пикрелейтед
вроде бы работает но в апдейте получилась ебенячая лапша из ифов
имеет ли смысл это перетащить на что-то типа стейтмашины или не стоит ебать себе мозги и усложнять если оно работает и каши не просит?
выделил три состояния:
1. поиск компонента (рейкаст)
2. подсветка (есть хит из известных коллайдеров)
3. перетаскивание(есть хит + зажата мышь)
>вроде бы работает но в апдейте получилась ебенячая лапша из ифов
Что-то мне подсказывает, что у тебя эскобар. Поэтому не трать время.
так уже потратил время и переделал и в процессе нашел две проблемы которые теперь не должны возникнуть в принципе
спасибо двощик
молодец
1856x1080, 0:43
Тогда ложись спать пораньше, писунчик.
>переполз на "новую" версию
>вот эта параша при каждом открытии
>проект на м2 нвме
как вы это терпите вообще? старые юники открывались вообще моментально нахуй
>как вы это терпите вообще?
А куда деваться, приходится, дальше будет гораздо хуже, но мы стерпим всё
Лучше бы тред перекатили, а на загрузки похуй
Андеграунд, получается.
если у тебя там не строки и ты не пытаешься поменять чето из сторонних уже скомпиленных длл и если оно не заглючит то да
TowerAttack класс, отвечающий за поведение снаряда, делаю интерфейсом. От него и от моно наследуют несколько поведеньческих классов, и эти классы я уже ручками вешаю компонентом в перфабы снарядов. Соотвественно башня через интерфейс может инициализировать любой тип. Так чтоли?
1546x382, 0:12
придумал два варианта
1. добавить онклик на сами кнопки, передавать онкликом самого себя и передавать это текущему режиму работы гуя сверху
2. запилить свой онклик в отдельном классе через график рейкастер, сделать поиск нужного компонента через допустим словарь геймобжект-компонент чтобы не было хуеты типа геткомпонента на каждом клике, дать доступ к этому онклику режимам работы гуя и пусть там сами кликают то что нужно когда им нужно
на какой стул сесть? второй кажется оверинжинирингом...
можешь накинуть на кнопки коллайдер, реализовать метод Onmousedown и через enym менять состояние кнопки.
Странный вопрос. Думаю у тебя что неправильно с архитектурой, ну ладно постараюсь ответить - если ты вызываешь какой то экшен по кнопке ты его можешь менять, или тупо в самом методе реагировать или же сделать классы и юзать полиморфизм
>есть два режима работы гуя
что мешает сделать тупо так?
public void OnClick()
{
if(state == States.state1)
{
doForState1
}
}
В Unity можно сделать модель всегда освещенной, настроив для ее материалов использование "неосвещенного" шейдера. Это позволит модели быть видимой независимо от освещения в сцене. Вы можете найти "неосвещенные" шейдеры во встроенной библиотеке шейдеров, которая поставляется с Unity.
Чтобы использовать "неосвещенный" шейдер на модели, вам нужно выполнить следующее:
Выберите модель в иерархии сцен или в проектном представлении.
В окне Инспектора щелкните по компоненту материала, чтобы открыть свойства материала.
В свойствах материала найдите раскрывающийся список шейдеров.
В раскрывающемся списке "Шейдер" выберите шейдер из категории "Неосвещенный".
Кроме того, вы можете создать свой собственный "неосвещенный" шейдер с помощью инструмента Shader Graph. Это позволит вам настроить отображение модели, когда она всегда освещена.
Я надеюсь, что это поможет! Дайте мне знать, если у вас возникнут какие-либо вопросы.
Вы видите копию треда, сохраненную 3 мая в 16:19.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.