image.png917 Кб, 1200x675
Официальный сайт: https://unity.com/ru Документация: https://docs.unity3d.com/Manual/index.html Урок 994942 В конец треда | Веб
Официальный сайт: 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/JGUAcbwj

Прошлый тред: >>980548 (OP)
2 994968
какой всратый перекат
3 994972
>>994942 (OP)

>сделано много замечательных игр: Zenless Zone Zero


дальше не читал
4 994973
>>994968
спросонья проебался немного
burnice.mp418,9 Мб, mp4,
720x480, 1:30
5 995086
>>994972
что-то не нравится?
Sampler chess square error.jpg107 Кб, 1266x780
6 995282
Подскажите, почему сэмплер аппроксимирует текстуру с подобными артефактами? Это оптимизация кода сэмплера для ускорения, или неточности плавающей запятой, или какие-то особенности работы GPU? Есть ли способ сэмплировать без этих артефактов?
7 995364
>>994942 (OP)

>Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity"


Уже не актуально
------------.mp48,8 Мб, mp4,
720x1280, 0:59
8 995879
Visual studio или Visual studio code? Что сейчас лучше для Юпити?
9 995888
>>995879
VSC, но он забагованый с Unity
Лучше всего Rider Commnity
10 995999
Сап, не очень понимаю логику как такую фишку можно сделать в юнити. Для пояснения, визульная новелла с авточтением, где новый текст появляется каждые 5-10 секунд, или по щелчку мыши
Ожидание в секундах можно сделать через WaitForSeconds, щелчок мыши тоже можно отловить.
Но не могу понять а как это совместить, чтобы еще щелчок мыши, отменял корутину которая ждет секунды
11 996000
>>995999
coroutine = StartCoroutine(...)
StopCoroutine(coroutine)

Также это реализуемо через async await, в том числе с помощью UniTask.

И в целом у тебя должно бвть понимание, что это можно реализовать и без каких-либо корутин и асинк авейта, а чисто апдейтом переменной таймера в Update, но такое решение разумеется будет не очень годным.
17212238162030.png1,3 Мб, 1024x1024
12 996019
В чем разница между Image и UI Image? Полгода назад начал делать карточный игорь с интерфейса (меню, кнопочки, это вот все) и как-то в нем все и сделал. Теперь вся игра это как один гигантский интерфейс с дохулионом UI Image в нем. каких-то проблем с производительностью нет, но может она была бы раз в 10 лучше если бы делал все в Image? Нет ли каких-то подводных с этим. Сейчас вот хочу начать другой проект и тоже хочу его также заделать в интерфейсе, т.к. уже привык.
13 996024
>>996019
Скинь скрин, что за UiImage?

> Теперь вся игра это как один гигантский интерфейс с дохулионом UI Image в нем. каких-то проблем с производительностью нет, но может она была бы раз в 10 лучше если бы делал все в Image?


Когда любой элемент в канвасе меняется - весь канвас перерисовывается. Поэтому с целью производительности есть смысл по разным канвасам всё распиливать.

А с точки зрения юзабельности и удобства - ещё и по разным префабам всё раскидать, возможно даже по разным сценам
14 996026
>>995999
Можешь хоть через инвок сделать.
У тебя есть номер текущего текста, допустим он сразу
int t = 124;
И контрольная переменная которая изначально равна 0.
int t_control;

В апдейте:
If (t_control != t)
{ t_control = t; Invoke("ChangePage", 10f); }

ChangePage()
{
If (t_control == t)
{
t += 1;
... // тут активируй следующий текст, и т.к. теперь t_control != t , то в апдейте будет запущен ивок для следующей смены текста
}
else
{
// тут нихуя нет, просто ничего не делаешь, т.к. t_control стал неравен t из-за нажатия мышкой. она поменяла страницу и инициировала очередной инвок в апдейте
}
}

// это метод для мышки
PickMouse()
{
t += 1;
... // тут активируй следующий текст
}
14 996026
>>995999
Можешь хоть через инвок сделать.
У тебя есть номер текущего текста, допустим он сразу
int t = 124;
И контрольная переменная которая изначально равна 0.
int t_control;

В апдейте:
If (t_control != t)
{ t_control = t; Invoke("ChangePage", 10f); }

ChangePage()
{
If (t_control == t)
{
t += 1;
... // тут активируй следующий текст, и т.к. теперь t_control != t , то в апдейте будет запущен ивок для следующей смены текста
}
else
{
// тут нихуя нет, просто ничего не делаешь, т.к. t_control стал неравен t из-за нажатия мышкой. она поменяла страницу и инициировала очередной инвок в апдейте
}
}

// это метод для мышки
PickMouse()
{
t += 1;
... // тут активируй следующий текст
}
15 996028
>>996026
Не надо так делать.
Если ты с кем-то на проекте заюзаешь инвок, то ебало разобьют сразу.

А если ещё и вот именно так, то ещё и обоссут.
16 996035
>>996024
Правой кнопкой в иерархии вызови меню, там есть UI (вторая снизу) и в ней уже Image.
17 996039
>>996028

>Не надо так делать.


Что не так, если делать в своем проекте? Кроме того, то это быстро, надежно и предельно понятно?

>на проекте заюзаешь инвок


Если ты на ебаной галере, где прогеры меняются раз в неделю и никто уже нихуя не понимает, откуда что вызывается и зачем проекте, то да. Тогда каротинами, и не забудь пару раз обмазать все это гет-сетами, чтобы кто-нибудь случайно не залез.
18 996041
>>996035
Вроде надо было делать игру в 3Д пространстве, просто создав плоские 3Д объекты, наклеить на них текстуры карт и выложив их на одной плоскости. А интерфейс типа только для интерфейса. А я в нем захуячил всю игру, т.к. удобнее было
19 996042
>>996026
да, через корутину уже сделал
Появилась другая хрень, что если в коце цикла булево переводить обратно в фалс сразу после окончания, то он переодически два прохода подряд хуярил, пришлось в начале цикла тоже дописать чтобы ставил, хрен знает почему

foreach(GameObject /////////)
{
canContinue = false;
///
yield return new WaitUntil(() => canContinue);
canContinue = false;
}
20 996043
>>996039
У инвока?
1. Название текстом(решается через nameof)
2. Нет контроля за лайфтаймом инвока
3. Нулевая расширяемость, более сложная логика требующая большего погружения в контекст
4. Непонятно нахуя его юзать, когда есть
>>996026

> В апдейте:


> If (t_control != t)


> { t_control = t; Invoke("ChangePage", 10f); }



> ChangePage()


> {


> If (t_control == t)


> {


> t += 1;


> ... // тут активируй следующий текст, и т.к. теперь t_control != t , то в апдейте будет запущен ивок для следующей смены текста


> }


> else


> {


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


> }


> }



> // это метод для мышки


> PickMouse()


> {


> t += 1;


> ... // тут активируй следующий текст


> }



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

А если я сделаю навигацию по страницам в любую сторону потом? А если добавлю ускорение текста на пробел? А если сделать добавить галочку - включить/выключить автоскролл?

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

Я вот вообще не понимаю прикола сложной логике в угоду скорости, когда даже не видно профита, в своих проектах пишу ровно также как на работе, я хз нахуя писать а, b, _t, if (r+1 < y /5) r+=2 и прочую ебалу.

Почему бы не сделать просто
IEnumerator AutoScrollCoroutuine()
{
yield return Wait ...

SetNextText();

SetNextAutoScroll();
}

private void SetNextAutoScroll()
{
StopCoroutine(_autoScroll);
_autoScroll = StartCoroutine(AutoScrollCoroutine);
}

void Click()
{
SetNextText();
SetNextAutoScroll();
}

И сразу всё понятно, всё на естественном язвке почти, около нулевоц контекст надо в голове держать и 0 вопросов а что если.
20 996043
>>996039
У инвока?
1. Название текстом(решается через nameof)
2. Нет контроля за лайфтаймом инвока
3. Нулевая расширяемость, более сложная логика требующая большего погружения в контекст
4. Непонятно нахуя его юзать, когда есть
>>996026

> В апдейте:


> If (t_control != t)


> { t_control = t; Invoke("ChangePage", 10f); }



> ChangePage()


> {


> If (t_control == t)


> {


> t += 1;


> ... // тут активируй следующий текст, и т.к. теперь t_control != t , то в апдейте будет запущен ивок для следующей смены текста


> }


> else


> {


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


> }


> }



> // это метод для мышки


> PickMouse()


> {


> t += 1;


> ... // тут активируй следующий текст


> }



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

А если я сделаю навигацию по страницам в любую сторону потом? А если добавлю ускорение текста на пробел? А если сделать добавить галочку - включить/выключить автоскролл?

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

Я вот вообще не понимаю прикола сложной логике в угоду скорости, когда даже не видно профита, в своих проектах пишу ровно также как на работе, я хз нахуя писать а, b, _t, if (r+1 < y /5) r+=2 и прочую ебалу.

Почему бы не сделать просто
IEnumerator AutoScrollCoroutuine()
{
yield return Wait ...

SetNextText();

SetNextAutoScroll();
}

private void SetNextAutoScroll()
{
StopCoroutine(_autoScroll);
_autoScroll = StartCoroutine(AutoScrollCoroutine);
}

void Click()
{
SetNextText();
SetNextAutoScroll();
}

И сразу всё понятно, всё на естественном язвке почти, около нулевоц контекст надо в голове держать и 0 вопросов а что если.
21 996046
>>996043

>1


это локальная задача, просто похуй. если опечатка, то не будет работать - сразу найду и поправлю

>2


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

>3


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

>4


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

If (t_control != t) { t_control = t; Invoke("ChangePage", 10f); }

ChangePage() { If (t_control == t) { t += 1; NextText(); } }

PickMouse() { t += 1; NextText();}

>А если я сделаю навигацию по страницам в любую сторону потом? А если добавлю ускорение текста на пробел? А если сделать добавить галочку - включить/выключить автоскролл?



Просто ты задроченная галерная мартыха, которую так часто били палками продакт-манагеры, что она пытается предусмотреть все, даже если это там в принципе не нужно.
А я - челове-творец собственных проектов, который знает, что к нему завтра не прибежит пидарас-манагер, хуево понявший техзадание от забугорного барина, с криком - а, бля, все надопеределать!
Если я делаю так - значит это оптимально и допустимо для меня. если нет, то я сам же себя потом накажу пределками. Но такого практически никогда не бывает. Поскольку я думаю дольше 2х минут прежде чем начать что-то кодить. Если я написал код таким образом, то я точно, блеать знаю, то никакого "ускорения текста на пробел" в этом месте никогда не будет. А если мне будет нужна прокрутка назад, то я добавлю еще две строки где будет присутствовать почти те же самыt строки только с t -=1;
22 996049
>>996046

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


Ну какие продакты? Это чисто адекватный прикид что в игре может понадобится в будущем.

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


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

> Если я написал код таким образом, то я точно, блеать знаю, то никакого "ускорения текста на пробел" в этом месте никогда не будет.


Ну я не знаю, значит это ты слишком спланированный какой-то. Что угодно если делаешь сам, у тебя всегда будет какое-то шатание в плане того что нужно, по мере появления нового фидбека(в том числе от себя)
23 996058
>>996049
Ты работаешь в условной команде и такой подход в составе команды правильный, что каждый на своем месте все предусматривает.
Если же ты делаешь проект в одно лицо, то разу должен прикидывать, какие вещи критически важны и могут потребовать изменений в дальнейшем, а какие второстепенны и для них нужен только базовый функционал. Без умения отсекать вторичное, ты никогда не сделаешь соло-проект из-за банальной нехватки времени. Поэтому в соло-проекте предпочтительны 3 работающие строчки кода, вместо 20 "таких как нужно".
Так же нет никаких блокировок доступа к данным, потому-что если ты будешь их писать, то реально ебанешься или во время написания или, когда начнешь что-то править
24 996067
>>996058

> Без умения отсекать вторичное, ты никогда не сделаешь соло-проект из-за банальной нехватки времени. Поэтому в соло-проекте предпочтительны 3 работающие строчки кода, вместо 20 "таких как нужно".


Так это ты 20 строчек написал с неочевидной логикой, а у меня 3 и вышло с корутиной и прозрачной работой, кек.

Не знаю как ты, но как по мне любой моло проект это тоже самое, что и не соло проект, если ты делаешь его больше месяца, и потом ты точно также будешь вспоминать где там у тебя что и как работает.
25 996073
>>995999
Привет, есть куча опыта как раз с такой частью, т.к сам делал пару новел.
Реализовывал это так:
Есть таймер который запускается при вызове, рядом каждую 0.1 сек печается новая буква, если буквы в переменной закончились, таймер останавливает и при нажатии передается вызов дальше, если же игрок нажал на текст то весь текст переносится в переменую и таймер так-же останавливается.
Все это дело у меня занимало немного апдейта, проблем ноль, работает идеально.
image.png2 Кб, 406x22
26 996137
что шизик хотел этим сказать?
27 996140
>>996137
Проверка на null указывает существует ли UI тултипменю или же он был удалён.

В Unity оператор сравнения с null переопределён на уровне UnityEngine.Object. Можешь сам посмотреть.

В доках об этом написано:
https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Object.html

Sometimes an instance of Object can be in a detached state, where there is no underlying native object. This can happen if the instance references an native object that has been destroyed, or a missing Asset or missing type. Detached objects retain their InstanceID, but the object cannot be used to call methods or access properties. An object in this state will appear to be null, because of special implementations of operator ==, operator != and Object.bool. Because the object is not truly null, a call to Object.ReferenceEquals(myobject, null) will return false.

The null-conditional operator (?.) and the null-coalescing operator (??) are not supported with Unity Objects because they cannot be overridden to treat detached objects objects the same as null. It is only safe to use those operators in your scripts if there is certainty that the objects being checked are never in a detached state.
28 996268
>>996140

>Проверка на null указывает существует ли UI тултипменю


какое-то странное написание, разве не должно быть:
if (shownTolltip != null)

со стороны выглядит подобно
if ( 0 != x)
пиздец как выглядит в общем
мимокрокодил
29 996270
>>996268

> if (shownTolltip != null)


Функционально тоже самое.
А по код стайлу - уж вопрос код стайла, некоторые слева пишут null в проверках на null. Главное чтобы во всем проекте единообразно было.
30 996274
>>996270

>Функционально тоже самое.


ебануто выглядит, "проверь не равен ли 0 моему числу" пиздец просто, типа это переменная которая может иметь дохуя значений. не знаю какие дегенераты так пишут, но я бы не взял такого на работу - у него гавно в голове, если он так формирует условия
31 996276
>>996274
А вот есть такие, видел какое-то обоснование чем так удобнее, но уже не помню, и судя по тому что я эту практику не взял - оно мне не понравилось.
32 996281
>>996276
чем удобнее? тем что первым делом в условии ты видишь константу, значение которой так знаешь и которая нихуя не меняется, т.к. внезапно это константа? охуеть удобно. повторю, что не знаю что в голове у такого человека, но думает он настолько нестандартно, что я бы избегал таких "программистов"
33 996292
>>996276
Потому что можно случайно вместо if(a == 0) написать if (a = 0), что присвоит a значение 0 и вернет false, вместо сравнения. А константе/литералу присвоить нельзя. Это очень олдовый способ, наверное еще из Си 80-х.
image.png24 Кб, 451x600
34 996295
>>994942 (OP)
парни хочу побаловаться с физикой

как все rigid body на сцене в sleep режим ввести?

после блендера скриптовую логику недопираю
35 996300
>>996292

>написать if (a = 0)


компилятор сразу подчеркнет, раньше может было удобнее, когда компиляторов не было, но те прогеры уже должны были вымереть к настоящему времени.
36 996301
>>996300
Иногда в ифах проскакивает присваивание, но да комп сразу пиздит что что-то не так.
37 996302
>>996300
Ни разу не встречал реальных проектов где смогли бы задаваить все варнинги.
38 996309
>>996292
Справедливо. Но я за за последний год смутно припоминаю ток 1 раз когда так проебался.
39 996328
Где вы кассеты берёте? Только в асснт стор или ещё где? Нужны зомби эпохи пс1 если юзать пиратские кассеты и конфиги вроде плеймейкера то пизда?
40 996498
>>996058

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


Ну вот у меня сейчас проект где мне потребовалось маленько покумекать "а как сделать так вот штобы у меня была возможность конструировать геймплей прямо в конфигурационных файлах, и иметь возможность этот геймплейный юнит множить на много разных сущностей и при этом не охуеть", хотя изначальная задача стоит так - нужно реализовать определённые разные режимы командной игры с поэтапным развитием игровой ситуации. Я бы мог насрать сущностями, монолитно их связать или начать выдумывать какой-то хитровыебаный способ применять цепочку обязанностей который опять таки монолитом будет сидеть по звеньям, и понял что ебана рот, мы тут все свои, а давай я сделаю каждый этап и любой игровой объект как интерактивный, пропишу ему характеристики существования, пропишу дочерние интерактивы, впишу ему конкретно его код в ряд функций, добавлю генерируемые на основе конфига функции, когда объект сможет основываясь на информации из конфига искать целевой интерактив и предписывать ему что-то сделать, а захардкоженые для сложных целей функции буду дергать по имени из конфигурационного файла рефлексией, и в зависимости от того что в данный момент прописано в конфиге - объект себя будет вести так как мне надо. Правда на придумывание этой хуйни ушло полтора дня. Вот и скажи, зря или не зря я изьебнулся, потратил время, но очертил себе в будущем целый пласт упрощения контроля игрового процесса, и заодно для себя обнаружил что я могу неиронично дергать функционал из других режимов что изначально и не задумывалось.
41 996502
>>996498
А соло ты можешь делать как тебе удобно, главное на начальном этапе хорошо продумать, где у тебя возможно будет расти и меняться функционал (там желательно все делать по уму). А что не критично и можно будет потом переписать или даже просто выкинуть нахуй (понятно, что в этом месте нет смысла изъебываться и тратить время на разработку супергибкого функционала, достаточно будет и базового).
42 996507
>>996058

>Поэтому в соло-проекте предпочтительны 3 работающие строчки кода, вместо 20 "таких как нужно"


Ты потом заебешься дебажить и выковыривать баги этих 3 просто работающих строчек (без задней мысли). Я уж не говорю про то, как ты заебешься делать лазейки-костыли и обходные пути из-за этих 3 просто работающих строчек.
Когда у тебя четко организованный код, когда написанно ТАК КАК НУЖНО, когда это еще дело покрыто тестами, то если что-то отъебывает, то это дело 5 минут исправить, т.к. сразу знаешь что и где ебануло. Точно также в последующем легко модифицировать что-то, расширить. Или же переиспользовать в следующих проектах.
Когда у тебя проект весь состоит из таких вот тяп-ляп, просто и работает, то ты тратишь неделями время на дебаг, тратишь в 2 раза больше времени на разработку, а в следующем проекте охуеваешь и ломаешь голову, что это вообще такое, в итоге пишешь вообще все с нуля и каждый раз думаешь "а ведь мог бы сразу сделать все изначально нормально".
Все эти срезания углов работают в очень исключительных ситуациях. А общее правило неизменно - кроилово ведет к попадалову.
43 996509
>>996507
Нет, потому что серьёзную игру делать в соло будет совсем отчаянный, а простые проекты можно и на тяп-ляп
44 996510
>>996507
7 бед - один ответ - try catch & log context state
Что мешает наебнуться 20 строчкам? Или сотне абстракций? Они мало того что наебнутся, так ещё и наебнут того кто в них полезет. Я бы вообще нихуя не боялся кроме точек сосредоточения больших обьемов подвижных данных, особенно если это события или лямбды со всеми вытекающими, которые собираются на всяких шинах.
45 996515
>>996507

>когда написанно ТАК КАК НУЖНО, когда это еще дело покрыто тестами


Не работает в соло разработке. "ТАК КАК НУЖНО" даст х3 ко времени разработки. Ты просто никогда не закончишь проект или закончишь когда он уже будет нахуй не нужен. Или просто передумаешь его делать и все "ТАК КАК НУЖНО" улетит в мурор. Или через пару лет такой разработке захочешь что-то сильно поменять и опять все это улетит в мусор.
В соло ты должен быть быстрым. И уметь в планирование проекта - уметь видеть финальной результат еще до завершения проекта. Так ты сделаешь архитектуру, которая не потребует кардинальных переделок и не потратишь время на разработку того, что никогда не понадобится.
Большинство успешных соло проектов написаны через жопу. Хуяк-хуяк и в релиз. Пролет? Следующий проект. Успех? Нанял команду прогеров - пусть переписывают код.
46 996654
>>996515
>>996507
Это спор ни о чем, каждый сам выдумал какое-то понятие и вложил какой-то смысл и представляет что его оппонент доказывает противоположное на самом деле.

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

Я лично в своем проекте ебашу всё практически также как на работе, просто потому что так быстрее, у меня итоговая цель сделать как можно быстрее и решения принимаю исходя из этого.
47 997384
Как в Юнити грузить через код obj-модели, чтобы это было кроссплатформенно?
48 997905
>>997384
Берешь и грузишь, хоть вручную Mesh строй по вертексам, obj это ведь буквально самый простой формат. Уверен в интернетах уже дохуя импортеров написано.
49 998188
>>997905
А что, Юнити этого не умеет?
50 998245
>>998188
А нахуя обж в рантайме грузить? Рантайм ассеты через бандлы грузят.
51 998411
>>998245
Для моддинга, например.
52 998416
>>998411
Для этого нужно делать свой движок.
53 998502
>>998411
Ну так для моддинга тоже бандлы можно юзать.
54 998572
>>998416
Зачем?
bruce-toilet-toilet.gif630 Кб, 220x120
55 999128
Deepseek написал решение, которое я год назад писал неделями
56 999195
>>999128
оно ещё и джобы умеет писать
57 999220
>>999128
Настолько круто? Что за решение, если вкратце?
Ни разу с нейронками в контексте кода не работал, вот думаю, скатываться ли.
58 999252
>>999195
Не умеет. Всё совсем неправильно мне написало, даже с моими наводками. Только общую идею даёт, и то не всегда правильную.

мимо изучаю дотс
59 999263
>>999220
Нейронка - это ускоренный гугл.
В гугле ты ищешь доки, ищешь ответы на стаковерфлоу, ищешь треды на форумах

Нейронка это автоматизирует, но не всегда актуально и полно, да и с точностью бывают проблемы(иногда дает просто неверные ответы)

В понимании логики кода - очень плохо работает.

В том чтобы быстро сделать какое-то редактирование кода на уровне "Проставь эксепшены", "Раскидай на методы" - справляется если не слишком сложный код.

И неплохо работает для запросов на уровне "напиши мне сериализацию в жсон и асинхронное сохранение на диск", "напиши мне веб реквест", "отсортируц мне элементв по такуому полю а потом по такому", типа для базовых примеров
60 999285
Аноны, надеюсь никто из вас очередной вампир сурвайвал не пилит? А то на ассет стор недавно шаблон такой выкатили: https://assetstore.unity.com/packages/templates/systems/monster-survivors-full-game-304936
Скоро Стим будет утопать в вампир-сурвайвал-лайк прям как в пиксельных платформерах.
61 999305
>>999263

>Нейронка - это ускоренный гугл


Ну... Отчасти ты прав, но это сильно упрощённый взгляд. Всё-таки нейронка может решить конкретно твою задачу с конкретными пожеланиями/параметрами. Ещё она может улучшить твой код. Я стал использовать нейронку для рефакторинга, но без фанатизма.
62 999318
>>999285

>Скоро


Дык это давно произошло!
image (278).png75 Кб, 1263x488
63 999393
возможно, слишком очевидная "фишка", но мб пригодится

начальная проблема: у ЧатГПТ чтобы загружать много файлов за раз нужна подписка, у ДипСик сейчас лимит на 5 файлов в сообщении, у "новомодного" Qwen можно грузить только txt

но если отдельным скриптом (я использовал самописный .bat-ник - https://pastebin.com/FWtDhdqU) собрать код из всех файлов в один большой текст и скормить нейронке - он его прочитает и, вроде как, поймет - например, проект на юнити на ~30 файлов он разобрал, что делает и вроде даже пару дельных советов дал
pic.png72 Кб, 983x675
64 999407
>>999393
Спасибо, прикольная идея. Прогнал сейчас весь свой проект через Deepseek R1 32b, действительно пару замечаний по делу получил. Код ревью от понимающего человека не заменит, разумеется, но отлавливать мелкие недочеты в коде, который пишется поздно ночью - самое то!
65 999408
>>999407

>GetNode<Node2D>


че это
66 999412
>>999408
Не заметил, что это Unity тред. Сорян. Работаю на другом движке
67 1000050
>>994942 (OP)
Продублирую свой вопрос >>1000042 → о переходе с уе на юнити
68 1000058
>>1000050
Просто бери и изучай Unity. Не понял в чём твоя проблема. Точнее понял, что ты сидишь и прокрастинируешь, хотя мог бы уже запустить юнити и заставить бегать капсулу, например.
69 1000062
>>1000058

>Точнее понял, что ты сидишь и прокрастинируешь


Не совсем.

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


Не мог бы. Комп далеко.

Пока далеко от, компа собираю инфу, чтобы потом как можно эффективнее и продуктивнее с ее помощью начать изучать.
image118 Кб, 1739x426
70 1000207
смотрю знач видеоуроки, и челы просто элементы из спрайтов перекидывают ручками в массивы спрайтов.

Но разве это практично? Не получится ли так, что те просто отвалятся после обновы?
Не правильней ли искать в префабах их через код?
71 1000261
>>997384

>чтобы это было кроссплатформенно?


а ему не похуй какие там модели? просто галочку кроссплатформы ставишь при создании сборки и все. инити само их там упакует, разве нет?
72 1000273
>>1000207

> после обновы?


Нафига тебе что-то обновлять, чего там такого в обнове могут завезти?
73 1000454
>>1000273
Я имею ввиду что-нить подвинул в проекте, переименовал и всё развалилось. Опять ручками перекидывай.
74 1000458
>>1000454
нахуй ты куда-то лезишь что-то разрабатывать если не знаешь о мета файлах и гуидах
75 1000462
>>1000458
Может потому что я совсем недавно начал изучение юньки, ослина?
76 1000477
>>1000462
>>1000454
>>1000207
Ты всё правильно говоришь.
Если ты ещё начинающий и об этом задумался - ты молодец.

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

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

Например грузим все картинки из адрессаблов с таким то названием
77 1000520
>>1000477

>ввносят в конфиги и их отдельно грузят.


Ммм, вот это не понял. Что значит вносить в конфиги? И отдельно грузить? Разве не всё сразу подгружается при запуске проекта.

Я вообще думал просто просто поиск по каталогу ассетов делать
используя метод:
Resources.LoadAll<GameObject>(path)
а потом с ссылочками на объекты работать, создав пару ключ/ссылка. Где ключ тупо имя файла объекта. А объект это 2д/3д файлик в каталоге ассетов.

>Например грузим все картинки из адрессаблов с таким то названием


Наверное это и есть то что я описал? Просто с вашим прогерским языком не так хорошо знаком.
image81 Кб, 683x279
78 1000523
а кто знает в ПоЕ как называется хуйня, там будто бы округлая поверхность какая-то. Как знаете поверхность шара.
79 1000545
>>1000523
заново и по-русски напиши шизик
80 1000556
>>1000523
Никакой хуйни, обычная перспективная камера с широким углом обзора.
image127 Кб, 338x328
81 1000558
>>1000556

> обычная перспективная камера с широким углом обзора.


Нет, я помню интервью с александром и он выебнулся что не всё так просто и типа если представить шар, то вот красный квадрат изображает изогнутую плоскость.. и у этого сука название есть, но я ни интервью то найти не могу, ни название этой хуйни.
82 1000561
>>1000558
Перпектива
(Вообще есть, какой нибудь телесный угол)
83 1000563
>>1000561
Похоже у этой фигуры нет названия, кроме spherical rectangle
Хотя может у картографов есть что то.
84 1000589
>>1000523

>а кто знает в ПоЕ как называется хуйня, там будто бы округлая поверхность какая-то.


Мимонеебу. Могу только сказать, что пое кал, как и большинство дьяблоидов. Ебучая изометрическая камера, которую нельзя крутить и из-за которой у тебя на заднем плане обзор больше, чем на переднем. Ну и дальность видимости на 10 метров перед челиком, из-за чего стрелки могут стрелять лишь в упор. Как в такое дерьмо вообще можно играть в 2к25 году?
85 1000595
>>1000589

>Как в такое дерьмо вообще можно играть в 2к25 году?


с читами чел
86 1000617
>>1000589
Это не изометрия, в изометрической проекции расстояния, уходящие в глубину, не сокращаются. А тут сокращаются, да ещё и у края экрана заворачиваются в виде линзы.
sage 87 1000722
>>1000558
проекция панини? Фишай?
image26 Кб, 1048x164
88 1001180
импортнул свой хуёвый ПНГ файл и там куча мусора автоматом слайсом добавилось, буквально парупиксельный мусор.

Ясен хуй проблема в хёвом пнг файле и чичас для обучения не критично.
Но на будущее - а как удалить то эти пикрил фрагменты из попиленного атласа. Нажимаю просто DEL , а там:

>The operation "SoftDelete" cannot be executed because the selection is a root folder.


Не пикать же каждый пиксель в сплит эдиторе..
89 1001198
И ещё странный вопрос, но чем 2д проект от 3д отличается.
3д объекты в 2д проекте всё равно рендерятся как я попробовал. Чем же тогда сборка проектов отличаются?
90 1001206
>>1001198
Это только шаблоны, там немного разные настройки рендера, ты их в любой момент можешь поменять.

По дефолту картинка как спрайт импортируется а не текстура, отрублен свет и всё это - это в 2д так
image4 Кб, 161x61
91 1001218
>>1001206

>отрублен свет


А эт чо такое создалось автоматом
92 1001221
>>1001218
2д свет. А отрублен 3д свет. Это другое.
93 1001348
Как сделать чтобы у меня при нажатии на мышку был эффект стрельбы в месте курсора? Есть анимация но я ни ебу как это грамотно сделать, нейросеть не справляется пока.
94 1001363
>>1001348
Instantiate(prefab, Input.mousePosition, Quaternion.identity);
image35 Кб, 940x464
95 1001437
мимо пробежала кошка, затем ещё раз, дежавю - подумал я, должно быть матрица дала сбой, собаки меровингера уже здесь..
17338248036580.mp4516 Кб, mp4,
360x408, 0:06
96 1001674
Кто-нибудь находил ? :
Разработка игр на Unity за 24 урока. 4-е издание 2023 | Гейг Майк
Нашел только на английском
97 1001680
>>1001674
700 рубасов пдфка лицензионная стоит, тебе жалко что ли? охуел там
98 1002134
>>994942 (OP)
Есть ли в юнити реализация pixel depth offset изкаробки, как в уе? Ну или шейдер какой-нибудь, скачиваемый с условного гитхаба. Очень нада для смещения слоев одежды относительно друг друга и тела.
99 1002184
>>1002134
две наносекунды в квене:

Готовые решения на GitHub :
Unity Depth Offset Shader
Unity Parallax Shader
Asset Store :
На Asset Store есть множество шейдеров для работы с глубиной и смещением слоев:
Shader Forge
Amplify Shader Editor
Parallax Shader Pack
100 1002185
>>1002134
Layer Weights :
Если вы используете Unity High Definition Render Pipeline (HDRP), там есть встроенные инструменты для управления слоями материалов, включая смещение по глубине.
101 1002712
то убожество, которое я постил парой тредов назад, наконец-то обросло системой найма юнитов и выбора миссий

вообще, если в будущем родить игроподобный продукт, обмазать это геймплеем, донатом и рекламой, на каких забугорных площадках есть шанс? знаю только про CrazyGames и то, что Гугл Плей разрабам из рф прекратил выплаты, так что он не вариант.
102 1002745
Brackeys новый туториал выпустил, го смотреть.
103 1002842
>>1002745
Он же сдох от рака вроде
104 1002875
>>1002842
Сдох, не мешает ему выпускать видосы с миллионными просмотрами.
105 1002882
>>1002745
Пошел нахуй со своим продажным петухом!
106 1002901
>>1002882
Ты в порядке, анон?
107 1003172
Каким-то образом могут узнать спирачены ассеты или нет?
108 1003475
>>1003172
Каким-то образом могут узнать спирачены ассеты или нет
109 1003719
>>1003172
По отпечатку ануса. могут запросить чек на покупку, такое встречал среди звуковых эффектов. то есть если ты используешь популярный ассет и твоя игра выстрелит, то автор может запросить у тебя чек на покупку данного ассета
110 1003766
>>1003719
А к примеру если это не визуальный ассет?
111 1003791
Unity 6 уже пригодна для использования? Пока сижу на 2022.3 версии.
112 1003804
>>1003791
В целом да
113 1003807
Чет юньке совсем плохо, господа. Очередная волна сокращений и реструктуризаций. Нормальная графика теперь для них не приоритет (fidelity for ubiquity), юнити behaviour (нпс) закрыли-сократили нахуй целиком, в комментах люди плачутся.
114 1003809
>>1003807
Хуякс и проект "actually useful for game development" отправился под нож.
image.png192 Кб, 1266x570
115 1003813
116 1003825
>>1003809
Кто-то им пользовался? Я ни разу не видел.

>>1003807
Хуета. Заерыли бесполезную хуйню. Жаль тех кого уволили, но объективно все юзали кастомные решения.
117 1003831
>>1003825
Плюсую.
118 1003833
>>1003807
На реддите предполагают что UI Toolkit следующий.
119 1003839
>>1003825

>все


Кто все, откуда нытье тогда? Штука в том, что когда пошли первые сокращения, обещали сокращать лишних хр-маркетологов и прочую жирушную перхоть и фокусировать ресурсы на технических командах. А на практике режут всех, как видим в том числе востребованных программистов, а полезные технические проекты закрывают целиком. Жирухи закончились?
120 1003845
>>1003807
>>1003809
>>1003839

Уволили женщин и гомосексуалистов, оставили суровых бородатых мужиков.
image.png160 Кб, 773x856
121 1003849
Страшно
17375268910470.jpg142 Кб, 800x800
122 1003850
а я ведь ванговал покупку хрюнити микрософтами в 2026-2027
123 1003853
>>1003849
Я нахожу эту новость хорошей, т.к. НИНУЖНО. Каждый сам себе напишет нужный модуль поведения, универсальный конструктор невозможен.
124 1003856
>>1003850
Похоже на то. Сделать отчет покрасивее, сократив 90% расходов на зарплаты, и продаться. С другой стороны, акции ползут вниз, опять.

>>1003853
Движок себе напиши, додич, ведь универсальный нинужен. Начни с изучения вулкана/директх. Ждем тебя обратно лет через 70.
125 1003866
>>1003839

> Кто все, откуда нытье тогда?


Мы теперь по нытью выводы делаем?

> Штука в том, что когда пошли первые сокращения, обещали сокращать лишних хр-маркетологов и прочую жирушную перхоть и фокусировать ресурсы на технических командах. А на практике режут всех, как видим в том числе востребованных программистов


Та команда что уволена не востребована, они делали велосипед
126 1003872
>>1003866

>велосипед


Почему анрыл тогда имеет эту фичу изкоробки? То, что тебе эта фича нинужна, показывает только уровень твоих проектов. И твой, если ты предлагаешь самому тратить время на проблему, которую можно было бы решить за минуту, подключив готовую фичу.
127 1003883
>>1003872

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


А я где-то это предлагаю?

Вроде бы я писал, что есть кастомные решения лучше. Или нет?
>>1003825

> объективно все юзали кастомные решения.

128 1003891
>>1003883

>есть кастомные решения лучше


Есть заброшенная хуйня которую 4 года не обновляли. Поэтому все городили свои велосипеды. Поэтому было разумно предоставить официальное решение, как в анриле, и на него только-только начали переходить. Но нет, хороших вещей от юньки ждать больше не приходится.
129 1003893
>>1003856

>Движок себе напиши,


написал, и не один

>Начни с изучения вулкана/директх


изучил
130 1003946
>>1003807
У них много сверхприбылей, всякие госконтракты, они развратились от безнаказанности и ахуели максимально. Когда ввели плату за установки и поднялся кипиш там в твиттере некоторые бывшие сотрудники писали, что могли целыми днями на работе про политику сраться, нихуя не работая. Недавно кто-то шебмку вкидывал как в какой-то прогерской компании манагер хвастался своим рабочим днем за большую зарплатку, пол часа с утра на летучке что-то послушал попиздел, а потом весь день чилит, то в бассейне поплавает, то киношку посмотрит. Прям у них там в рабочем здании. Так, наверное, будут жить все люди будущего, а впахивать будут роботы. В юнити поди все еще хуже, там юнититрапы себе поди и траходром устроили. Даже в треде постоянно интересовались, что делают 7 тысяч сотрудников, если из года в год в движке почти ничего не меняется. То что сейчас идут увольнения это всё мизер, там скорее всего больше половины надо сразу гнать, а потом еще пару тыщ на доп проверках. Власть развращает, а абсолютная власть развращает абсолютно. Так сложилась ситуация, что у них нет конкуренции, сделали большой прочный задел и можно много лет нихуя не делать. Должны появляться конкуренты и оттяпывать пользователей, но как бы не пыжились анриал с прости господи годотом и остальной шелупонью, ничего не меняется, есть существенные недостатки.
Верю в юньку, новый дирек порядок наведет, ожидаются реальные изменения, будем как в масле кататься, главное сейчас сидеть тихо и не суетиться. Никаких митингов, никаких навальных. Просто переждать и всё будет хорошо, там все схвачено.
131 1003964
>>1003893
Очевидная пиздля.
image.png80 Кб, 660x432
132 1004004
короче тред можно закрывать
sage 133 1004016
>>1004004
кароче юнити можно удалять
Сука, вот не повезло же вкатиться именно в эту хуету
135 1004050
>>1003946

> У них много сверхприбылей, всякие госконтракты


Нахуй им госконтракты? На их движке 90% мобильного рынка сделано, там с рекламы(привет айронсорс) и сервисов для разработчиков(аналитика, сдн и т д) все доходы.

> они развратились от безнаказанности и ахуели максимально. Когда ввели плату за установки и поднялся кипиш


Это называется рынок. Какие наказания, о чем ты?
Они делают то что рынок им позволяет. С платой за установки стало опасно, потому что по тем цифрам что они опубликовали - для компаний разработчиков которые специализируются на мобилках вариант использовать другой движок чтобы не платить юнити стал намного интереснее.

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


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

Тут дело не в этом. На любой нормальной работе тебя не будут заставлять много работать. Знаю дохуя примеров когда кто-то неделями нихуя не делал толком(а то и месяцами), да и я сам тоже.

И это не какой-то заговор или наёб, это просто рынок. Когда компания много зарабатывает на своем продукте, она будет готова предоставить хорошие условия тем, кого будет нанимать, чтобы нанять лучших по своему мнению работников, переманить их из других компаний.
А то может случиться так, что вот ты ставишь менеджера который следит чтобы все по 8 часов кнопки давили, а в итоге все самые крутые челы съебывают туда где им разрешают ебланить и производительность команды только падает.

> там юнититрапы себе поди и траходром устроили


Ну это просто бред, даже трансов нанимают только с целью максимизации прибыли, чтобы выполнить квоты и получить себе профиты за это.

> Даже в треде постоянно интересовались, что делают 7 тысяч сотрудников, если из года в год в движке почти ничего не меняется.


Думаю, ты не до конца понимаешь кто в эти 7к входит и насколько объемную работу юнити делают.
135 1004050
>>1003946

> У них много сверхприбылей, всякие госконтракты


Нахуй им госконтракты? На их движке 90% мобильного рынка сделано, там с рекламы(привет айронсорс) и сервисов для разработчиков(аналитика, сдн и т д) все доходы.

> они развратились от безнаказанности и ахуели максимально. Когда ввели плату за установки и поднялся кипиш


Это называется рынок. Какие наказания, о чем ты?
Они делают то что рынок им позволяет. С платой за установки стало опасно, потому что по тем цифрам что они опубликовали - для компаний разработчиков которые специализируются на мобилках вариант использовать другой движок чтобы не платить юнити стал намного интереснее.

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


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

Тут дело не в этом. На любой нормальной работе тебя не будут заставлять много работать. Знаю дохуя примеров когда кто-то неделями нихуя не делал толком(а то и месяцами), да и я сам тоже.

И это не какой-то заговор или наёб, это просто рынок. Когда компания много зарабатывает на своем продукте, она будет готова предоставить хорошие условия тем, кого будет нанимать, чтобы нанять лучших по своему мнению работников, переманить их из других компаний.
А то может случиться так, что вот ты ставишь менеджера который следит чтобы все по 8 часов кнопки давили, а в итоге все самые крутые челы съебывают туда где им разрешают ебланить и производительность команды только падает.

> там юнититрапы себе поди и траходром устроили


Ну это просто бред, даже трансов нанимают только с целью максимизации прибыли, чтобы выполнить квоты и получить себе профиты за это.

> Даже в треде постоянно интересовались, что делают 7 тысяч сотрудников, если из года в год в движке почти ничего не меняется.


Думаю, ты не до конца понимаешь кто в эти 7к входит и насколько объемную работу юнити делают.
136 1004052
>>1004016
Не думаю, что в тех нишах которые занимает юнити, у него появится хоть сколько то достойный конкурент в ближайшие 10 лет.
137 1004054
>>1001674
Книгу купи, овощ.
138 1004065
>>1004052
А годот? Там есть проблемы с прикручиванием монетизации для всяких мобилок, но на это нужен один единственный фреймворк, который обязательно сделают за 10 лет и юнити соснут хуйца.
139 1004092
>>1004065
На данный момент годоту далеко до юнити.
140 1004094
Даже если мне предложат 3к баксов в месяц просто за то, чтобы я пользовался годотом, то я не соглашусь.
141 1004101
>>1004094
а я соглашусь, где предлагают?
142 1004118
>>1004094
Неужели все настолько плохо?
143 1004138
>>1004052
Тогда удобно что конкретно вы тут никакую нишу так и не заняли, так что не проблема выбрать любой другой движок.

А с юнити да, ситуация плоха раз даже программистов из востребованных технических проектов стали резать. Это рендеринг игровому движку не нужен? Серьезно?
144 1004142
>>1004138

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


Конкретно вы - это ты про кого?
Конкретно про меня?
Тогда это ты мимо, я занимаюсь разработкой на юнити тех проектов для которых юнити хорош(безальтернативен).

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


Бехавиор это не особо востребованный проект.
По рендерингу и другим направлениям нет конкретики. По факту с юнити 2022 до юнити 6 был очень хороший прогресс по рендерингу и в целом в юнити сейчас около передовой рендер в плане кастомизируемости.
image.png32 Кб, 637x455
145 1004150
Я даже знаю для кого директора Юнити отчеты причесывают. Фейсбук пытался купить юнити в 2019, теперь мы наблюдаем новую попытку по скидочной цене. Если подумать - идеальный матч. Реклама плюс ИИ слоп и там и там. Сюда же вписывается показательный отказ Юнити от работы над продвинутой графикой - в метаверсе и на страничках фейсбука ААА графон не нужен.
146 1004152
>>1004150
Если Мета купит Юнити, тогда мы станем экстремистами...
147 1004205
>>1004150
Очкнь приятно что ты безыгорник переживаешь за юнити
148 1004504
149 1004506
>>1004150
И куда перекатываться потом?
150 1004543
привет, решил вернуться попробовать доделать то что начинал, а там проект на старой юнити 2019. Можно как-то перенести на новую версию? На новой он не открывается вроде как
151 1004549
>>1004543

> Можно как-то перенести на новую версию?


Обычно переносится без проблем.

>На новой он не открывается вроде как


Так можешь и старую версию скачать и там делать.
152 1004550
>>1004549
лан, значит надо разбираться. Спасибо!
153 1004745
>>1004549

>Обычно переносится без проблем



Только если проект совсем мелкий. Если более-менее серьёзный это выстрел себе в ногу. Переделывать приходится всё.
image.png108 Кб, 589x887
154 1004807
>>994942 (OP)
ЭТО КОНЕЦ!11
Alexandre Mutel (Director C#/.NET Tech Group в Unity, стаж в компании 8 лет и 4 мес) тоже уходит (https://mastodon.social/@xoofx/113997304444307991)
2.png44 Кб, 440x581
155 1004820
156 1004826
>>1004807
одним дармоедом меньше
он во всех своих проектах обосрался. sharpdx заброшенный, stride (который он делал) - кусок сырого нерабочего говна. юнити так и не перенес на core clr. человек-неудачник
157 1004827
>>1004807

>mastodon


Метка пидармота, пусть валит
158 1004828
Дурачки с реддит не понимают, что юнити невозможно перенести на core clr, потому что оно не кроссплатформенное, и это невозможно никак решить.
MonoGame там что-то пытается с AOT-компиляцией, но это костыли. Даже если получится как-то запустить нативный код, то 90% стандартной библиотеки просто не будет работать, потому что она зависит от конкретной платформы и вызовов нативных функций платформы.

У юнити есть IL2CPP, которое не использует ни моно, ни core clr. Юнити просто использует компилятор c#, а рантайм у них вообще свой.
159 1004836
Юнити конкретно увязли в C#-говне. С их финансами им нужно было трясти microsoft, чтобы была первоклассная поддержка мультиплатформы, консолей, или работать с платформодержателями чтобы портировать рантайм, или форкнуть рантайм самим. Чем они занимались вместо этого? 8 лет делали никому не нужный burst? Это полный фейл этого Муделя как руководителя.
image456 Кб, 468x983
160 1004861
>>1004807

>стаж 8 лет

161 1004863
А Dots вообще живой? Вроде вышел в релиз, но его особо никак не продвигают, будто им похуй. Хотя это типа замена старого подхода к созданию игр в юнити.
162 1004873
>>1004863
Живой и вполне юзабельный

>>1004836

> 8 лет делали никому не нужный burst?


Нихуя себе не нужный. Это буквально киллер фича юнити - берст + джобы + их ецс

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

>>1004828
Там еще проблемы есть, с тем что юнити был завязан на особенности моно на низком уровне, и им теперь надо переписывать старые штуки.
Есть инфа, что вроде бы какой-то прогресс у них идет, но несколько лет еще ждать придется.
163 1004908
Сотрудники нового инструмента для создания мира от Unity, представленного на Unite 2024, также подверглись увольнениям

https://www.linkedin.com/posts/peter-roe-85361661_unity-showreel-01-activity-7295594646301220866-f4iR/

>>1004863
Ждем увольнения всех сотрудников работающих с Дотс.
164 1004918
>>1004908

>Ждем увольнения всех сотрудников работающих с Дотс


Ну хз. Им же в любом случае нужно что-то делать с устаревшим API. Чего только стоит переопределение оператора сравнения с null у Object класса.
165 1004924
>>1004918

> Чего только стоит переопределение оператора сравнения с null у Object класса.


В чем проблема? Если ты адекватно пишешь, тебе не нужна будет менеджед часть компонента
166 1004936
>>1004924

>В чем проблема?


В том, что в одних местах используешь "is null", а в других "== null". Получается магическое поведение.
167 1004968
>>1004936
Не сказал бы, что критично
168 1005016
>>1004873

>киллер фича юнити


И сколько процентов игр на юнити используют эту киллер фичу? Почему то мне кажется что немного. Сильно много ресурсов и времени потрачено на 1-10% процентов пользователей.

Юнити никогда не портируют на core clr из-за проблем с кроссплатформеностью. А добавлять core clr только в редактор и билды для ПК - по сути создавать 2 несовместивые версии рантаймов - это будет катастрофа сильнее разделения рендера на 2
169 1005080
>>1004004
>>1004807
>>1004908
Пиздец. А что случилось с "увольнять будем нетехнарей, вернем юнити в геймдев"? Такими темпами в юнити ничего кроме рекламы не останется.
170 1005086
>>1005080

>Такими темпами в юнити ничего кроме рекламы не останется.


Ты как гендиректор юнити мыслишь!

Текст электронного письма, отправленного Мэтью Бромбергом сотрудникам Unity, в котором он объявляет об увольнениях и проливает свет на дальнейшую стратегию Unity.

https://80.lv/articles/exclusive-unity-ceo-s-internal-announcement-to-staff-amidst-the-layoffs/

Инвестируйте в промышленность, интерактивные сервисы и искусственный интеллект.

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

В рамках этого нового подхода мы также объединяем ключевые технические команды, чтобы гарантировать, что все решения по продуктам напрямую поддерживают наши новые принципы. Группа искусственного интеллекта Пьера-Поля Жиру и команда Central Technology Services Амара Мехты присоединяются к организации CTO, при этом и Пьер-Поль, и Амар подчиняются напрямую Стиву.

Рекламная продукция, инжиниринг и доходы

Спустя два года после слияния с ironSource настало время объединить наши команды, технологии и продукты, работающие на рынке, интегрировав их напрямую в экосистему Unity, чтобы наши клиенты могли получить конкурентное преимущество на рынке.
171 1005096
>>1005086
Так это получается что IronSource сожрал Юнити, а не наоборот. Мда. Нахуй я это говно учу вообще.
Ондатра 2.jpg88 Кб, 422x492
172 1005277
Хэээй, я не знаю ни шарп, ни юнити, но мне чёт захотелось мод для одной игры написать, поэтому пытаюсь побыстрому освоить нужные куски.
Загрузчик модов выбрал (BepInEx), поставил, проект плагина создал, хеллоуворлд работает.

Дальше мне нужно как-то получить весь UI-текст отображаемый в данный момент игроку. Не обязательно каждый фрейм, но часто, раз в 2-5 секунд.

Что мне искать в сцене я вроде разобрался - сначала найти все UnityEngine.Canvas в сцене, выбрать из них те что рендерят именно оверлейный интерфейс (renderMode должен быть ScreenSpaceOverlay, может ещё что-то) и у них уже найти всех "потомков" с UnityEngine.UI.Text.

Я не могу понять как мне организовать этот сбор нужных объектов из сцены не используя GetComponentsInChildren() про который везде пишут что он дорогой, если вызывать регулярно то игра будет тормозить. (сам я правда не проверял)
173 1005335
>>1005096
А че не так? Никто у тебя старые версии юнити не отбирает, чтобы делать своё пиксельно хуинди.
174 1005349
>>1005277

>Я не могу понять как мне организовать этот сбор нужных объектов из сцены не используя GetComponentsInChildren()


в апдейт пихаешь FindObjectsOfType<Text>(), один раз пролагает и дальше оно будешь в кэше, на старых версиях движка (до 2021) наверное это не так
175 1005350
>>1005277
а лучше научись пользоваться гармонией для более эффективного моддинга и читинга, вот небольшие примеры:

[HarmonyPatch(typeof(LevelScroller))]
public class PatchLevelScroller
{
[HarmonyPatch(nameof(LevelScroller.ScrollForDistance))]
[HarmonyPrefix]
static void ScrollForDistance(LevelScroller __instance, float distance, ref float time)
{
__instance.CurrentSpeed = 50f;
time = 0.0001f;
}
}

[HarmonyPatch(typeof(PlayerPrivateData))]
public class PatchUserProfile
{
[HarmonyPatch(nameof(PlayerPrivateData.OffDiscordJoined), MethodType.Getter)]
[HarmonyPrefix]
static bool OffDiscordJoined(ref bool __result)
{
__result = true;
return false;
}
}
176 1005371
>>1005016

> И сколько процентов игр на юнити используют эту киллер фичу? Почему то мне кажется что немного. Сильно много ресурсов и времени потрачено на 1-10% процентов пользователей.


Я думаю тут надо смотреть не на проценты, а на доход от таких игр.

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

А конкретно джобы косвенно используют все игры, так часть встроенного функционала юнити их юзает

> Юнити никогда не портируют на core clr из-за проблем с кроссплатформеностью. А добавлять core clr только в редактор и билды для ПК - по сути создавать 2 несовместивые версии рантаймов - это будет катастрофа сильнее разделения рендера на 2


Хз, гугли что и зачем они делают.
177 1005373
>>1005096
Хороший вопрос. Если ты что то делаешь, надо четко знать зачем.
image101 Кб, 1539x709
178 1005392
>>1004968
Плюс, один раз я столкнулся с багом. Писал систему spectator для наблюдения за действиями игроков от их лица. И там была проверка на null. Я не могу понять, почему она криво срабатывает. Думал шиза уже может, ибо код был идеальный. Но оказалось это юнитеки поднасрали.

Вообще, им надо было просто добавить свойство IsDestroyed, вместо переопределения оператора. Тем более эти ретардосы в своих либах потом добавляли похожий метод для проверки.

Этот легаси-обосрамс нужно удалять нахуй. Ему нет никакого оправдания.
Ондатра 3.jpg70 Кб, 408x396
179 1005403
>>1005349
Да, я всё-таки сделаю сбор втупую, а потом уже буду смотреть тормозит или нет. К тому же в целевой игре довольно простые сцены, узлов не так уж много.

Но не через FindObjectsOfType(), может быть оно тоже позволит собрать только активные в текущей сцене, но мне это не очевидно.

А сначала SceneManager.GetActiveScene(), потом scene.GetRootGameObjects(), потом GetComponentsInChildren<Canvas>(), отфильтровать не оверлейные и потом собрать GetComponentsInChildren<Text>() внутри них.

Но эт детали.

>>1005350
Я знаю про рантайм патчинг, но я не смог придумать что и как мне патчить чтобы мою задачу решить.
180 1005406
>>1005371

>гугли


Нагуглил, что ответственный за перенос навострил лыжи из юнити. Это все, что нужно знать.
Untitled.png140 Кб, 1306x488
181 1005443
лол. обычный c# работает так же эффективно, как супер оптимизированый берст жопсы.
182 1005449
>>1005443
Джобы это быстрый и сейвовый метод написания многопоточного кода, а не йоба производительность.
183 1005469
>>1003849
Кидать картинки на новости вместо ссылок.
184 1005472
>>996268
Продвинутые олды так писали, что бы случайно в запарке не написать x = 0 вместо x == 0, то есть даже если обосрешься 0 = x компилятор тебя отшлепает, а x = 0 уплывет похерев всю логику работы на много часов боли.

Работает на говно языках типа С/С++/пихипи/пидонах/жопоскриптах, в нормальных языка в if можно баловаться только булями.
185 1005475
>>999128
Что кроме жесткого матана можно писать неделями в готовых движках?
186 1005480
>>1004138

> из востребованных технических проектов


Там может дармоеды, которые болты пинали много лет.
В здравом уме локомотивов никто не будет трогать, а вот вагоны отцепить можно, которые потом начинают ныть "за что?", "это конец!". Многие тру кодеры даже соцсети не видут, им плакать некуда.
187 1005483
>>1005096
Как-будто есть альтернатива
188 1005486
>>1005406
Для следующей работы - лучше быстрые лыжи, чем пинок под зад. Так ты ушел в честь протеста, или же тебя спросят почему пинок, а там уже и правда вскроется.
image.png29 Кб, 552x474
189 1005502
>>995282
Хмм... на голом OpenGL то же самое... Значит дело не в Unity
191 1005525
>>1005502
Дело в градиентах из графических редакторах. Они добавляют в градиенты dithering, и они сохраняются как 8 бит изображения.
srgb мониторы не умеют показывать настоящие градиенты, потому что там всего 255 градиентов цвета.
maxresdefault-1825103949.jpg42 Кб, 1280x720
192 1005556
без шума градиент так же известен как banding.
ai craize.jpg28 Кб, 398x477
193 1005675
АИ, пфф, думаешь, да что здесь сложного, ща как запердолюю крутой аи, потом пикрил и сидишь пукаешь.
194 1005707
>>1005675
ну и кал, я делал как-то так

using System.Collections.Generic;
using UnityEngine;

namespace Game.AI
{
public class StateMachine
{
private IState currentState;
private IState previousState;
private List<IStateObserver> observers = new List<IStateObserver>();

public void Update()
{
if (currentState != null)
{
currentState.Update();
}
}

public void ChangeState(IState newState)
{
if (currentState != null)
{
currentState.Exit();
OnStateChanged(previousState, newState);
previousState = currentState;
}
currentState = newState;
currentState.Enter();
}

public void ChangeToPreviousState()
{
if (currentState != null)
{
currentState.Exit();
}
currentState = previousState;
currentState.Enter();
}

public void RegisterObserver(IStateObserver observer)
{
observers.Add(observer);
Debug.Log($"Registred new observer: {observer}");
}

private void OnStateChanged(IState previousState, IState newState)
{
foreach (var observer in observers)
{
observer.OnStateChanged(previousState, newState);
}
}
}
}

using UnityEngine;
using UnityEngine.AI;
using Game.Utils.Draw;

namespace Game.AI
{
public struct IdleState : IState
{
private EnemyController enemy;
private Animator animator;
private Transform player;
private float idleTimer;
private float detectionRange;

public IdleState(EnemyController enemy, Animator animator, Transform player, float idleTimer = 3f, float detectionRange = 10f)
{
this.enemy = enemy;
this.animator = animator;
this.player = player;
this.idleTimer = idleTimer;
this.detectionRange = detectionRange;
}

public void Update()
{
idleTimer -= Time.deltaTime;
if (idleTimer < 0f)
{
Vector3 randomPoint = FindRandomNavMeshPoint();
enemy.agent.SetDestination(randomPoint);

Debug.DrawLine(enemy.transform.position, randomPoint, Color.cyan, 2.5f);

idleTimer = Random.Range(2f, 6f);
}

if (Vector3.Distance(enemy.transform.position, player.position) < detectionRange)
{
enemy.ChangeState(EnemyState.Chasing);
}

DrawUtils.FOV(enemy.gameObject, Color.green, 60f, detectionRange);
}

public void Enter()
{
animator.SetBool("Idle", true);
}

public void Exit()
{
animator.SetBool("Idle", false);
}

Vector3 FindRandomNavMeshPoint()
{
Vector3 randomPoint = Random.insideUnitSphere * 5;
randomPoint += enemy.transform.position;

if (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 5, 1))
{
return hit.position;
}

return FindRandomNavMeshPoint();
}
}
}
194 1005707
>>1005675
ну и кал, я делал как-то так

using System.Collections.Generic;
using UnityEngine;

namespace Game.AI
{
public class StateMachine
{
private IState currentState;
private IState previousState;
private List<IStateObserver> observers = new List<IStateObserver>();

public void Update()
{
if (currentState != null)
{
currentState.Update();
}
}

public void ChangeState(IState newState)
{
if (currentState != null)
{
currentState.Exit();
OnStateChanged(previousState, newState);
previousState = currentState;
}
currentState = newState;
currentState.Enter();
}

public void ChangeToPreviousState()
{
if (currentState != null)
{
currentState.Exit();
}
currentState = previousState;
currentState.Enter();
}

public void RegisterObserver(IStateObserver observer)
{
observers.Add(observer);
Debug.Log($"Registred new observer: {observer}");
}

private void OnStateChanged(IState previousState, IState newState)
{
foreach (var observer in observers)
{
observer.OnStateChanged(previousState, newState);
}
}
}
}

using UnityEngine;
using UnityEngine.AI;
using Game.Utils.Draw;

namespace Game.AI
{
public struct IdleState : IState
{
private EnemyController enemy;
private Animator animator;
private Transform player;
private float idleTimer;
private float detectionRange;

public IdleState(EnemyController enemy, Animator animator, Transform player, float idleTimer = 3f, float detectionRange = 10f)
{
this.enemy = enemy;
this.animator = animator;
this.player = player;
this.idleTimer = idleTimer;
this.detectionRange = detectionRange;
}

public void Update()
{
idleTimer -= Time.deltaTime;
if (idleTimer < 0f)
{
Vector3 randomPoint = FindRandomNavMeshPoint();
enemy.agent.SetDestination(randomPoint);

Debug.DrawLine(enemy.transform.position, randomPoint, Color.cyan, 2.5f);

idleTimer = Random.Range(2f, 6f);
}

if (Vector3.Distance(enemy.transform.position, player.position) < detectionRange)
{
enemy.ChangeState(EnemyState.Chasing);
}

DrawUtils.FOV(enemy.gameObject, Color.green, 60f, detectionRange);
}

public void Enter()
{
animator.SetBool("Idle", true);
}

public void Exit()
{
animator.SetBool("Idle", false);
}

Vector3 FindRandomNavMeshPoint()
{
Vector3 randomPoint = Random.insideUnitSphere * 5;
randomPoint += enemy.transform.position;

if (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 5, 1))
{
return hit.position;
}

return FindRandomNavMeshPoint();
}
}
}
195 1005711
>>1005480

>В здравом уме


Будь руководство юньки в здравом уме, мы бы не оказались там, где оказались. Весь твой поинт - инвалид.
196 1005782
>>1005711

> мы бы не оказались там, где оказались.


Где
197 1005786
>>1005711
Где мы оказались? Что не так?
Монополисты сидят и бабло гонят, что у них не так? То что было много групп разработки и нет результатов, новых технологий - это как раз вопрос к тем дармоедам, которых погнали.
pucwwhpw.gif1,8 Мб, 786x580
198 1005945
>>1005277

> я не знаю ни шарп


На решётке ты писал раньше.

> мне чёт захотелось мод


А цель какая? Что этот мод делать должен?
Если это перевод текста, то так ли нужно в реалтайме всё получать?

> для одной игры


Постеснялся написать что это Blood of the Killer (2021)?
199 1005996
Пацаны, скиньте свежую версию Final IK, если есть. Или относительно свежую.
image.png273 Кб, 511x512
200 1006015
201 1006019
>>1005707
Ну и лапша, пчел я бы постеснялся такое на полном серьёзе выкладывать.
202 1006022
>>1006019
ты просто безигорка, сам энеми контроллер очень маленький, апдейт только стейт машину и всю логику ИИ можно раскидать по разным скриптам
203 1006043
>>1006022

>ты просто безигорка


Ты сказал?

>всю логику ИИ можно раскидать по разным скриптам


вот поэтому я и говорю, что лапша.

А если я захочу что-то большеечем просто спокойствие и ходьба?

У меня мобы не только ходят, но и стреляют, вступают в рукопашную и бафами кидаются, я уже не говорю о таких мелочах как поведение при критичном уроне или смерти.
204 1006251
>>1006043
все переходы из одного состояния в другое можно спокойно накодить, необязательно всё в одном монструозном чмонябехе делать
sage 205 1006254
>>1005443
Это должно быть для них задачей под пунктом даже не 1, а 0, все силы должны быть брошены на переезд на CoreCLR
image527 Кб, 3393x1908
206 1006259
>>1006015
Плииииз.
207 1006262
Подскажите, если правильно думаю. Есть несколько объектов с одним материалом, мне нужно изменять каждый материал на отдельном объекте индивидуально. Допустим у меня пул врагов, которые часто появляются и исчезают, в таком случае я могу так же создать пул материалов и присваивать их последнему появившемуся врагу.
Материал для 2д спрайта, хочу сделать подобие подсвечивания при нанесении урона (точнее уже сделал, но через наложение второго спрайта поверх и его изменении цвета. Хоть это и работает, но самому не нравится такая реализация, плюс это ещё и увеличивает колличество лишних движений).
.mp41015 Кб, mp4,
540x960, 0:07
209 1006273
210 1006536
>>1006273
Биоробот ебучий, видно что ей похуй и никаких эмоций, просто воспроизводит типовые действия зная что олени среагируют.
воттаквот.PNG77 Кб, 1172x808
211 1006937
>>1006262
Нашёл ответ сам, может кому пригодиться https://discussions.unity.com/t/modifying-the-shader-properties-of-only-one-object/611833/22
Ондатра 1.jpg195 Кб, 872x702
212 1007209
>>1005945

> А цель какая? Что этот мод делать должен?


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

> Если это перевод текста, то так ли нужно в реалтайме всё получать?


Очевидно да.

> На решётке ты писал раньше.


Нет, не писал.

> Постеснялся написать что это Blood of the Killer (2021)?


Anthology of the Killer (2024) тогда уж.

На стороне юнити я сделал. Осталось сделать перевод и отображение на стриме.
Но уже и не нужно, ибо стрим для которого я это готовил не будет.
213 1007570
Это нормально, что для смены RenderTarget в кастом пассе недостаточно просто написать шейдер, недостаточно создать свой CustomRenderTexture, недостаточно сделать свой RenderPipelineFeature со своим RenderPass, надо ещё это как-то всё закостылить в RenderGrpah? Или я что-то не так делаю?
photo2025-02-2118-25-45.jpg60 Кб, 800x503
214 1008490
>>994942 (OP)
Юнити все беднее и беднее! Скоро с фалько по миру пойдет!
САТРАПЫ КАЧАЕМ ДВИГЛО!!! ЮНИТИ НУЖНЫ ДЕНЬГИ!!!

Выручка Unity за четвертый квартал упала на 25% до 457 млн долларов
Unity 6 был загружен 2,8 миллиона раз с момента запуска в октябре 2024 года.
https://www.gamesindustry.biz/unity-q4-revenue-drops-25-to-457m
))).mp41,7 Мб, mp4,
1920x1080, 0:06
215 1008493
>>1008490

>Скоро с фалько по миру пойдет!


>САТРАПЫ КАЧАЕМ ДВИГЛО!!! ЮНИТИ НУЖНЫ ДЕНЬГИ!!!

8huT3H7pjMlZnAkZX7eho9cCe3rSOHt7t8hgoFOShUBPUe42rP-eUTHR4tPPG48jZzrkh-Zxud1EQ-Bkf54fp-.jpg214 Кб, 962x722
216 1008847
>>994942 (OP)
Сап юнитач

Делаю аи противников в игре жанра рпг сверху и чёт подзапарился, может кто знает решение.

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

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

Пришёл к райкасту, очень не хотел, так как у меня они всегда глючили и хуй как работали. Конечно нормальный человек скажет сделай выстрелы через райкасты, а обнаружение на тригерах, но это в корне ломает всё что я создал заранее.

Поэтому задаю вопрос. SphereCast можно использовать вместо триггера Sphere? И если я засовываю это гавно в апдейт как сильно будет жрать производительность, если каждый моб будет постоянно запускать райкасты друг в друга?

Просто мне кажется в итоге я опять приду к первому решению и каждый моб будет через секунду постоянно просматриватьь сцену и искать игрока, а мне бы хотелось найти надёжное решение на будущее, этих мобов я планирую впихнуть в ртс, а там минимум 10-20 шт одновремено на экране нужно обрабатывать.
217 1008866
>>1008847

>рпг сверху


Если это стрелялка или протвники не должны видеть через стены, то без рэйкаста никак не обойтись.

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

Такая тема подойдет почти везде и всегда идеально.

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

По производительности, каждый кадр искать игрока это пиздец конечно. Игрок забивается в моба либо при его спавне, либо при первом попадание с область для тригера.
Сюда же рэйкасты, их не надо делать если игрок далеко, или не доступен для выбора цели.
218 1008870
>>1008847
Не искать каждый кадра, а настроить на комфортные 100-200мс. Использовать job если юнитов много.
Обновить тред
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее