Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 283 62 78
Unity 3D #40 Аноним 24/03/25 Пнд 06:11:41 1014442 1
image.png 917Кб, 1200x675
1200x675
Прошлый тред: >>994942 (OP)

Официальный сайт: https://unity.com/ru
Документация: https://docs.unity3d.com/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com
Магазин ассетов: https://assetstore.unity.com

На Unity сделано много замечательных игр: Zenless Zone Zero, V Rising, Hearthstone, VRChat, Escape from Tarkov, Valheim, Pathfinder, Cuphead, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие.

Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.

Какие у Unity сильные стороны?
Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.

Какие у Unity слабые стороны?
Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.

На каких языках я могу писать скрипты для Unity?
Поддерживается написание скриптов на C# 9.0
https://docs.unity3d.com/Manual/CSharpCompiler.html

Какие есть готовые решения для создания мультиплеерной игры?
https://www.photonengine.com
https://mirror-networking.com
https://playfab.com

На каких платформах работают созданные с помощью Unity игры?
Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.

Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.

Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).

Бесплатен ли Unity?
Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.

Обучение по книгам (печатные издания, актуальные электронные версии книг можно скачать на официальных сайтах издателей)

Обучение языку C# книги на русском языке:

1. C# для чайников Автор книги – Джон Пол Мюллер
2. Программирование на C# для начинающих 2е части Автор: Алексей Васильев
3. Head First. Изучаем C# 4е издание Авторы: Эндрю Стиллмен, Дженнифер Грин
4. Unity и C#. Геймдев от идеи до реализации Автор: Джереми Гибсон Бонд
5. Язык программирования C# 7 и платформы .NET и .NET Core Авторы: Филипп Джепикс, Эндрю Троелсен

Для людей абсолютно не знакомых с движком есть 3и основные книги на русском языке:

1. Разработка игр на Unity 2018 за 24 часа Майка Гейга
(Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков).
2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне
(Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.)
3. Unity в действии. Мультиплатформенная разработка на C#. 3-е межд. издание Хокинг Джозеф
(Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)

Шапка: https://pastebin.com/raw/JGUAcbwj
Аноним 24/03/25 Пнд 23:45:21 1014597 2
image 2009Кб, 1950x1300
1950x1300
Котаны, может кто знает где достать ассет "Rifle_Mega_MocapAnimPack". Он ещё есть на анриал енжин. Но я не смог найти не для юнити, не для уеча. Ассет дорогой, а бесплатной демки нет. Хотелось бы прикинуть подойдёт ли он вообще.
Аноним 25/03/25 Втр 10:01:44 1014619 3
.mp4 454Кб, 360x470, 00:00:08
360x470
Купон "CLAWBEARGAMES" до 27 марта на бесплатное получение ассета от:
https://assetstore.unity.com/publishers/40264

До этого можно было бесплатно получить крутой наборов эффектов, но я забыл вам скинуть хи-хи
Аноним 26/03/25 Срд 02:08:16 1014787 4
Аноним 26/03/25 Срд 07:27:10 1014801 5
image 18Кб, 568x223
568x223
Аноним 26/03/25 Срд 11:38:24 1014820 6
>>1014801
Мля. Обычно там устаревшие версии бесплатно. А вообще сколько он там стоит, за доступ ко всем плагинам то?
Аноним 26/03/25 Срд 11:47:29 1014823 7
Госпади челы блядь, все платные ассеты есть в доступе на помойках, качайте перекачаетесь, да не самых последний версий, но подходят отлично.
Аноним 26/03/25 Срд 19:48:05 1014949 8
image 27Кб, 1015x212
1015x212
>>1014823
>все платные ассеты есть в доступе на помойках
Я знаю только одну такую площадку - cgpeers. Однако эти пидармоты забанили мне аккаунт за инактивити.
Аноним 26/03/25 Срд 20:56:08 1014957 9
>>1014949
Чем тебе рутрекер или пиратбей не устраивают? спгпирс вообще странный в последнее время: деньги клянчат постоянно и дизайн меняют и ввели вход в акк каждый раз. Мне кажется они скоро закроются, да и файлы там старые как правило и с вирусами, модерация видимо ослабла.
Аноним 26/03/25 Срд 22:46:16 1014984 10
>>1014957
>Мне кажется они скоро закроются
Ну раз тебе кажется то спорить конечно бесполезно.
Аноним 26/03/25 Срд 22:54:11 1014985 11
>>1014984
А мы тут спорим что ли? Я просто написал, что мне кажется, что сгпирс катится куда-то не туда и всё.
Аноним 05/04/25 Суб 02:15:27 1016273 12
Куда быстрее получится вкатиться чтобы с пользой - в урину на блюпринтах или юнити C#?
Усидчивость имеется.
Аноним 05/04/25 Суб 03:04:26 1016277 13
Аноним 05/04/25 Суб 06:37:25 1016279 14
Аноним 05/04/25 Суб 07:47:47 1016281 15
>>1016273
Сначала поясни что означает
>с пользой
Аноним 05/04/25 Суб 11:29:29 1016302 16
>>1016281
С блюпринтов на урине в любом случае придется перекатываться в с++ рано или поздно. Плюсы охватывают все игровые движки +- в случае форсмажора. Какими бы они мерзкими порой не были...

А шарп в этом плане не такой гибкий, движков которые поддерживают так-же не очень много.
Но, с друой стороны как будто тоже достаточно работы на нём.
Аноним 05/04/25 Суб 11:43:41 1016307 17
>>1016273
Перекатывайся туда куда хочешь, что за тупость спрашивать что лучше то или то.
Да хоть на асамблере игры пиши если нравится (Что некоторые и делают, даже стримя на твиче).

Если удобно и нравится через принты, делай через них, если больше нравится код и все вот это, то через него.
Слушать петухов которые будут тебе задвигать за то что ты не сможешь что-то сделать если выберешь один из стулье, не надо.
Аноним 05/04/25 Суб 12:00:14 1016314 18
>>1016273
Вкатиться с какой целью?
Аноним 05/04/25 Суб 12:03:51 1016315 19
>>1016302
> Но, с друой стороны как будто тоже достаточно работы на нём.
На юнити работы намного больше, чем на анриле и других движках вместе взятых, если в россии и ближайших странах искать.
Но учти, что юнити говномобилки в основном и чтобы тебя на норм проект взяли надо несколько лет ебашить
Аноним 05/04/25 Суб 12:31:22 1016317 20
>>1016315
>что юнити говномобилки в основном
Но и индюков много. Правда платить они будут копейки. Но зато будет небольшая семейная команда, если нравится такой формат работы.
Аноним 05/04/25 Суб 13:24:23 1016326 21
>>1016307
Понял, спасибо

>>1016314
Куча хотелок, которые бы хотелось реализовать.

Раньше был опыт написания аддонов/скриптов для варкрафта, но на lua, и мне тогда понравилось когда это работало как задумывалось.
Поэтому, думаю, на другом языке или движке - это не сильно отличается, хоть это и другой процесс.
Аноним 05/04/25 Суб 15:17:43 1016340 22
Оказывается в VContainer можно даже шаблоны регистрировать. Ну епонцы!

builder.Register(typeof(MyClass<>), Lifetime.Transient);

И потом можно сделать инжект:
[Inject] private readonly MyClass<MyAnotherClass> _myClass;
Аноним 05/04/25 Суб 16:01:15 1016352 23
>>1016340
разработчики юнити строго против использования DI-контейнеров, т.к. это нарушает идеологию Unity:
https://discussions.unity.com/t/dependency-injection-in-unity-inversion-of-control-container/914827
альтернативы:
- DI как scriptable object через сериализуемые поля в инспекторе
- зависимости как синглтоны
- зависимости как сервисы через сервис аллокатор
Аноним 05/04/25 Суб 16:29:54 1016357 24
>>1016352
>разработчики юнити строго против
слышу вой с параши
Аноним 05/04/25 Суб 16:39:24 1016358 25
>>1016352
>разработчики юнити
Ну это очередной даун, который не знает как и что создают на движке, который он разрабатывает. Тем более они купили ironSource, а значит менеджеры рассчитывают на мобилки. А в мобилках ДИ - это жизненная необходимость. Без неё сложный мобильный проект не построишь, там дохера сервисов, сложный интерфейс. Или даже не мобильный, а что-нибудь сервисное, с мультиплеером например.

>scriptable object
Не заменяет ДИ. Он хорош в качестве статических настроек. Не более того.

В целом, зависит от контекста и типа проекта. В какой-нибудь сингловой ПК хуинди ДИ может быть бесполезным или даже вредным.

Хотя... Если прикинуть, то даже в инди ДИ может быть полезным. Я вот дохрена лет с юнити работаю и пришёл к выводу, что прокидывать прямые ссылки через редактор - это плохая идея. Эти ссылки могут теряться. Либо тебе нужно по иерархии спускаться в жопу, чтобы прокинуть вшивую ссылку. Не дай бой ты потом переименуешь компонент неудачно и ссылки пропадут. Плюс интерфейс нормально не прокинешь.

А через ДИ у тебя все ссылки будут в root-компоненте, который один на сцене. Ты туда все менеджеры подключил, спавнеры врагов, виндоус менеджер, ещё какую-нибудь залупу, и далее в своих компонентах ты получаешь ссылки через ДИ. А если ты работаешь с интерфейсами, ты ещё сможешь подменять легко реализацию для быстрого теста различных кейсов.
Аноним 05/04/25 Суб 17:10:28 1016359 26
>>1016358
в мобилках DI строго противопоказан
это тяжеловесная хуйня которая используется в банках. поэтому банки так тормозят
для производительных игр это не подходит
Аноним 05/04/25 Суб 17:54:05 1016360 27
.webm 2008Кб, 720x400, 00:00:03
720x400
>>1016359
>в мобилках DI строго противопоказан
Бро, в мобилках это база. Причём уже давно. Сейчас это не просто база, это базиллион баз.

Вот тебе конкретный пример. Игрушка 2016 года - Покехрен Го, с 500+ млн установок.

Они уже тогда полностью выстроили архитектуру на DI. Ещё раз - ПОЛНОСТЬЮ. Хотя тогда действительно и проблемы с производительностью были, и они использовали стрёмный Zenject (который сейчас строго не рекомендуется использовать). Короче посмотри сам, если интересно разобраться:
https://www.youtube.com/watch?v=8hru629dkRY
Аноним 05/04/25 Суб 17:54:53 1016361 28
>>1016359
Шиза.

var a = new A();
var b = new B(a);
Пиздец тяжеловесно. Ровно то же самое, что ты бы и через код делал.

>>1016352
> разработчики юнити строго против использования DI-контейнеров
Какие? Юнити буквально вконтейнер юзают в своих репозиториях лол.

> это нарушает идеологию Unity
Кому какое дело до того что кто нарушает и какая у юнити есть идеология?(никакая)

> - DI как scriptable object через сериализуемые поля в инспекторе
Удачи рулить мердж конфликты)

> - зависимости как синглтоны
Удачи иметь несколько инстансов реализующих один интерфейс для разных областей приложения

> - зависимости как сервисы через сервис аллокатор
Если ди нарушает что там юнитевое, то почему сервис локатор не нарушает?
Сервис локатор концептуально очень схож с ди, но у него есть недостатки, если мы говорим о глобальном прокидывании зависимостей в проекте
Аноним 05/04/25 Суб 18:41:19 1016365 29
>>1016361
>Удачи иметь несколько инстансов реализующих один интерфейс для разных областей приложения
ты о мультиплеерной кнопке?
Аноним 05/04/25 Суб 18:58:03 1016367 30
>мультиплеерная кнопка
не стоит вскрывать эту тему...
Аноним 05/04/25 Суб 19:10:28 1016368 31
image.png 272Кб, 1569x470
1569x470
она создала мультиплеерную кнопку...
Аноним 05/04/25 Суб 22:26:26 1016391 32
>>1016368
обесните что за мем
Аноним 05/04/25 Суб 22:28:34 1016392 33
Аноним 05/04/25 Суб 23:12:08 1016402 34
>>1016368
>она
ахахаххахахахахаха
классика
Аноним 06/04/25 Вск 00:08:53 1016407 35
>>1016402
у тебя даже такой нет
Аноним 06/04/25 Вск 00:16:45 1016411 36
>>1016407
>такой
аххахахахаха
Аноним 06/04/25 Вск 19:28:05 1016501 37
Как лучше реализовать 2.5д графику с 2д-чарами в 3д-окружении? (примеры - Даркест Данжен, Cult of the Lamb, Тук Тук)
через ui Sprite в нужных кусках экрана? яерез Plane с уанимайуией? или есть еще какие-то фишки для подобного стиля?
Аноним 06/04/25 Вск 19:28:26 1016502 38
>>1016501
> с анимацией
быстрофикс
Аноним 06/04/25 Вск 20:00:57 1016507 39
Аноним 06/04/25 Вск 20:33:22 1016509 40
image.png 179Кб, 600x338
600x338
image.png 2594Кб, 1920x1080
1920x1080
>>1016507
у тебя по ссылке чисто 2д-шный проект
> This Unity URP 2D sample project showcases Unity’s 2D tools and graphics capabilities.

я спрашиваю примерно про такое:
комнаты/окружение 3д-шное, персонажи и разные объекты 2д-спрайты
в Ягненке вообще 99% содержимого "плоское", включая постройки
Аноним 06/04/25 Вск 21:11:11 1016513 41
>>1016501
Плейн очевидный

Сл спрайтами ебанешься с порядком отрисовки
Аноним 07/04/25 Пнд 07:29:31 1016540 42
д.jpg 19Кб, 231x380
231x380
сс.jpg 7Кб, 1794x66
1794x66
ш.jpg 19Кб, 1710x53
1710x53
>>1014442 (OP)
Заебала эта параша, из-за неё у меня нормально не сохраняются сначало префабы, потом и сцена. Движок просто виснет а бесконечном поиске что сохранить, если перезапустить движок можно потерять префаб или вообще сцену.
Я уже так задрочился, что научился сохранять сцену и префабы через блокнот, но это же не нормально, что вместо стандартного сохранения я юзаю блокнот.

Искал решение - пишет проблема в самом движке, слишком длинные имена он не сохраняет.
Готов укоротить имена файлов и уммень шить путь к файлам, но проблема не знаю где именнн. Второй пик это пример имени файла.
Аноним 07/04/25 Пнд 07:56:29 1016541 43
>>1016540
ебучий ты шиз, если ты очередной даун который пытается в Resources.Load не понимая как он работает - то это только твои пробелмы
>Движок просто виснет а бесконечном поиске
а нах ты условие для выхода не сделал?
Аноним 07/04/25 Пнд 08:34:18 1016542 44
>>1016540
даже так все ещё лучше урины.

как только вспоминаю траву с артефактами или мыло это фирменное анрильское - сразу кулак сжимается.

и она такая даже в играх с огромным бюджетом, потому, что даже студиям впадлу трогать встроенное сглаживание

так что терпи юнити и оно тебе воздастся
Аноним 07/04/25 Пнд 10:32:59 1016556 45
>>1016540
У меня длиннеее имена файлов были и все норм. Попробуй обновить юнити, минорную версию
Аноним 07/04/25 Пнд 11:03:00 1016558 46
>>1016540
Не, дело точно не в длине, у тебя там +- нормально все, вот примерно в два раза если длиннее было, можно было уже думать насчет этого.
Чтоб найти проблему прям точно - Создай пустой проект, и начни переносить вещи которые как ты думаешь конфликтуют, и найдешь траблу.
Аноним 07/04/25 Пнд 15:20:34 1016612 47
>>1016541
Мнение хлебушка не интересно.
>>1016542
тирпим карлики
>>1016556
У меня шейдеры самописные боюсь заруинить всё.
>>1016558
ну хоть что то.
Аноним 07/04/25 Пнд 15:46:19 1016616 48
>>1016612
> У меня шейдеры самописные боюсь заруинить всё.
git reset напишешь в консоли

А так, от апгрейда минорной версии вообще нихуя не будет.
Аноним 08/04/25 Втр 13:33:25 1016723 49
Как сделать так чтобы первый раз игра всегда запусказась в окне?
Я знаю как сделать настрйоки, чтобы пользователь мог сам себе поставить как у него будет запускаться. Но как именно чтобы по умолчанию всегда запускалась в окне, хз
Аноним 08/04/25 Втр 13:38:18 1016725 50
Аноним 09/04/25 Срд 15:48:15 1016903 51
image 71Кб, 1200x558
1200x558
Мало того, что юнити застрял на 9й версии сисяпа, так функционал ещё и обрезан.
Аноним 10/04/25 Чтв 02:45:43 1016959 52
Я к вам со странной хуйнёй пришёл, погуглив сначала проблему в поиске, нашел несколько тредов на реддите по тому же вопросу, но никакой конкретики особо не было. Пару лет не использовал юнити, недавно скачал сразу шестерку, понадобилось в определенный момент собрать билд для проверки игры вне редактора и обнаружил что мой комп издаёт абсолютно инфернальные звуки какого-то скрежета во время того как запущен билд. Что это может быть?
Аноним 10/04/25 Чтв 03:31:33 1016961 53
Аноним 10/04/25 Чтв 06:16:45 1016963 54
>>1016959
У тебя жесткий диск или ссд? Если юнь что то интенсивно делает с памятью, то мб головка жесткого диска шумит. Такое бывает. Скорее всего это плохо и жесткому приходит хана, но некоторые диски шумные by design и шумят с завода, так что смотреть надо.
Аноним 10/04/25 Чтв 08:21:17 1016969 55
>>1016959
>мой комп издаёт абсолютно инфернальные звуки какого-то скрежета во время того как запущен билд. Что это может быть?
Что с кулером?Может грязь залетела
Аноним 10/04/25 Чтв 10:12:57 1016976 56
>>1016963
>>1016969
В компе из дисков только два ссд оба М2, сам комп новёхонький, даже полугода не прошло с покупки
Аноним 10/04/25 Чтв 11:04:35 1016977 57
>>1016959
Дроссели видеокарты могут свистеть, особенно когда нет ограничения фреймрейта.
Аноним 10/04/25 Чтв 11:35:04 1016982 58
>>1016977
Спасибо анон, скорее всего дело в этом, тк вчера на реддите видел предположение об ограничении фреймрейта, нужно будет посмотреть как у компьютера буду. Не подскажешь, это в настройках проекта смотреть или свой скрипт писать надо?
Аноним 10/04/25 Чтв 11:44:57 1016985 59
>>1016982
в движке за много миллиардов деняк - это делается только через скрипт
Application.targetFrameRate = 60;
Аноним 10/04/25 Чтв 12:18:17 1016992 60
image 60Кб, 646x449
646x449
>>1016985
Я бы ещё рекомендовал включить всинх в редакторе. Иначе окно Game начинает миллион фпс выдавать и видимокарту разрывает.
Аноним 10/04/25 Чтв 13:52:18 1017020 61
>>1016977
А ну да, точняк, дроссели свистят. У меня на старой гтх 1060 свистели тоже иногда
Аноним 10/04/25 Чтв 14:03:07 1017022 62
У меня тоже компьютер свистит, но не только в Юнити, но и других приложениях, и это делает не видеокарта, а материнская плата. Катушки издают микровибрации и свистят. Причину так и не понял.
Вот при запущенном Хроме ничего не свистит, например.

А если не ограничивать фреймрейт в Юнити, то видеокарта просто греется и включает вентиляторы, как при обычной нагрузке. Это другое.
Аноним 10/04/25 Чтв 16:44:01 1017056 63
>>1014442 (OP)
Unity 6 отключен в Китае!

https://80.lv/articles/unity-6-is-taken-offline-in-china/

Этот наиболее широко используемый движок для разработки игр, разработанный Unity Technologies, будет заменен локализованной версией Unity в Китае под названием 团结引擎.

У китайцев будет версия с нанитами и люменом.
Аноним 10/04/25 Чтв 16:57:55 1017058 64
>>1017056
Видимо из-за того, что обычный юнити связан с американскими сервисами сбора данных, google play и т.п. В чайне всё это не работает.
Аноним 10/04/25 Чтв 17:07:14 1017060 65
>>1017058
>Видимо из-за того, что обычный юнити связан с американскими сервисами сбора данных, google play и т.п. В чайне всё это не работает.
Да работает это все там. Они просто отключили именно 6 версию, что бы пользовались китайской сборкой юнити.
Аноним 11/04/25 Птн 06:14:08 1017123 66
>>1017056
>с нанитами и люменом
Слава богу у нас не будет этого кала. А китайцам придётся лишний раз пердолиться и выпиливать этот мусор самостоятельно, но, я думаю, они справятся, если постараются.
Аноним 11/04/25 Птн 06:37:04 1017124 67
>>1016540
Дело не в движке, а в ОС, полный путь от корневого каталога к файлу вместе с его именем не должен превышать 256 символов. У тебя, судя по всему, более 256 символов. Попробуй сократить кол-во папок до файла. Чтобы было не более 4. У тебя сейчас 7.
Аноним 11/04/25 Птн 06:38:39 1017125 68
Аноним 11/04/25 Птн 06:40:10 1017126 69
>>1016509
Очевидно, что окружение делается объемным с флэт-шейдерами, а персонажи, пикаблы и т.п. - это квады, на которые через шейдер накидывается кадры с атласов текстур. По такой схеме сделаны тук-тук и культ овцы.
Аноним 11/04/25 Птн 06:41:40 1017127 70
>>1017125
Да, линк хоть и удобная библа, но подходит только для интерпрайза. Для игр лучше использовать кастомные решения.
Аноним 11/04/25 Птн 09:06:49 1017128 71
>>1017125
Он просто в память срёт. Но если ты не собираешься его использовать в каждом цикле апдейта, то не вижу проблем. Тем более он уже далеко не такой плохой, какой был лет 10 назад.
Аноним 11/04/25 Птн 10:31:46 1017131 72
Аноним 11/04/25 Птн 10:39:11 1017133 73
image.png 28Кб, 453x667
453x667
Аноним 11/04/25 Птн 15:49:29 1017156 74
г5г6ш.jpg 16Кб, 499x167
499x167
Аноним 11/04/25 Птн 15:57:51 1017157 75
>>1017124
Об этом я и говорил, спасибо пчел.
Аноним 11/04/25 Птн 16:01:07 1017158 76
>>1017156
Еблозавр, это не выебоны, это база.
Аноним 11/04/25 Птн 16:03:29 1017159 77
>>1017156
Первый вариант читается в 10 раз проще.

Ещё сильнее разница, когда это скомбинировано с объявлением переменной, так как в первом случае её можно сразу же в одной строке присвоить:

Первый вариант:
Color color = path ? Color.Green : Color.White;

Второй вариант:
Color color;
if (path)
Color = Color.Green;
else
Color = Color.White;
Аноним 11/04/25 Птн 20:02:28 1017181 78
>>1017158
>>1017159
>Color color = path ? Color.Green : Color.White;
Ебать.
Вы хоть когда-нибудь код рефакторите?
В этом случае все просто, так как переменные простые, а теперь я посмотрю как вы навернёте, когда в исполняющем блоке будут нормальные методы типа
float direction = (GameRoot.ScreenSize / 2 - Position).ToAngle() + rand.NextFloat(-MathHelper.PiOver2, MathHelper.PiOver2);
////
>читается в 10 раз проще.
direction = bounds.Contains(Position.ToPoint()) ? (GameRoot.ScreenSize / 2 - Position).ToAngle() + rand.NextFloat(-MathHelper.PiOver2, MathHelper.PiOver2) : (GameRoot.ScreenSize / 2 - Position).ToAngle() + rand.NextFloat(-MathHelper.PiOver1, MathHelper.PiOver1);
Аноним 11/04/25 Птн 20:19:52 1017185 79
image 232Кб, 390x543
390x543
image 183Кб, 300x424
300x424
>>1017181
Почитай книги, а то у тебя в голове насрано.
Аноним 11/04/25 Птн 20:40:39 1017188 80
>>1017181
> В этом случае все просто
Какой случай показал - тот и объяснил. В нём использование тернарного оператора супер правильное решение.

> так как переменные простые, а теперь я посмотрю как вы навернёте, когда в исполняющем блоке будут нормальные методы типа
> direction = bounds.Contains(Position.ToPoint()) ? (GameRoot.ScreenSize / 2 - Position).ToAngle() + rand.NextFloat(-MathHelper.PiOver2, MathHelper.PiOver2) : (GameRoot.ScreenSize / 2 - Position).ToAngle() + rand.NextFloat(-MathHelper.PiOver1, MathHelper.PiOver1);
Тут нечитаемо.
Надо ж думать всё таки, где что использовать, в некоторых местах тернарный оператор может быть менее удобным чем какой-то другой вариант, надо смотреть.

Но над этим примером стоит подумать чуть больше, чем "ыыы тут тернарный оператор не удобен", потому что тут намного больше проблем и они не с тернарным оператором.

Я бы так сделал:

bool inBounds = bounds.Contains(Position.ToPoint());

float baseAngle = (GameRoot.ScreenSize / 2 - Position).ToAngle();

float addAngleRange = inBounds ? MathHelper.PiOver2 : MathHelper.PiOver1;

direction = baseAngle + rand.NextFloat(-addAngleRange, addAngleRange);

1. Убрано дублирование кода. Дублирование никогда не должно быть.
2. Сильно уменьшена когнитивная нагрузка - каждая сущность в коде намного более простая чем исходный вариант
3. Оперируем в итоговом вычислении с понятными значениями которым присвоено имя
Аноним 11/04/25 Птн 20:51:03 1017189 81
>>1017126
спасибо за идею, посмотрю в эту сторону
Аноним 11/04/25 Птн 20:52:30 1017190 82
1631708617016.png 284Кб, 1916x1012
1916x1012
1672374214132.png 183Кб, 1773x733
1773x733
1599802225674.png 183Кб, 1773x733
1773x733
>>1017156
Котел писал "без выебонов" и надорвался под тяжестью бойлерплейта, недописал игру. Вот и думай.
Аноним 11/04/25 Птн 20:53:28 1017191 83
ггд.jpg 20Кб, 480x575
480x575
>>1017185
Тернарный условный оператор пришёл в C# из С++, потому что кому-то не хватало ифов и свичей, это я узнал как раз из книги и то что автор настоятельно рекомендовал, не пользоваться тернарными операторами. Что в последствии я понял почему.
И насчёт книг, те что приведены в шапке это я писал и почти каждую из них изучил от корки до корки. И почти каждая стоит у меня на полке.
И да скорее всего я перепутал определение рефакторинг и дебаггинг.
Как раз при рефакторинге, когда всё работают и начинают выговаривать конструкции наизнанку в угоду оптимизации, там конечно можно и повыпендриваться, чтобы потомки восхитились уровнем программистов.
Аноним 11/04/25 Птн 20:58:56 1017195 84
>>1017190
Это даже не без выебонов, это просто код очень слабого разраба.
Аноним 11/04/25 Птн 21:02:01 1017197 85
>>1017190
Котёл надорвался в первую очередь, потому что хотел откусить больше чем смог осилить.

Но здесь я могу оперировать только личным опытом, если долго что-то делаешь, то неизбежно что-то забываешь и когда читаешь код и начинаешь смотреть на подобные конструкции, вместо пробежаться глазами, ты начинаешь разбирать строку, на что уходит время больше, чем если бы ты отделался стандартными конструкциями.

А вообще кто-нибудь проверял, там вот так сильно улучшается производительность, на современных пк монстрах?
Аноним 11/04/25 Птн 21:04:59 1017199 86
>>1017191
>не пользоваться тернарными операторами
В нём нет ничего плохого. Можно и обычный IF написать таким образом, что нихуя непонятно будет. Максимально желательно, чтоб ни в IF, ни в тернарном операторе, не происходило никаких вычислений.
Аноним 11/04/25 Птн 21:16:29 1017201 87
>>1017191
85% всего пришло в C# из C++, блэт.
Это буквально

C++
++

(то есть C ++ ++, второй инкремент)
Аноним 11/04/25 Птн 21:26:46 1017202 88
Screenshot1.jpg 82Кб, 915x739
915x739
Меня просто подорвало, уже несколько часов разбираю код с гитхаба у себя в студии и не видно ни конца ни края
Аноним 11/04/25 Птн 22:32:47 1017210 89
Запись202504112[...].mp4 896Кб, 624x628, 00:00:20
624x628
Все разобрался, держу в курсе.
Аноним 11/04/25 Птн 22:42:39 1017211 90
>>1017201
Не знаю какими метриками ты проценты намеряешь, есть Си которыы породил такое понятие как си-подобный синтаксис и разные языки на нём основанные.
С++ взял си-подобныц синтаксис, спиздил классы из смоллтолка и всё это натянут на базу Си.

Сишарп взял си-подобный синтаксис и напиздил идей из других языков, главным конкурентом рассматривалась жава на которую в первую очередь и ориентировались, что видно по многим синтаксическим моментам которые перккочевали из джавы, менеджед памяти, явной стандартизации разных видов "классов". Идея в общем-то и заключалась в том, чтобы сделать более современный клон джавы и не допустить её ошибок проектирования.

В дальнейшем шарп стал пиздить всякую хуйню из раста и прочих новомодных языков, и сам вводил какие-то свои фичи, преимущественно тз разряда синтаксического сахара и квалити оф лайф, не какие-то прям новые концепции.

Ввиду этого, утвреждение, что C# взял 85% всего из С++ очень странное, особенно с учетом того, что многие типичные для современных языков штуки появляютсч в С++ позже чем в шарпе(а в шарп пиздятся из других языков)
Аноним 11/04/25 Птн 22:47:09 1017213 91
>>1017190
На твоих скринах я лишь вижу проблемы в архитектуре, не более.
Вангую почти с 99.9% вероятностью котел бросил разработку своей игры далеко не из-за этого.
Аноним 11/04/25 Птн 22:47:30 1017214 92
Screenshot1.jpg 25Кб, 730x352
730x352
>>1017201
>(то есть C ++ ++, второй инкремент)
Шутку уловил, спасибо.
Аноним 11/04/25 Птн 22:48:12 1017215 93
>>1017197
> Но здесь я могу оперировать только личным опытом, если долго что-то делаешь, то неизбежно что-то забываешь и когда читаешь код и начинаешь смотреть на подобные конструкции, вместо пробежаться глазами, ты начинаешь разбирать строку, на что уходит время больше, чем если бы ты отделался стандартными конструкциями.
Ну, если ты всерьез занимаешься программированием, вряд ли для тебя будет проблемой запомнить, что такое тернарный оператор и прочая хуйня.

Вся эта хуйня и вводится для упрощения читаемости, чтобы ты мог одним взглядом окинуть код и быстрее сориентироваться что происходит, куда смотреть.

Но синтаксисические конструкции удобнве это чисто для упрощения чтения, глобально чтобы ориентироваться в старом коде надо нормально его проектирвоать - юзать понятные имена, дробить на небольшие методы, вводить переменные в которые складировать какие то промежуточные значения, не дублировать схожее поведения и данные в разных местах кода, ну много всего короч.

> А вообще кто-нибудь проверял, там вот так сильно улучшается производительность, на современных пк монстрах?
От чего? От синтаксического сахара? Нисколько.
Аноним 11/04/25 Птн 22:49:32 1017216 94
Аноним 11/04/25 Птн 22:50:53 1017217 95
>>1017190
>5к строк
>false, false, 359, 540
>sc_sp
Пиздец
Аноним 12/04/25 Суб 02:19:27 1017227 96
Аноним 12/04/25 Суб 03:22:43 1017230 97
>>1016985
Лучше принудительно включать вертикальную синхронизацию, у меня без нее персонаж почему то странно косоебится в стороны при движении
Аноним 12/04/25 Суб 05:55:03 1017232 98
>>1017210
Молодец. Патхфайдинг одна из вещей которые меня каждый раз заебывает делать, причем блядь 20 лет назад во времена универа графы я понимал лучше всего из тогдашнего курса
Аноним 12/04/25 Суб 08:30:18 1017234 99
>>1017232
Пчел просто ради интереса, я не в первый раз вижу тебя, ты вроде бывалый, имеешь академ образование и опыт в разработке, зачем ты сидишь на дваче? Конечно спасибо за помощь в юнити, но развне не зашкварно что-то уметь и сидеть на дваче?
Аноним 12/04/25 Суб 12:17:46 1017250 100
>>1017234
С каких пор сидеть на дваче зашквар и почему кому-то должно быть не поебать что кто-то там думает?
Двач очень прикольный и весёлый форум, я буду тут сидеть. И участвовать в твг.

мимо
Аноним 12/04/25 Суб 13:11:37 1017251 101
>>1017250
Ты прав, но с другой стороны сидеть в гд тредах и читать без игорных ебанатов которые ничего не сделали а все знают это зашквар полный. У меня все ще кошмары с рогалик тредов где люди на полном серьезе советовали изобретать колесо, вместо с того чтобы использовать уже придуманное и рабочее для простых вещей типа генерации карт.
Хуже только хабр.
Аноним 12/04/25 Суб 13:20:10 1017252 102
>>1017251
Ну, тут не все такие, тут есть и нормальные новички, есть и шарящие челы
Аноним 12/04/25 Суб 13:23:38 1017253 103
Абсолютно согласен с этим >>1017251
Сидеть здесь блядь и читать ебанатов, это пиздец как себя не уважать.
Аноним 12/04/25 Суб 13:56:07 1017257 104
>>1017251
>использовать уже придуманное и рабочее для простых вещей типа генерации карт.
Ебануться. Одно из самого главного в рогалике - уникальная карта, а тут советуют ассетфлипать.
Аноним 12/04/25 Суб 13:57:15 1017258 105
>>1017253
>>1017251
Так в этом смысл двача. Приходить и самоутверждаться за счет убогих, потому что ирл всего лишь мидл и насуют за щеку реально прошареные челы.
Аноним 12/04/25 Суб 14:07:25 1017259 106
>>1017258
Нет.
Смысл двача порофлить, иногда что-то интересное обсудить.
Аноним 12/04/25 Суб 14:31:37 1017260 107
>>1017258
>самоутверждаться
Здесь все анонимы, дебил. Я даже не знаю, кто из вас срущий петух-шизик-семёнович.
Аноним 12/04/25 Суб 14:35:35 1017262 108
>>1017260
Моча все знает, и в конфочке смеется с протыками.
Аноним 12/04/25 Суб 15:09:02 1017263 109
>>1017262
Я вообще думал у нас моча это баба срака, которой вообще ничего не надо.
Аноним 12/04/25 Суб 15:11:14 1017264 110
>>1017263
Не, есть две мочи. Одна которая работает по репортам, особенно по всякой политоте, прибегает обычно быстро.
Вторая наша, как грится наш слоняра, который в курсе всей движухи на доске, и знает всех шизиков по железу. Догадки есть разные, но это не важно.
Аноним 12/04/25 Суб 16:46:36 1017275 111
>>1017264
какое ещё железо, модератор доски не видит даже полностью айпишник
Аноним 12/04/25 Суб 16:47:51 1017276 112
>>1017260
но срущий петух-то сам про себя всё знает
Аноним 12/04/25 Суб 16:58:12 1017278 113
>>1017277
> или ты думаешь как детектятся шизы которые дергают роутер по кд??
Никак?
Я когда в дотатреде срал, меня никто не детектил
Аноним 12/04/25 Суб 16:58:14 1017279 114
>>1017277
ты неправ, дуралей
сейчас зарепорчу тебя за обсуждение модерации
Аноним 12/04/25 Суб 17:08:20 1017280 115
>>1017279
Репорт это прямое доказательство моей правоты, ты не знаешь что ответить и просто сливаешься зовя мочуха.
Аноним 12/04/25 Суб 17:10:33 1017281 116
>>1017251
Заметная часть разработчиков на юнити не разбираются в программировании и не умеют толком пользоваться юнити, однако выпускают игры и даже сидят на форумах и раздают советы. Тут главное не умение, а усердие и удача.
Аноним 12/04/25 Суб 19:35:04 1017297 117
>>1017281
Так главное что они достигают поставленной цели и выпускают свои игры
Аноним 12/04/25 Суб 23:58:41 1017302 118
Есть ли реальные кейсы использования MessagePipe в Unity? Пока кажется, что это юзлесс залупа.
Аноним 13/04/25 Вск 01:08:51 1017304 119
>>1017302
Ну это дефолтная реализация EventBus, можешь погуглить его юзкейсы, вроде от разрабов пасфайндера на хабре статья была.

Идея сама в том, чтобы какие-то системы могли коммуницировать между собой, не имея прямой зависимости друг от друга.

Весь геймплей на нём строить не стоит я бы сказал(я пробовал сразу в проде кек, потом насинается путаница в каком порядке подписчики ивента должны реагировать, потому что в голове это держать нереально, потом забудешь), но если юзать в редких случаях каких-то, то вроде норм.

Например из меню стреляешь ивент старта игры. Получается меню не обязано знать, кто там как игру должен стартовать, а стартер игры не должен знать ничего про игру, следовательно и то и другое можно поместить в разные ассембли, которые будут иметь ссылку на ассембли с определениеи ивента.
Аноним 13/04/25 Вск 01:30:05 1017305 120
Подскажите есть ли какой-нибудь плагин для удобной работы с UI? Условно, есть черный прямоугольник и мне нужно расположить надпись поверх него чтобы она была ровно посередине. Привык что во всяких фотошопах есть линейки, линия появляется когда располагаешь что-то по середине и прочие удобные штуки. Тут же всё как-то вслепую.
Аноним 13/04/25 Вск 07:21:44 1017310 121
>>1017305
Image background;
TMP_Text text;

background.color = Color.black;
background.enabled = true;
text.text = "Text";
text.enabled = true;
Аноним 13/04/25 Вск 07:23:09 1017311 122
Аноним 13/04/25 Вск 10:02:45 1017313 123
image 86Кб, 1125x610
1125x610
image 239Кб, 1533x1525
1533x1525
У разрабов из юнитека похоже шизофрения. Они в одном и том же классе данных используют и свойства, и просто публичные поля.
Аноним 13/04/25 Вск 10:03:16 1017314 124
88d50d74756b0f6[...].jpg 138Кб, 780x438
780x438
>>1014442 (OP)
нужна программа для нарезки изображения на тайлы
У меня есть высоко художественная картинка хочу разбить её на плитку и загрузить в движок. НЕ СРЕДСТВАМИ ЮНИТИ!.
Аноним 13/04/25 Вск 11:44:21 1017320 125
>>1017304
>но если юзать в редких случаях каких-то, то вроде норм
Вот у меня такое же ощущение сложилось. Но, зачем мне для редких случаях подключать этого монстра, если можно написать свой простой Event Bus. Наверное MessagePipe больше для корпоратов с большими проектами.

А ты переходил с UniRx на R3? Есть ли с этим проблемы? Думаю заменить UniRx на новую библиотеку от этого же автора.
Аноним 13/04/25 Вск 12:15:54 1017325 126
>>1017311
Да про это я в курсе, но оно не выравнивает, а просто масштабирует. Т.е. да, если я поставил надпись почти в центр, то при смене разрешения экрана она будет масштабироваться, но не будет pixel perfect выравнивания по центру как в каком-нибудь Ворде или Фотошопе.
Аноним 13/04/25 Вск 12:36:36 1017328 127
>>1017325
Будет. Погугли видосы или пткажи пример как у тебя не получается.

Там всё ко всему привязывается и якораями закрепляется для масштабирования
Аноним 13/04/25 Вск 13:48:55 1017333 128
png.png 308Кб, 2560x992
2560x992
>>1017328
Ну допустим. Вот текст расположен поверх кнопки. Он прикреплен к центру и масшатабируется нормально. Могу его к правому или левому углу прикрепить и тогда будет при масшатбировании тянутся вправо или влево. Но чтобы он всегда висел над центром кнопки я должен ручками его расположить там. И мне бы какой то инструментарий типа линейки которая будет показывать ширину кнопки в пикселях чтоб я знал когда текст или любой другой элемент ровно над серединой расположен
Аноним 13/04/25 Вск 13:51:46 1017334 129
Screenshot1.jpg 28Кб, 915x178
915x178
>>1014442 (OP)
Господа, есть ли кто здесь разбирается в новых веениях 12й версии шарпа?

Что этот еблпн нехороший человек сделал со свичём?
Аноним 13/04/25 Вск 14:05:43 1017336 130
1000017499.jpg 133Кб, 1220x818
1220x818
>>1017333
Вот то что тебе нужно:
Аноним 13/04/25 Вск 14:07:17 1017337 131
>>1017334
Паттерн матчинг, удобная штука, в актуальных версиях юнити поддерживается

иф эффект == эффект.фриз ретур нью ...
иф эффект == ...
Аноним 13/04/25 Вск 14:15:06 1017340 132
>>1017320
Ну почему сразу монстра, 1 такой либой больше или меньше не страшно.
Если код стриппинг включен, то и куча лишнего кода не попадет в билд.

Но а так да, простую реализацию сделать легко.

По поводу Р3 - апи во многом очень похоже на юнирх судя по тому что я видел. Сам не юзал, потому что юнирх на все хватает и каких-то особых проблем с ним нету.
Аноним 13/04/25 Вск 14:22:36 1017343 133
>>1017340
>код стриппинг включен
В чем различие уровня стрипинга в настройках? Мельком читал что на слабом код не ломается, а если макс сделать то может попидорасить, замечал чтонить?
Аноним 13/04/25 Вск 14:27:23 1017345 134
>>1017343
Макс не ставил.

Если ставить средний, то он начинает уже агрессивно вырезать код, но терпимо - например у меня вырезал конструкторы классов которые зареганы в вконтейнере, даже дефолтные конструкторы, которые сами генерируются.

Но это можно обойти - на все конструкторы классов, которые зареганы в вконтейнере, Preserve повесить, а если у класса конструктора нет - сделать пустоц и на него Preserve.

Билд сокращается ощутимо, что то типа со 100мб до 80мб на андроиде падал, например
Аноним 13/04/25 Вск 14:38:21 1017349 135
>>1017337
Удобно?

Вы не могли бы расшифровать, этот свич?
Я придерживаюсь одной простой концепции если код мне не понятен, я шлю его нахуй и переписываю на понятный мне код.
Аноним 13/04/25 Вск 14:38:49 1017350 136
>>1017343
High - даже не пытайся ставить
Medium - вроде бы всё хорошо, но насколько я помню, то что-то в Steamworks ломается и билд отправляется в помойку
Low - заебись
Аноним 13/04/25 Вск 14:39:56 1017351 137
Screenshot2.jpg 40Кб, 866x336
866x336
>>1017337
вот это как развернуть?
Аноним 13/04/25 Вск 14:45:53 1017352 138
>>1017351
Покажи имена параметров конструктора Buff. Покажу как сделать код понятнее.
Аноним 13/04/25 Вск 14:48:18 1017353 139
Screenshot3.jpg 58Кб, 811x499
811x499
Аноним 13/04/25 Вск 14:54:00 1017355 140
image 116Кб, 1386x1202
1386x1202
Аноним 13/04/25 Вск 15:18:49 1017359 141
>>1017349
> Вы не могли бы расшифровать, этот свич?
Я это уже сделал.

> иф (эффект == эффект.фриз) ретурн нью ...
> иф (эффект == эффект.чтотоеще) ретурн нью


> Я придерживаюсь одной простой концепции если код мне не понятен, я шлю его нахуй и переписываю на понятный мне код.
Достаточно открыть справку по языку, или вбить его в чат гпт и попросить объяснить.

>>1017351
То что ты развернул это не часть свича, это лямбда функции.

void HihiHaha(Monster monster)
{
monster.RecalculateSpeed();
}

И в место вызова лямбы вставить HihiHaha. Аналогично с остальными лямбдами.
Аноним 13/04/25 Вск 15:31:15 1017360 142
Screenshot4.jpg 48Кб, 666x623
666x623
>>1017355
Спасибо, и последнее это проверка на null и в случае удачи возвращает значение?

Короче как можно упростить лямбда выражение?
Аноним 13/04/25 Вск 16:00:40 1017363 143
Аноним 13/04/25 Вск 16:30:39 1017368 144
image 69Кб, 943x834
943x834
>>1017360
>Короче как можно упростить лямбда выражение?
Если хочется ещё больше раскрыть лямбду, то вот способ.
Аноним 13/04/25 Вск 16:46:04 1017369 145
Screenshot5.jpg 100Кб, 643x984
643x984
Аноним 13/04/25 Вск 17:04:29 1017371 146
>>1017345
>>1017350
Спасиб за инфу, помню столкнулся из-за этого и не понимал, как это он так ломает, вроде в редакторе все ок, а компилишь и происходит какая-то залупа.

Для чего тогда нужна это настройка если она так ломает? Особено типо high? Должно же быть какоето назначение.
Аноним 13/04/25 Вск 18:00:23 1017372 147
>>1017371
Ну медиум норм тема, ращмер билда сильно сокращает, особенно когда у тебя в проекте куча стороннего кода, всякие там сдк есть. Просто Preserve на конструкторы повесить и скомпилится.

High хз, я даже не пробовал.
Аноним 14/04/25 Пнд 09:38:10 1017427 148
Screenshot2.jpg 38Кб, 584x296
584x296
>>1014442 (OP)
Опять минутка ненависти.
Может я что-то не понимаю или это пример что теперь свичи могут и в иф,
но нахуя если кол-во строк тоже? А разбирал я это минут 15ть.
Аноним 14/04/25 Пнд 09:39:38 1017428 149
>>1017427
блядь только сейчас заметил это же гавно можно записать в одну строку, ну да молодцы может когда нибудь по производительности шарп и догонит кресты
Аноним 14/04/25 Пнд 10:15:18 1017429 150
image 157Кб, 1320x1423
1320x1423
>>1017427
Ты правильно чувствуешь, что код в первую очередь должен быть читаемым. У C# много возможностей и некоторые ими сильно злоупотребляют в угоду написания короткого кода.

Могу тебе сразу посоветовать всегда использовать фигурные скобки, даже если после оператора (if/for) идёт одна строка кода. С опытом понимаешь, что это повышает читабильность и уберегает от ошибок.
Аноним 14/04/25 Пнд 10:49:04 1017433 151
>>1017427
>Нахуя
Читается легче
Нет повторения слова damage несколько раз.
Любое повторение это всегда хуйня, если есть возможность его избежать - стоит избежать. Потому что потом damage надо будет заменить на damageReceived какой нибудь, ты его скопируешь, и должен будешь все слова damage заменить, не заметишь во второй строке damage и будет пиздецовый баг.

Любое снижение когнитивной нагрузки(сколько всего надотдержать в голове) и пространмтва для ошибки по невнимателньости - это то к чему стоит стремиться.

>>1017428
К производительности это никакого отношения не имеет, шарп по производительности не догонит С++. Ну, дотнетовский шарп, джобы с бёрстом могут обгонять С++.
Аноним 14/04/25 Пнд 11:43:35 1017438 152
1663622906249.png 387Кб, 778x884
778x884
>>1017427
Ты пропускал матешу в школе?
Это буквально стандартная запись системы.
Аноним 14/04/25 Пнд 11:52:14 1017441 153
>>1017433
>шарп по производительности не догонит С++
А какие минусы у этого есть? Ну, с одной стороны как будто сложно сделать такую игру, тем более инди, чтобы в плотную упереться в этот фактор.
С другой стороны - RE Engine, где тоже основной язык C#, но, у них свои исходники на руках.

На анриле мало кто из инди полезет ковырять движок так, чтобы впиливать свои решения основательные. Студии чаще этим занимаются, чем обычный инди-разраб. Да и не всегда команда инди это делает.

То есть, при всех плюсах/минусах истина - где-то посередине. Даже при том, что у условного анрила открытый сурс-код и плюсы.
Аноним 14/04/25 Пнд 11:55:46 1017442 154
image.png 125Кб, 400x400
400x400
>>1017441
> истина - где-то посередине
истина в готовых ассетах и модификации уже готового под себя
Аноним 14/04/25 Пнд 11:58:31 1017443 155
image 429Кб, 1814x861
1814x861
Аноним 14/04/25 Пнд 12:08:23 1017445 156
>>1017443
уде давно во всём мире и во всех нормальных школах надрачивают на C# - это самый простой, понятный и полезный язык
Аноним 14/04/25 Пнд 12:15:36 1017446 157
>>1017445
По-моему надрачивают на Python.
Аноним 14/04/25 Пнд 13:25:22 1017448 158
>>1017429
>код в первую очередь должен быть читаемым
Здесь наверное нас всего двое таких, будем держаться вместе.
Аноним 14/04/25 Пнд 15:01:00 1017458 159
image 23Кб, 686x386
686x386
Аноним 14/04/25 Пнд 18:54:19 1017475 160
Аноним 15/04/25 Втр 10:37:00 1017503 161
>>1017474
Во даун... Как таких заносит сюда
Аноним 15/04/25 Втр 14:00:27 1017512 162
Аноним 15/04/25 Втр 14:34:07 1017522 163
image 2496Кб, 1024x1024
1024x1024
>>1017506
кому ты это сказал?
Аноним 15/04/25 Втр 16:22:14 1017532 164
Как там, playerprefs все еще лучший способ делать ачивы?
json все еще единственный способ делать сохранения без самоубийства, но все равно близко к этому, хули юнити единственный движок без встроенного считывания и записи всей сцены
Аноним 15/04/25 Втр 16:27:15 1017533 165
>>1017532
>юнити единственный движок без встроенного считывания и записи всей сцены

Файлы сцены .unity это формат редактора, в рантайме этих файлов всё равно нет.
Аноним 15/04/25 Втр 16:33:05 1017534 166
>>1017532
>всей сцены
впервые вижу, чтобы кто-то пытался сохранять всю сцену, ты разработчик гта 6?
Аноним 15/04/25 Втр 16:37:32 1017535 167
>>1017532
> Как там, playerprefs все еще лучший способ делать ачивы?
Не думаю, что ачивки(как и любые важные или объёмные данные) стоит делать префсами(они хранятся в реестрее)
Лучше просто файлик в папке с игрой/в папке данных/ в облаке.

> json все еще единственный способ делать сохранения без самоубийства
Смотря каких данных.
Если объем данных большой и должен часто стримиться на диск, лучше использовать что-то без сериализации, либо быструю бинарную сериализацию(binary serializer плохой вариант, а memory pack норм)

> юнити единственный движок без встроенного считывания и записи всей сцены
Так надо
Аноним 15/04/25 Втр 16:40:13 1017536 168
>>1017532
>playerprefs
>json
Все кал, делаешь собственную сериализацию и все, никаких проблем. По мимо того что можешь модифицировать в любых размерах, так еще и методы защиты по типу соли добавлять, взломать такое будет не возможно.
Аноним 15/04/25 Втр 16:45:38 1017537 169
15995286713070.png 159Кб, 470x512
470x512
Аноним 15/04/25 Втр 17:01:05 1017539 170
>>1017536
Я честно не знаю в какой ситуации должно быть не похуй что кто-то может отредактировать сейвы. Ну только если игра не ммо, но даже в таком случае редактировать будут пакеты которые тебе отсылают поэтому в каком состоянии ты там хранишь сейвы похуй...
Аноним 15/04/25 Втр 19:40:04 1017554 171
>>1017536
Нахуя свой сериализатор если можно поксорить выхлоп и результат будет не хуже?
Аноним 15/04/25 Втр 21:49:28 1017572 172
Есть примеры ситуаций когда надо лучше эвенты?
Аноним 15/04/25 Втр 21:59:08 1017573 173
>>1017536
В последней игре я вообще сохранял в текстовом редакторе, сначала в целях отладки, а потом просто хер забил, сейчас детишки совсем отупели они не то что-то модифицировать, они даже переписать строку в блокноте не могут.
Аноним 15/04/25 Втр 22:18:05 1017576 174
Аноним 16/04/25 Срд 03:40:35 1017602 175
У меня Мандела или раньше в юнити классы должны были называться по имени скрипта? Сейчас заметил что у меня один класс отличается от названия файла и все нормально компилируется, раньше вылазили ошибки в консоли
Аноним 16/04/25 Срд 05:43:29 1017605 176
>>1017576
чем просто позвать функцию и выполнить
В видео что я смотрел там говорили что пиздец как облегчает выполнение левел апов, но как по мне этот пример когда это нужно плохой
Аноним 16/04/25 Срд 05:46:10 1017606 177
>>1017605
если можно сделать эвент - лучше сделать
Аноним 16/04/25 Срд 06:24:12 1017607 178
Аноним 16/04/25 Срд 10:33:37 1017613 179
>>1017605
Ивенты надо юзать когда нужно.

Вернее, ивенты из сишарпа я бы не советовал юзать вообще, лучше UniRx сразу брать.

Можно делать условно так:

playerState.PlayerHealth.Subscribe(health => healthLabel.SetText(health));

И всё, у тебя готово отображение хп персонажа
Аноним 16/04/25 Срд 10:57:57 1017615 180
>>1017607
А что и когда поменялось?
Аноним 16/04/25 Срд 11:56:19 1017621 181
>>1017602
Стало интересно, яндекс и гугл незнают, а АИ отвечает.

В Unity3D требование, чтобы имя файла и имя публичного класса, наследуемого от MonoBehaviour, совпадали, существовало на протяжении долгого времени, так как это обеспечивало правильное связывание скриптов с игровыми объектами в редакторе. Однако начиная с Unity 2020.3 (и более поздних версий) это ограничение было частично снято благодаря улучшениям в системе скриптов и инструментах, таких как Visual Studio Tools for Unity.
Подробности:
До Unity 2020.3:
Имя файла скрипта (например, MyScript.cs) и имя класса внутри этого файла (например, public class MyScript : MonoBehaviour) должны были строго совпадать. Если они не совпадали, Unity выдавала ошибку вроде: "Can't add script component because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match".

Это было связано с тем, как Unity связывала скрипты с компонентами в редакторе.

С Unity 2020.3 и новее:
Благодаря обновлениям в Visual Studio Tools for Unity и улучшениям в обработке скриптов, Unity стала более гибкой в отношении именования. Теперь имя файла и имя класса MonoBehaviour могут не совпадать, но при этом класс должен быть корректно определён и не содержать ошибок компиляции.

Например, файл MyScriptFile.cs может содержать класс public class DifferentName : MonoBehaviour, и Unity сможет его распознать, если скрипт правильно импортирован в проект.

Однако рекомендуется придерживаться старого соглашения (совпадение имён) для удобства и совместимости, особенно при работе в команде или с устаревшими версиями Unity.

Ограничения и рекомендации:
Если в файле несколько классов, только один из них может быть публичным и наследоваться от MonoBehaviour, чтобы Unity корректно его обработала.

Вспомогательные классы (не MonoBehaviour) в том же файле должны быть размещены ниже основного класса, чтобы избежать проблем с компиляцией.

Пространства имён (namespace) иногда могут вызывать проблемы с распознаванием классов в старых версиях Unity, поэтому в таких случаях рекомендуется их избегать или проверять настройки проекта.

Если вы используете DLL-библиотеки, то имена классов внутри них также не обязаны совпадать с именем файла DLL, но они должны быть правильно импортированы в проект.

Почему это изменилось?
Обновления в инструментах разработки (например, Visual Studio Tools for Unity) улучшили интеграцию и обработку скриптов, что позволило снять некоторые строгие ограничения.

Unity стала поддерживать более современные подходы к организации кода, что сделало движок более гибким для разработчиков, использующих сложные архитектуры проектов.

Практический совет:
Хотя Unity 2020.3 и новее допускают несовпадение имён, для упрощения работы и избежания потенциальных ошибок рекомендуется:
Называть файлы и классы одинаково.

Проверять отсутствие ошибок компиляции в скриптах.

Использовать последнюю версию Unity и Visual Studio Tools for Unity для максимальной совместимости.

Если вы работаете с более старыми версиями Unity (до 2020.3), обязательно соблюдайте правило совпадения имён файла и класса.

Источник: Информация основана на документации Unity и обновлениях Visual Studio Tools for Unity, в частности, исправлениях, связанных с обработкой классов MonoBehaviour (например, журнал изменений Visual Studio Tools for Unity).
Аноним 16/04/25 Срд 12:12:01 1017623 182
>>1017621
Надо бы западные темы глянуть потому что я последний раз до этого разрабатывал в 2022 и эта ошибка точно была
Аноним 16/04/25 Срд 13:51:15 1017636 183
>>1017621
Я все еще на 21, и вроде как видел в прошлом году
Аноним 19/04/25 Суб 09:04:50 1018101 184
Попрос от нуфага.


Я прошёл кое какой урок по ТРИ В РЯД.

И недавн узнал, что такие простые игры типа карточные, те же 3 в ряд и коллекторы делают чисто в CONVAS.

И вопросец - а какие профиты от этого? Может там проще как-то с объектами на сцене взаимодействовать благодаря этому и код менее макаронный получается? Ну я не знаю..
Ну и какие подводные камни, т.е минусы? Если брать в качестве примера Кенди Краш какой-нибудь (да, я в курсе у них свой движок).
Аноним 19/04/25 Суб 10:23:17 1018108 185
>>1018101
>И недавн узнал, что такие простые игры типа карточные, те же 3 в ряд и коллекторы делают чисто в CONVAS.

А можно примеры таких игр? А то чет очень странно что бы делать всю игру в Canvas через UI.
Аноним 19/04/25 Суб 10:45:22 1018111 186
>>1018108
Смотрел запись собеса чела на зп 2500, он рассказывал об опыте работы, когда пришлось всю игру переносить из конвас. А до этого она так и существовала в нём. Спросил у неёронки чо знает, грит да, изи игры чисто в конвасе делают. Думайте.
Аноним 19/04/25 Суб 11:39:02 1018116 187
>>1018101
>всю игру в Canvas через UI.
Эм, ну 2д игру можно спокойно делать и через него, есть свои плюсы, есть и минусы.
Если говорить про архитектуру, то вопрос в том и скрипты прям на канвасе вешать или все таки отдельно иерархию геймобджектов делать?
В общем можно с определенными условиями. Зависит от потребностей и желаний.
Аноним 19/04/25 Суб 14:04:15 1018122 188
>>1018101
>>1018111
Делал матч 3 в канвасе не по своей воле, переносить было уже поздно. Смысла в этом не вижу, только лишние проблемы когда дело касается порядка отрисовки и шейдеров.

И еще есть такой минус, что канвас перерисовывается полностью при анимациях внутри него и это бьет по производительности, если всяких эффектов слишком много, то уже захочется отказаться от такого оверхеда.

По сути плюс только один и он условный(не особо нужный, потому что тут можно обойтись без канвасов вовсе без проблем) - легче сделать прямое взаимодействие ui и игры.
Например у тебя игра про составление слов, снизу есть панелька с какими-то буквами, которые ты можешь размещать на сетке перетаскиванием. Если все в канвасе - ты прям берешь букву - ведешь ее за пальцем - палец отпускают - ты её же прицепляешь на поле. Без пересоздания каких-то отдельных сущностей в виде спрайтов.

>>1018116
> Если говорить про архитектуру, то вопрос в том и скрипты прям на канвасе вешать или все таки отдельно иерархию геймобджектов делать
Ну, на каком-нибудь тайле в матч 3 у тебя должен будет скрипт висеть так или иначе, в идеале просто вью без всякого лишнего.
И отдельный монобех, в который ты закидываешь контейнеры тайлов и всё что нужно.

Соответственно получив все эти данные со сцены, можно уже дальше управлять этим всем извне, всю логику писать независимо от канваса и юи элементов.

Поэтому в целом нерекомендую канвас даже для статичных игр, если их прям всерьез доделывать до релиза с заделом на дальнейшую поддержку.
Если прям простое то может и можно.
Аноним 19/04/25 Суб 15:19:51 1018131 189
Есть какие-то методы/ассеты/аддоны, чтобы в юнити сделать простенькую анимацию прямо через код? а не засорять файлы animator-ами

суть в том, что у меня простенькая аркада (не вампир сюрвиворс, но похожее, не суть) и несколько десятков юнитов и предметов лута
в итоге, надо на каждого юнита делать файлы анимации типа "покачивания" и атаку в 2-3 фрейма, а подбираемые предметы (по факту - гифки, исчезающие при подборе)

есть ли способ, вместо миллиона мусорных файлов сделать что-то типа "пока юнит идет - спрайт_идет, наклон направо, наклон налево, в цикле, пока юнит атакует - спрайт_удар" а для предметов обойтись "монетка.компонент.спрайт = спрайт_монетка_анимация, зациклить"?

на ум идет только корутины с заменой sprite, но не верю, что нет какого-то готового решения
Аноним 19/04/25 Суб 15:29:23 1018132 190
>>1018131
есть библиотеки для твининга (tween)

будь осторожен, одна из них "в поддержку украины", т.е. там может быть вредоносный код
Аноним 19/04/25 Суб 15:42:02 1018135 191
>>1018131
ответ дикпика

Есть несколько эффективных способов сделать простую спрайтовую анимацию прямо через код без использования Animator:

1. Самописный Sprite Animator (рекомендуется для вашего случая):

csharp
public class SimpleSpriteAnimator : MonoBehaviour
{
public Sprite[] idleSprites;
public Sprite[] moveSprites;
public Sprite[] attackSprites;

[SerializeField] private float frameRate = 0.15f;

private SpriteRenderer _renderer;
private Coroutine _currentAnimation;

void Start()
{
_renderer = GetComponent<SpriteRenderer>();
PlayIdle();
}

public void PlayIdle() => PlayAnimation(idleSprites, true);
public void PlayMove() => PlayAnimation(moveSprites, true);
public void PlayAttack() => PlayAnimation(attackSprites, false);

private void PlayAnimation(Sprite[] frames, bool loop)
{
if(_currentAnimation != null) StopCoroutine(_currentAnimation);
_currentAnimation = StartCoroutine(Animate(frames, loop));
}

private IEnumerator Animate(Sprite[] frames, bool loop)
{
do
{
foreach (var frame in frames)
{
_renderer.sprite = frame;
yield return new WaitForSeconds(frameRate);
}
}
while (loop);
}
}
Использование: Назначьте спрайты в инспекторе и вызывайте методы для смены анимаций.

2. Time-based анимация без корутин:

csharp
public class SimpleAnimation : MonoBehaviour
{
public Sprite[] frames;
public bool loop = true;

private SpriteRenderer _renderer;
private int _currentFrame;
private float _timer;

void Start() => _renderer = GetComponent<SpriteRenderer>();

void Update()
{
_timer += Time.deltaTime;
if(_timer < 0.1f) return;

_timer = 0;
_currentFrame++;

if(_currentFrame >= frames.Length)
{
if(loop) _currentFrame = 0;
else return;
}

_renderer.sprite = frames[_currentFrame];
}
}
3. Для предметов лута (UI-версия):

csharp
public class LootItem : MonoBehaviour
{
public Sprite[] sprites;
public float animationSpeed = 0.5f;

private Image _image;
private int _index;

void Start()
{
_image = GetComponent<Image>();
InvokeRepeating(nameof(Animate), animationSpeed, animationSpeed);
}

void Animate()
{
_index = (_index + 1) % sprites.Length;
_image.sprite = sprites[_index];
}

public void Collect()
{
CancelInvoke();
Destroy(gameObject);
}
}
4. Оптимизация для множества объектов:
Создайте AnimationData ScriptableObject для переиспользования анимаций:

csharp
[CreateAssetMenu]
public class AnimationData : ScriptableObject
{
public Sprite[] frames;
public float frameDuration = 0.1f;
public bool loop = true;
}
5. Альтернативные решения:

LeanTween (ассет из Asset Store) - может анимировать любые свойства через код

DOTween - популярная библиотека для простых анимаций

Shader-based анимация - если спрайты в атласе, можно анимировать UV-сдвигом

Преимущества подхода:

Нет лишних файлов .anim и Animator Controller

Полный контроль над анимацией через код

Легко менять скорость/наборы спрайтов динамически

Можно создавать сложные паттерны анимаций программно

Экономия памяти для простых анимаций

Советы:

Храните разные анимации в отдельных папках (Sprites/Units/UnitName/Animations)

Используйте Sprite Atlas для оптимизации

Для 2D-скелетной анимации посмотрите на Unity-пакет "2D Animation"

Используйте pooling для часто воспроизводимых анимаций

Эти методы особенно хороши для procedural animation и простых циклов. Для сложных персонажей с большим количеством состояний все же стоит рассмотреть использование Animator, но для вашего случая (десятки юнитов с минимальной анимацией) кодовая реализация будет оптимальной.
Аноним 19/04/25 Суб 15:59:18 1018137 192
Аноним 19/04/25 Суб 16:56:55 1018140 193
Аноним 19/04/25 Суб 18:57:24 1018164 194
>>1018131
Тебе не нужны никакие ассеты. Просто напиши свой скрипт, который будет переключать спрайты так, как тебе надо. Вынесешь нужные настройки в редактор.
Аноним 20/04/25 Вск 04:44:32 1018199 195
Как же охуенно, только что завершил самописный менеджер диалогов со всеми фичами какие хотел, осталась малость, но я уже почти сутки не спал так что завтра или в понедельник доделаю
Аноним 20/04/25 Вск 07:15:08 1018200 196
>>1018137
>>1018140
глянул
если по движению вопросов нет, то как в том же ЛитМошен менять спрайты? 2д-проект, нужна опция вида "зациклить спрайт с монеткой" или подобное
Аноним 20/04/25 Вск 10:18:41 1018204 197
>>1018200
Бро, напиши сам скрипт, под себя.
Аноним 20/04/25 Вск 12:25:24 1018207 198
>>1018200
Хз, но в дотвине можно сделать sequence и туда последовательно добавлять интервалы и коллбеки
Аноним 20/04/25 Вск 12:57:55 1018209 199
>>1018132
>будь осторожен, одна из них "в поддержку украины", т.е. там может быть вредоносный код
Я помню, что один хохло-эксплойт попал непосредственно в Unity Hub. Если он определял российский IP-адрес, то удалял все файлы на диске.
Аноним 20/04/25 Вск 13:44:29 1018216 200
>>1018213
ватозависимый, чому не в окопе?
Аноним 20/04/25 Вск 14:16:44 1018222 201
>>1018221
И что за хуету ты кинул? 0 пруфов, просто мусор какойто.
Я же поэтому и написал что все это пиздешь не стоящий ничего.
Аноним 20/04/25 Вск 14:21:21 1018225 202
>>1018222
вы репутацию себе заработали на века - не отмоетесь
Аноним 20/04/25 Вск 14:24:36 1018226 203
>>1018225
От мелкобуква пиздабола отмываться не надо.
Аноним 20/04/25 Вск 14:31:01 1018227 204
Аноним 20/04/25 Вск 14:32:54 1018228 205
image 1087Кб, 1560x777
1560x777
image 172Кб, 960x402
960x402
>>1018218
>Не надо нести дезинформацию
Но это реальная новость. Плюс совсем недавно было нечто похожее в среде мододелов.
Аноним 20/04/25 Вск 14:39:36 1018231 206
>>1018227
>>1018228
А почему я не сталкивался тогда, мм?? Пиздаболия это все, и ничего больше.
Если бы реально какие-то траблы были, это бы все индюки почувствовали.
Аноним 20/04/25 Вск 14:41:17 1018232 207
3 .mp4 1421Кб, 854x480, 00:00:11
854x480
>>1018231
я только щас понял, что ты тролишь
Аноним 20/04/25 Вск 18:52:06 1018294 208
>>1018131
Ты создаешь анимации, даешь названия, потом в коде вызываешь аниматор и запускаешь как хочешь по названию.

Ну типа
if (isKeyJump) animation.Play("jump")

Это лучше всего, но почему-то на ютубе готовы трахаться даже с деревом ради спрайтовых анимацией. Редко ведел что дергают из кода, хотя кодом задают состояния.
Аноним 20/04/25 Вск 21:06:59 1018314 209
>>1018294
> Ты создаешь анимации, даешь названия, потом в коде вызываешь аниматор и запускаешь как хочешь по названию.
Хорошо, как создать анимацию, не создавая файл .anim? Ну, то есть, то, что я спросил буквально первой строкой коммента, на который ты отвечал

дефолтные Animation Controller я юзал изначально, речь как раз о том, что у меня пара десятков объектов, которые из себя представляют тупо выпадающие из мобов "гифки" и на каждую пилить по файлу и animator-у уже вымораживает
Аноним 20/04/25 Вск 21:39:06 1018317 210
>>1018314
Я перестал тебя понимать
Ты ходишь сделать анимацию без рисовки анимации?
Аноним 20/04/25 Вск 22:45:54 1018321 211
>>1018314
Это делается твинами, дотвин самый норм вариант

Тут >>1018294 хуета написана
Аноним 21/04/25 Пнд 06:32:48 1018330 212
Стоит ли отписываться от UnityEvent, если подписываешься на него вручную? Допустим, в своём MonoBehaviour, в методе Awake добавляешь подписку на OnClick. Стоит ли в Destroy сделать отписку? Даже если ты условно знаешь, что время жизни твоего MonoBehaviour и кнопки совпадают.
Аноним 21/04/25 Пнд 06:45:56 1018331 213
>>1018330
> Стоит ли в Destroy сделать отписку?
стоит, но это всё равно бессмысленная трата одной строки, утечки в данном случае не будет
Аноним 21/04/25 Пнд 13:14:44 1018364 214
image.png 104Кб, 1197x360
1197x360
>>1018317
Я хочу сделать анимацию без создания файла .anim и, в идеале, привязки Animator Controller к каждому объекту

Вот пример картинки из интернетов
в Юнити это уже импортнется в виду sprite-multiple, нарезанное на кадры и во время игры у него нет ничего, кроме зацикленного спрайта

а таких предметов (тупо зацикленный значок монетки/бумажки/алмаза и тд) много и на каждый нужно создать .anim-файл, расставить кадры по таймлайну, настроить скорость и тд
вот и интересуюсь, есть ли способ это автоматизировать до уровня "создать_подбираемое(тип, спрайт)", чтобы в нужном месте рисовался один и тот же префаб с разными параметрами и по названию спрайта подтягивалась зацикленная анимация - а добавление новых коллектибсов в игру упростилось бы до "закинул спрайт в файлы и прописал в коде, что происходит при подборе монетки нового цвета"

>>1018321
штука выше на твинах возможна? почитал про нее, на первый взгляд оно анимирует движение по координатам/траекториям, а не спрайты
Аноним 21/04/25 Пнд 13:58:09 1018367 215
>>1018364
> штука выше на твинах возможна? почитал про нее, на первый взгляд оно анимирует движение по координатам/траекториям, а не спрайты
Да
>>1018207
> в дотвине можно сделать sequence и туда последовательно добавлять интервалы и коллбеки

Ты можешь сделать монобех в который будешь перетаскивать последовательность картинок и интервал кадров и вот так это реализвать универсально
Аноним 21/04/25 Пнд 15:46:44 1018390 216
Хоспади исусе. Какие аниматоры, какие твины. Вы понимаете, что челу нужно просто спрайты сменять? Под это дело ещё с древних времён пишут простой класс, который содержит список спрайтов, скорость смены и нужно ли зациклить.
Аноним 21/04/25 Пнд 19:19:01 1018408 217
>>1018390
Забей, поколение проебано.
Аноним 21/04/25 Пнд 19:49:41 1018409 218
>>1018408
Так пиздели деды из каждого поколения, вплоть до 3000 e.d.
Аноним 21/04/25 Пнд 22:14:32 1018428 219
идиократия.mp4 3742Кб, 1280x720, 00:00:05
1280x720
>>1018409
Справедливое замечание. Но тут есть нюанс. Мне интересно, как будут развиваться будущие поколения, когда ИИ-чатботы станут повсеместными и дети в них будут сидеть с "пелёнок". Станут ли эти люди в разы умнее нас или же наоборот - глупее.
Аноним 21/04/25 Пнд 22:28:26 1018429 220
>>1018409
>вплоть до 3000 e.d.
Еще скажи что земля круглая
Аноним 21/04/25 Пнд 22:32:20 1018430 221
>>1018428
>Но тут есть нюанс.
1. Люди научились в общины.
2. Люди научились в огонь.
3. Люди научились в бронзу.
4. Люди научились в земледелие.
5. Люди научились в письменость.
6. Люди научились в электричество.
7. Люди научились в интернет.
8. Люди научились в нейроночек. <- Вы тута
9. Люди научились в генерацию любого контента по одной фантазии.
10. И т.п и т.д.

Все же не забывайте что нейроночки это буквально буст во всех областях человечества. В разное степени поршивости на данный момент, но всеже.
Аноним 21/04/25 Пнд 22:54:59 1018433 222
>>1018408
Или просто ты лоускилл, и не понимаешь, что аниматор заебись инструмент для дизайнеров.
А подход через твин полный эквивалент твоей ебли с апдейтом
Аноним 22/04/25 Втр 00:00:36 1018435 223
>>1018433
Съебись отсюда дизайнер комнатный, будет мне еще про лоускилл рассказывать. Зумерки совсем охуели.
Аноним 22/04/25 Втр 00:01:59 1018436 224
>>1018435
Ну да, охуели. Какие минусы?
Аноним 22/04/25 Втр 04:38:36 1018441 225
>>1018390
Да ты еще раз прочитай зачем ему вообще это нужно, это же умора конкретная.
Аноним 23/04/25 Срд 00:02:01 1018505 226
изображение.png 43Кб, 1891x391
1891x391
>>1014442 (OP)
анонсы, это правда? задумался об окне настроек и наткнулся на интересную мысль, как вы вообще реализуете эту жизненно необходимую фичу?
Аноним 23/04/25 Срд 00:37:39 1018507 227
Аноним 23/04/25 Срд 01:01:27 1018509 228
>>1018507
так как сделать то тогда
Аноним 23/04/25 Срд 01:08:13 1018510 229
Аноним 25/04/25 Птн 01:12:31 1018744 230
Я наверное совсем шизанулся, но не могу придумать способа сделать открывание дверей так, чтобы они при этом не отталкивали игрока. Есть идеи? Даже поставил на скачивание пару игр посмотреть как там это дело сделано.
Аноним 25/04/25 Птн 01:16:39 1018745 231
>>1018744
В противоположную от игрока сторону
Аноним 25/04/25 Птн 01:18:23 1018746 232
>>1018745
Игрок закрыл дверь за собой и при попытке открыть обратно откидывается. Или холодильник/шкаф, такие вообще внутрь не открываются
Аноним 25/04/25 Птн 01:33:44 1018748 233
>>1018746
> Игрок закрыл дверь за собой и при попытке открыть обратно откидывается.
Так и при открвтии обратно в противоположную сторону откроется

> Или холодильник/шкаф, такие вообще внутрь не открываются
Эти без коллайдера

Но да, тема необычная, варианты разные есть что делать
Аноним 25/04/25 Птн 01:37:14 1018749 234
>>1018748
> Так и при открвтии обратно в противоположную сторону откроется
Ток если дверь по середине рамы пихать, иначе она через нее проходить будет, некрасиво. И все объекты переставлять от дверей. Да и вообще в ирл мало какие двери в обе стороны работают..
> Эти без коллайдера
Тогда прямо через камеру пролетает, тоже некрасиво выглядит, когда вся внутрянка текстуры перед глазами проскальзывает. Надо думоть ещё.
Аноним 25/04/25 Птн 05:40:06 1018754 235
>>1018749
>некрасиво выглядит, когда вся внутрянка текстуры перед глазами проскальзывает. Надо думоть ещё.
у камеры есть параметр один, Far что-то там, покрути его
Аноним 25/04/25 Птн 07:03:54 1018757 236
>>1018744
Ну так пусть отталкивает епты, хули игрок стоит на пути. Хотя конечно от игры зависит и вообще чего ты хочешь от жизни и эстетики. Можешь чекать рейкастом игрока если мешает анимации, на паузу анимацию ставить. Если без коллизий, можно шейдером дверь прозрачной делать во время клипания внутрь камеры. Можешь как в думе двери из космоса которые вверх уходят, или как в Японии внутрь стены. Или как в майнкрафте, тупо мгновенная телепортация двери в открытое состояние. Можешь катсценой отбирать управление у игрока и анимировать открывания закрывания дверей с соответствующей анимацией игрока. Вот те шесть способов из моей головы, выбирай, или епта думалку заводи.
Аноним 25/04/25 Птн 10:56:18 1018760 237
>>1018744
В противоположную сторону как уже сказали
Отключать коллайдер во время анимации открытия
Сам игрок будет делать шаг назад когда открыват дверь на себя(ведет к куче проблем)
Аноним 25/04/25 Птн 11:48:29 1018764 238
>>1018760
а ещё лучше просто стопать анимацию открытия или обратно закрывать дверь, как это сделано в играх габена
Аноним 25/04/25 Птн 14:48:03 1018814 239
>>1018749
Так коллайдер камеры и коллайдер игрока могут быть разными в разных слоях
Аноним 26/04/25 Суб 16:20:34 1018939 240
>>1014442 (OP)
Как же заебала эта параша.
Почему всё что идёт из коробки такое гавно.
Анммация, навигация, физические коллайдеры, материалы всё такое кривое?
Все книги которые я прочитал по юнити, все туториалы, все предлагают какие то кривые решения которые в реальных играх нельзя использовать.
Почему если ты хочешь сделать что то сложне платформера все начинает скатываться в индюшатину.
Причина баха анимация в навмеш агентах, я уже отказался от дерева анимаций и от переходов, у меня аниматор работает только из кода, где я могу запустить любую анимацию, но как сделать так чтобы пока одна анимация не закончилась другая не запускалась? Например как сделать так чтобы мог замахнувшийся на игрока отыгрывал сначала удар, а не срывался на пол анимации и не бежал за игроком. Я знаю есть переходы и дерево, но когда у меня больше 20и анмсаций я не могу разобраться а паутине переходов, поэтому использовал кастомное решение.
Аноним 26/04/25 Суб 16:52:55 1018945 241
>>1018939
>я не могу разобраться а паутине переходов

Ну это только твоя проблема, а не инструмента.
У тебя есть параметры в аниматоре. Что с ними делать сам додумай. Всё там настраивается без проблем.
Аноним 26/04/25 Суб 17:15:14 1018950 242
ну конечно, на что я рассчитывал
Аноним 26/04/25 Суб 17:44:45 1018960 243
>>1018939
> у меня аниматор работает только из кода
> но как сделать так чтобы пока одна анимация не закончилась другая не запускалась?
В коде ждать когда закончится в чем проблема? У него есть апи чтобы всю информацию о его текущем состоянии вытащить
> Например как сделать так чтобы мог замахнувшийся на игрока отыгрывал сначала удар, а не срывался на пол анимации и не бежал за игроком
См выше
> Я знаю есть переходы и дерево, но когда у меня больше 20и анмсаций я не могу разобраться а паутине переходов,
Сабстейты, слои

Аниматор это инструмент для отображения анимаций.
Логика - это логика, за тебя её никто не напишет.
Глобально у тебя два подхода
- либо полный контроль со стороны твоего кода и использование аниматора как тупого проигрывателя анимаций -длину анимаций вписывать в конфиг(соответственно код будет четко знать сколько анимация длится без обратной связи, и подстраивать аниматор под свои нужды)
- либо использовать двустороннюю связь и смотреть в аниматоре его реальный стейт со стороны кода и реагировать на него(отключать управление пока чел замахивается)

Программирование персонажа с большим числом анимаций и разных взаимодействий - это не простая задача.
Аноним 26/04/25 Суб 21:38:31 1019001 244
>>1018939
Зачем ты уходил из дерева анимации и полностью переходил в код, когда блядь в стандартном аниматоре проще всего условия делать чтобы одна анимация не начиналась пока не закончилась другая

Ну и в любом случа корутины
Аноним 26/04/25 Суб 23:35:33 1019014 245
>>1019001
> нюфажина плакает что искаропки нет готовой игры и што все надо делать самому, ссылается на книги где говорят что вы вольны делать что хотите вот вам пример, ссылается на туторы которые не являются туторами в прямом смысле, и все это подается с акцентом весомости этих книг и туторов в гейдеве да еще и с нюфажной колокольни. Нюфажина не знает что такое инди. Нюфажина не может понять как сделать так что бы одна анимация проигрывалась после другой. Нюфажина не асилила аниматор и высрала пасту что юнете хуйня потому что он не асилил аниматор
Ну хуй знает анон, ну хуй знает..
мимо годотя зоонаблюдаю
Аноним 27/04/25 Вск 08:29:43 1019035 246
>>1019014
Наместе годоти я бы вообще помолчал, если в юнити хоть есть кривой аниматор с возможностью инверсной кинематики и слоями, годотя так и осталось на уровне нулевых со своими велосипедами и самописными стейт машинами.
>>1019001
Да в стороеу корутин я и думал, но я думал, что в самом аниматоре есть возможность отслеживать состояние анимации и если она проигрывается не запускать другую, я пытался сделать это через енумы.
И нет сколько лет я ебался с аниматором, ограничивая себя в колличестве анимации, теперь всё намного проще и быстрее, единственно заметил, что мобы теперь скипают по пол анимации атаки.
Аноним 27/04/25 Вск 09:37:29 1019045 247
>>1019035
>что в самом аниматоре есть возможность отслеживать состояние анимации и если она проигрывается не запускать другую
Есть
Аноним 27/04/25 Вск 10:37:19 1019061 248
>>1018939
>Например как сделать так чтобы мог замахнувшийся на игрока отыгрывал сначала удар, а не срывался на пол анимации и не бежал за игроком
А прикинь, если ты ещё решишь добавить дебаффы, которые будут снижать скорость атаки моба на 50%? И тебе придётся снижать как-то скорость анимации. Или ты решишь добавить мобу бафф "ярость", который будет его временно ускорять и тебе нужно будет вместе с тем ускорить скорость анимации бега моба.
Аноним 27/04/25 Вск 12:44:07 1019104 249
>>1019061
Пчел у меня есть дебафы и у мобов и у игрока, мобы не только снижают скорость, а полностью замораживаются с текущей анимацией, игрок не просто замедляет скорость, а меняет анимацию. Ярость кстати тоже есть, только по другому работает.
>>1019045
Ок, буду дальше ковырять это гавно.
Аноним 29/04/25 Втр 14:30:08 1019431 250
Как то скучно
Кто как делает повышение/понижение статов персонажу через рандомные действия/использование предметов?
Я ко всем книжкам и дебафф абилкам леплю лист в котором прописан айди стата и число на которое надо увеличить(уменьшить с минусом)
Может у кого лучше идеии для этого?
Аноним 29/04/25 Втр 21:49:59 1019502 251
Как же я устал быть неэффективным программистом. Слишком много времени уходит на продумывание "правильной" архитектуре и на оформление "хорошего" кода. Переключить бы в голове тумблер, чтобы просто начал писать на результат.
Аноним 29/04/25 Втр 22:09:14 1019504 252
>>1019502
легко, становись вайб-кодером
Аноним 29/04/25 Втр 22:11:52 1019506 253
image 205Кб, 474x402
474x402
>>1019504
>становись вайб-кодером
Запили гайд.
Аноним 29/04/25 Втр 22:13:31 1019507 254
image.png 72Кб, 250x328
250x328
>>1019506
просто загоняешь ТЗ в нейронку и копипастишь без задней мысли
Аноним 30/04/25 Срд 08:25:24 1019519 255
59857750.jpg 98Кб, 1280x720
1280x720
ВЫШЛА! ВЫШЛА!!11

https://unity.com/ru/resources/scalable-performant-ui-uitoolkit-unity-6

Unity Technologies выпущена бесплатно 150-страничная электронная книга в формате PDF под названием "UI Toolkit for advanced Unity developer (Unity 6 edition)". Как следует из названия, эта книга довольно подробно описывает недавно выпущенный UI Toolkit. Она на английском языке.

Мы переписали нашу предыдущую электронную книгу по UI за 2021 год с нуля; это новое издание сосредоточено исключительно на функциях UI Toolkit, с новыми разделами, охватывающими возможности Unity 6, такие как привязка данных, локализация и пользовательские элементы управления.
Аноним 30/04/25 Срд 08:35:49 1019521 256
>>1019519
Мы в новом проекте решили остаться на старой UI-системе. Она простая и понятная. А этот UI Toolkit творение сотоны.
Аноним 30/04/25 Срд 09:09:17 1019524 257
10.webm 1186Кб, 600x466, 00:00:07
600x466
Аноним 30/04/25 Срд 11:00:57 1019540 258
>>1019507
Неиронично, какие минусы?
Аноним 30/04/25 Срд 11:11:45 1019541 259
>>1019540
>Неиронично, какие минусы?
никаких, а тебе зачем? ты же всё равно не делаешь игру
Аноним 30/04/25 Срд 13:47:35 1019561 260
>>1019540
Минусов нет.
Более правильный вопрос - а какие возможности? А возможностей пока не хватает. Знаю про реальные попытки применения вайбкодинга, но даже с минимальными приложениями он толком не справляется.

А вот какие-то наброски, либо что-то очень простенькое осилит.
Аноним 01/05/25 Чтв 21:46:25 1019755 261
>>1019431
Убивай рандом, который влияет на геймплей.

Я серьёзно, рандомизация это первый признак хренового геймдизайна, одно дело делать толковый рандом выпадения предметов, как в каком нить диабле и другое пихать рандом как в большинстве современных рогаликов.

Диды вообще даже в самых примитивных играх прошлого, несмотря на весь свой программистский скил, вообще юзали только списки и очень редко прибегали к рандому.
Аноним 01/05/25 Чтв 22:03:56 1019760 262
У меня вопрос к знатокам.
Вот есть эрпэгэ с кучей префабов.
Реализовал ручные пулы со списками, т.е когда нам нужен к примеру предмет или противник, чекаем пулл на наличие уже созданого, если находим то обнуляем и отдаем, если нету, то создаем с нуля из списка префабов. После нужного взаимодействия деактивируем и помещяем в пулл.
И у меня таких штук, разных типов много. Это так и должно быть?
Предметы, эффекты глобальные, противники, эффекты локальные в сражениях на мобах и персонаже, таймеры для событий. На каждый тип свой отдельный пулл.
Аноним 01/05/25 Чтв 22:12:06 1019762 263
>>1019760
Пулов обычно много и это норма

Но, тут есть нюансы и разные подходы к арзитектуре.

Вот например у тебя по миру разбросаны разные предметы. Например кусок хлеба, меч обычный, меч стальной, и куча всего ещё, счет идет на сотни. Как тогда быть? Сотню пулов делать?
Тут придется либо делать лейзи пулы, которые изначальго пустые, и периолически их подчищать(логично, что в какой нибудь пустыне будут встречаться предсеты, которых нет в лесу, и наоборот, поэтому все зарезервированными нет смысла держать)


Либо, в пуле держать префаб "подбираемый предмет" а его сущность выделить в модель(которая будет содержать афдишник, модельку, материал, коллайдер). Соответственно когда спавним подбираемый предмет у него вызываем метод СетМодел, из которого он вытащит все нужные данные
Аноним 01/05/25 Чтв 22:18:06 1019763 264
>>1019762
>Вот например у тебя по миру разбросаны разные предметы.
У меня локации, в каждой локации есть скрипт-список дропа (В самом списке предметы не созданы а лишь ссылки на их префабы из общего списка), пока локация не зачищена предметов как бы и не существует.
Как только должна быть выдана награда, то скрипт пробегает по предметам из дропа, потом сверяется с тем что есть у игрока в инвентаре и если там есть что-то типа зелье лечения или золото то не создает новый префаб, а просто у уже созданного предмета игрока добавлять += колличество.
А так потом чекается пулл и вытаскиваются нужные и передаются игроку, при не нахождении создаются инстансом.

Пулл предметов один. Сами предметы хранятся уже созданные по спискам типа у игрока инвентарь, или в магазине тоже список по аналогии игрока.
Аноним 01/05/25 Чтв 22:22:04 1019764 265
>>1019763
Не, я говорил про предметы которые физически существуют в мире валяются

В инвентаре я думаю должен быть только префаб "карточка предмета", которыц отоьражает картинку и количество. Он должен быть в пуле.

Сами предметы в инвентаре должнв зарнмиться в отдельноц структуре данных, а юи ее только отображать посредством этих карточек
Аноним 01/05/25 Чтв 22:26:08 1019765 266
>>1019764
> Сами предметы в инвентаре должнв зарнмиться
Храниться
Аноним 01/05/25 Чтв 22:27:01 1019766 267
>>1019764
Да да, я тя понял, мы об одном и тоже говорим, так и есть по структуре как ты написал.
UI у меня отдельно, префабы отдельно, данные отдельно, все по ООП SOLID.
Аноним 01/05/25 Чтв 23:01:20 1019771 268
>>1019762
Двачую
У меня работает так второй вариант, игрок подбирает любую хуйню, а по ади уже строится, что за хуйня и привязывается к герою если это элемент доспеха или оружие или меняет статы если бонус.
Аноним 02/05/25 Птн 19:44:32 1019887 269
image.png 6Кб, 328x113
328x113
Почему у меня картинка первращаетс в пиксель кашу когда я увеличиваю значение? Не понимаю как настроить камеру для 2д проекта что б не шакалило, нейронка не понимает чо я спрашиваю да и спросить не знаю как!

Дайте гайдов с разжевыванием по камере блин, а то я расстроился что какашка получается чаво не крути в проекте.
Аноним 02/05/25 Птн 20:01:33 1019890 270
Low resolution aspect ratio галочку убери в Game окне
Аноним 02/05/25 Птн 20:05:08 1019891 271
image.png 8Кб, 245x121
245x121
а как? она неактивна
Аноним 02/05/25 Птн 20:19:20 1019894 272
>>1019891
Интересно + странно, у меня никогда такого не было. Надо ковырять и гуглить что за дела.

Но если что вот с этим >>1019887 никаких проблем нет, камера будет сразу норм работать, проблкм только в отображении в окне Game
Аноним 02/05/25 Птн 20:23:31 1019897 273
image.png 105Кб, 1236x613
1236x613
а ещё хвастались что описание в юньке классное, ну что это за пиздец?
Сайз, наху, каким-то боком отдаляющим камеру от моей картинки и почему-то её в пиксель кашу превращает. И почемеу, блин, именно число 5 подходит к дефолтному разрешению?..


Я всего лишь хотел посмотреть как проект в вертикальном расположении экрана будет выглядеть, понял что не вписываюсь в эти размеры и решил отдалить камеру, но всё оказалось сложнее чем с обычной камерой перспективного типа, саму камеру двигай не двигай ей поху.
Поэтому надо двигать сами полотна на экране? Или их типа масштабировать параметром скейл? Придется кое что переделывать тогда..
Аноним 02/05/25 Птн 20:24:38 1019898 274
>>1019894
> Но если что вот с этим >>1019887 (You) никаких проблем нет, камера будет сразу норм работать, проблкм только в отображении в окне Game
Увы, но и на мобилках проблемка так же оказалась когда я сбилдил для андроида.
Аноним 02/05/25 Птн 20:25:39 1019899 275
>>1019897
>Поэтому надо двигать сами полотна на экране?
ну это глупость написал, сделайте вид что не видели
Аноним 02/05/25 Птн 20:31:57 1019900 276
>>1019897
> а ещё хвастались что описание в юньке классное, ну что это за пиздец?
В юнити документация пиздец говно.

Впрочем, к базовым банальным вещам это не относится, и тут тоже все правильно написано - это размер вью порта.

>>1019898
Скинь скрины как норм и как становится
Аноним 02/05/25 Птн 20:45:59 1019901 277
Стикер 585Кб, 180x180
180x180
>>1019900
Кароч вещь которую я не знал, так это размер юнита 100пикселей в юньке по умолчанию. А сайз тут это 1/2 от высоты экрана.

А что за вью порт вообще впервые слышу!

И вот исходя из этого какие рекомендации по разрешению спрайтов? Что б их не сжимало как-нибудь неправильно.

Допустим разрешение экрана 1920-1080, так спрайт который будет раз в 100 меньше высоты экрана нужно изначально сжимать под 10 пикселей? Если да, что делать если разрешение у игрока будет вдвое больше, получится ведь мыло? Тогда надо спрайт размером 20 пикселей?
Но тогда в свою очередь у человека с дефолтным разрешением он может исказиться как-нибудь неправильно!
Тогда хранить спрайты двух размеров?
Но ведь разрешения особенно на мобилке совсем совсем разные бывают, не то что на ПК.
И чиво делать? как жить?
Аноним 02/05/25 Птн 21:39:29 1019904 278
>>1019901
Ну так скинь как оно выглядит. И какая версия юнити?

Предполагаю, тебе просто в текстуре надо фильтрацию сменить на nearest.

Что по настройке камеры - у нее высота фиксированная, на любом девайсе с любым разрешением будет на нее подгоняться. Если у тебя что то треть экрана по высоте занимает - также будет с любым разрешением.
Есть еще разные варианты настройки этого и можно самому сделать свою какую то логику если надо иначе.

Разрешение спрайта - это только ращрешение спрайта, он будет растянут на физияеский размер спрайта в мире.
Аноним 03/05/25 Суб 00:22:35 1019920 279
image.png 6Кб, 309x287
309x287
А как включить рамку камеры что б видно было блин? А то хуй пойми как сцену дизайнить.
Аноним 03/05/25 Суб 01:57:44 1019922 280
image.png 68Кб, 973x655
973x655
пистец дурка, просто выключи/включил галку и рамка появилась.. найс знакомство с юнити получается
Аноним 03/05/25 Суб 02:04:51 1019923 281
>>1019922
Юнити софтина не простая, придется повозиться и не очевидного хватает. Ну и баги бывают, конечно.

В идеале какой нибудь видео гайд и по нему просто всё тыкать.
Аноним 03/05/25 Суб 02:10:18 1019924 282
>>1019923
Да вот я так и делаю, несколько уроков сделать "3 в ряд" / "платформер" и думаю хватит для начала.
Но вот когда в интерфейсе что-то не то нажал, то всё, пиздец. Это я по 3д максу помню,когда лет 10 назад пытался освоить.
Аноним 03/05/25 Суб 02:28:00 1019925 283
image.png 220Кб, 1112x718
1112x718
как перемещаться в окне шейдер_графов? На среднюю кнопку мышки? Она у меня сломана вечно, чот стрелку-то даже не добавили, неудобненько..
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов