Вопрос по быстродействию.Закладываю в игру сразу локализацию. Храню тексты в нескольких json файлах.Есть статический класс, который при необходимости дергает инфу из нужных файлов (те самые json, лежащие в resources). Дергаю инфу через Resources.Load<TextAsset>(path);Умом понимаю, что неэффективно каждый раз дергать одни и те же строки, лучше для каждого объекта их закэшировать и менять только при смене языка юзером в настройках.Но с другой стороны, у меня обычная 2д игра, где не так много вычислений. Можно ли забить хуй или лучше таки оптимизднуть?Мало ли там Resources.Load мегамедленный и на некропеках будет хрустеть и тупить.В update, fixed update и late update у меня все это не вызывается конечно же. Только когда нужно.
Котаны, есть проблема, приходит много данных, Json парсер спайкает, иногда коннект вообще падает. Требуется раскидать выполнение задач, для каждого подключения - отдельный поток. Вопрос, как передавать данные в главный юнити поток? Первое что в голову пришло - для каждого типа данных сделать ConcurrentQueue, кидать туда данные, а в юнитипотоке использовать TryDequeue() ? Какие способы могут быть?
>>547011Task<YourData> DoWork(object argument);Запускаешь таск из основного, потока, смотришь когда он выполнился, забираешь t.Result.
>>546999>Мало ли там Resources.Load мегамедленный и на некропеках будет хрустеть и тупить.Так пишешь, как будто само unity не будет хрустеть и тупить на некропеках.
>>547042>Как решать проблему в юнити на некропеках, что даже интерфейс в игре не грузит?Написать обладателю "хахах, лошара, нищеброд, что ли работу не найти, хуанан с алика не купить?"
>>546999Хуйню делаешь. Делай из CSV, ты можешь такой файл из Экселя и аналогов сразу в игру вставлять. Алсо, локализация ничего считай не весит и оптимизировать её загрузку не имеет смысла.Вместо ресурсов используй сразу бандлы.
Здравствуй, анон.Делаю туториал с офф-сайта 2D_RogueLikeВидео ниже, время 4:20Не понимаю, почему он делает именно статик переменную. Уж и переводил и прочее, но нихуя не понимаю, но видимо смысл в этом какой-то есть.Подскажи, пожалуйста, анонhttps://youtu.be/7NYXBUWmFvU?t=260
>>547131static = глобальная переменнаяhttps://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F
>>547136в c# нет скриптов. static может быть объявлен в классе и прочитан как MoyClass.static_peremennaya = 10.Но ты так никогда не делай
>>547015Но как быть если данные прилетают в другой поток? Таких потоков может быть несколько, нужно оттуда передать данные в главный по мере поступления. >>547021У меня нет выбора.
Какая разница междуgameObject.SetActive(true/false);иgameObject.enable = true/false;чекал документацию и answers.unity, но видимо моё знание ангельского не позволяет понять это.Может кто описать простыми словами?Заранее спасибо!
>>547059>>547055Ладно, перефразирую.ПОЧЕМУ юнити не показывает ГУИ на некропеках? Почему именно ГУИ-то? И при этом сбоят шрифты. Некропеки по идее наоборот офисное оборудование, проблем-то быть не должно с этим. Это ж самый базовый функционал.>>546999Двачую этого. Даже если будешь в памяти сотню мегов локализации держать (посчитай сам, сколько весит 1000 вордовских страниц), то это не особо на производительность повлияет. Разве что некропеки>>547190Открой юнити, напиши где-нибудь в коде интересующую функцию, правой кнопкой по ней -> Find declaration.
>>547246>ПОЧЕМУ юнити не показывает ГУИ на некропеках? Почему именно ГУИ-то? И при этом сбоят шрифты. Некропеки по идее наоборот офисное оборудование, проблем-то быть не должно с этим. Это ж самый базовый функционал.Просто разрабам юнити похуй на это. Скорее всего там какая-то мелочь, которая правится за пару дней, но всем похуй, плюс код закрыт - никто не ткнет носом в говно. Они нацелены на продажу своего детища разрабам, а у большинства разрабов - нормальные пекарни, на нищуков всем поебать.Это не годот, в котором это бы давно пофиксили через issue на гитхабе.
>>547254>Это не годот, в котором это бы давно пофиксили через issue на гитхабе. Вот поэтому на годоте игор и нет - фиксят всякое говно вместо того, чтобы важными вещами заниматься.
>>547258>>547254В моём опыте, годотоподелие на некропеке жутко лагает, а юнитеподелие не отображает интерфейс корректно, но не лагает "беспричинно".
>>547264При чём здесь моя кофеварка? Ну, возьмём другой опыт. Годотоподелие лагает, юнитеподелие не имеет проблем с интерфейсом и не лагает.
>>547260>а юнитеподелие не отображает интерфейс корректноСкорее всего ты запустил в низком разрешении, а скейлинг канваса в игре настроен на абсолютные размеры.
>>547260>юнитеподелие не отображает интерфейс корректноТак за это надо ебать в голову того, кто делал гуй в этом поделии. Сам-то по себе гуй у юнитиигр не исчезает.
1) https://blog.theknightsofunity.com/Не смотрел вообще на адекватность советов, но вдруг что-то полезное найдете2) https://habr.com/ru/users/charoplet/posts/Переводы туторов с сайта unity3dstudent.com и прочеемб в шапку можно запихнуть, я хз
Итак, СПЦ-кун на месте.В общем, решил я переделать игру в сорт оф сурвайвл хоррор. Вместо бесконечных лестниц будут коридорыSCP-087-01 это не просто лицо, это та самая светопоглощающая темнота. У игрока есть ментальное состояние, если которое падает, то появляется 01 и убивает его. Поднимать ментальное состояние можно шумя стукая всякими вещами об другие вещи, светом и музыкальными шкатулками (sic!). В общем, тем, что отгоняет 01 от игрока. Цель игры - survive as long as you can. Всё естественно в виар и только в виар.
Здравствуй, анон.Подскажи мне кое-что насчёт наследования. Возможно я не совсем правильно его понимаю (либо не понимаю вообще)https://pastecode.xyz/view/b2a52b21 - код тут и на прикрепленных файлах - для твоего удобстваВот мне конкретно неясно применение base в данном случае.Т.к. класс Enemy является наследником класса MovingObject, следовательно он так же имеет поляpublic float moveTime = 0.1f;BoxCollider2D boxCollider;Rigidbody2D rb2D;float inverseMoveTime;Вызывая Enemy.Start(), мы заносим значения в собственные поля собственные поля класса Enemy.А вот вызывая base.Start() мы заносим значения в поля, которые унаследовал класс Enemy, путём вызова функции из класса - родителя.Верны ли мои размышления/догадки? Если нет, то каким образом вообще действует base.start? Или вызванная функция base.Start заносит значения именно в класс-Родитель и тем самым происходит, грубо говоря, "общение" между классами.Верно ли то, что в классе Enemу, исходя из моих размышлений, имеет поля:boxCollider = GetComponent<BoxCollider2D>();rb2D = GetComponent<Rigidbody2D>();т.е. можно вполне написать функцию в Enemyvoid unsetIsTrigger(){rb2D.addforce(somevalue);}Заранее Спасибо, анон.
>>547397Да, класс наследует все поля и вызовы от родителя и ты можешь получить к ним доступ не переопределяя заново. В этом и суть наследования.
>>547404но вызывая base.Start(), можно сказать что вызывается метод в родителе и заносится значения именно в родитель, а не в класс-наследник?
https://issuetracker.unity3d.com/issues/vr-particle-systems-cause-task-dot-rasterdata-dot-indexbuffer-equals-equals-null-error-and-lead-to-graphical-glitchesКто-нибудь сталкивался? Как побороли?
Примерно как то так игрок должен использовать окружение чтобы выживать. Попадает в туман == падает психическое состояние. при падении псих состояния ниже определённой планки игрок умирает. Хочу сделать чтобы обьекты, ударяясь об что-либо, ненадолго рассеивали туман.Собственно, вопрос к знатокам:По факту я сейчас использую объёмный туман, но мог бы добиться подобного же геймплея с помощью поинт лайтнинга. Что сильнее нагружает железо, лайтнинг без теней или вольюметрик фог? аура
>>547419Это 2 разных скрипта, которые висят на 2х разных объектах.Вопрос же относится к base.Start.Это просто разграничение.Тк Start переопределен в классе-наследнике, но нам нужно выполнить то, что было изначально? Именно так это используется?
>>547441Откуда нам знать, что тебе там нужно выполнить? Тот метод, который определен последним выполнится. Если что-то выше в иерархии хочешь вызвать - руками.
>>547476Камеру трясёт так же как трясёт голову, на которую надет шлем. Из за низкого фпс на видео создаётся впечатление рывков, на самом деле там всё ок
>>547464ну ексель-моксель.Если в классе-наследнике, в функцию, которую мы переопределили выполнить base.Start() что будетБудет ли это аналогично этомуprotected override void Start() { animator = GetComponent<Animator>(); target = GameObject.FindGameObjectWithTag("Player").transform; //base.Start();boxCollider = GetComponent<BoxCollider2D>(); rb2D = GetComponent<Rigidbody2D>(); inverseMoveTime = 1f / moveTime; }
Какого хрена навмеш такой дырявый?Хочу сделать динамически спавнящуюся арену: игрок входит в триггер, срабатывает эвент, спавнится граница арены (с компонентами navmesh obstacle), за которую по идее не должен никто проникать. НПС выбегают за неё, как у себя дома. Потыркаются немного и они уже за пределами.Может я намудил с настройками агента?
Добавил плавную анимацию рассеивания тумана. Осталось добавить просчёт радиуса рассеивания за счёт силы удара о поверхность, звуки и продолжительность в зависимости от типа материала объекта
>>547397Лень читать твою портянку, но выскажусь на основе картинок.НЕ ДЕЛАЙ ТАКВсегда предпочитай композицию наследованию, всегда.Не надо наследовать enemy от moving, просто добавь два независимых компонента. Как ты с наследованием будешь турели делать, например?
>>547559Что ты юнитипидарка бомбанула та? Есть реальный косяк юнитиговна, какое это к тебе отношение имеет, что у тебя пердак порвался?
>>547508У тебя проблемы с пониманием наследования. Запомни, наследование это как гены родителей и потомков. Если у родителя была переменная foo и метод bar, то потомок унаследует переменные и методы родителя. Так же потомок может унаследовать "мутировавшие" гены, переопределяя методы со своей логикой и/или спользуя существующий код предков. Подробнее про наследование читай тут https://docs.microsoft.com/ru-ru/dotnet/csharp/tutorials/inheritanceАлсо, "pro tip" от анона по поводу composition over inheritance верный. Наследование имеет ряд проблем, которые сложно побороть и по этому лучше используй композицию (это когда у тебя несколько разных скриптов, которые выполняют одну простую задачу, но заебись и могу даже общаться друг с другом) чем наследование (когда у тебя хуева туча базовых классов и ты пытаешься одним классом сесть на все стулья)Например, у тебя есть обьекты (unit), которые могут быть как вражеские, так и дружественные. Создай один простой класс unit, который содержит в себе данные (например хп, скорость движения, команду) и дальше уже наращивай функционал отдельными скриптами, которые будут обращаться к этому unit классу, получать данные и манипулировать отображением (например moveable, который содержит логику движения, attackable, который содержит логику калькуляции получаемого юнитом урона и т.д.)Такая архитектура позволяет тебе держать код DRY (Dont repeat yourself - не дублировать код в десятках разных мест, а просто подключать нужные компоненты к обьектам в стек компонентов), упрощает читаемость и тестируемость кода т.к. покрыть тестами компонент, который следует принципу Single responsibility очень легко и приятно.
>>547570Алсо, по поводу компонентно-ориентированной парадигмы можно более подробнее почитать здесь. https://habr.com/ru/post/243479/
>>547566Зачем тестить, я тебе и так скажу, что юнити забагованная параша для школьников, можешь укатываться в божественный уеч или не менее божественный годот, там игры делают себя сами, достаточно голосом сказать "зделой мне заебись!" и пойти сразу стричь бабло в стиме. Как думаешь фортнайт сделали?
>>547546>три полигона с прозрачностью не может нормально отрендерить.Там вообще какой-то юнитипиздец!Проблема связана с тем, как прозрачные объекты сортируются в Unity. Обычно объекты рисуются с использованием z-буфера, который рисует изображение глубины при визуализации сцены. Это гарантирует, что рисуется только самый близкий пиксель, поэтому все отображается в правильном порядке. Проблема возникает с прозрачными объектами или, точнее, с полупрозрачными пикселями. Когда объекты полупрозрачны, они не могут быть точно записаны в буфер глубины. Это связано с тем, что в z-буфере делается предположение, что в любом пикселе на экране нужно рисовать только один объект в обмен на чрезвычайно быструю сортировку. Полупрозрачные объекты требуют рисования нескольких пикселей в одной и той же точке, поэтому их необходимо рисовать до или после остальной части изображения. Естественно, это приводит к некоторым ошибкам сортировки, потому что сортировка по пикселям, как найдено в буфере глубины, не представляется возможным. В Unity метод сортировки просто берет центральную точку сетки и предполагает, что вся сетка находится на одном и том же значении глубины. Практическим результатом этого является то, что если центр вашего прозрачного объекта находится позади другого объекта, то весь объект будет визуализироваться позади него.Теперь, когда мы обсудили причину, давайте поговорим о решениях. Есть, на самом деле, несколько возможных, хотя все они связаны с компромиссами. Я буду обсуждать 3 здесь:Выключатели Вырезные шейдеры решают эту проблему, применяя фильтр к текстуре, давая каждому пикселю логическое значение: видимое или невидимое. Это позволяет рисовать сложные формы, и поскольку ни один пиксель не является полупрозрачным, используется буфер глубины. Компромисс здесь заключается в гладкости - вы потеряете приятные, мягкие края, которые вы получите с прозрачными объектами. Это наиболее точное решение, и для небольших, удаленных или с высоким разрешением текстур это определенно лучшее решение.Сегментированные сетки. Это немного сложнее сделать правильно, и это только приблизительное. Идея состоит в том, что вместо одной большой сетки вы разделяете ее на несколько маленьких, каждая из которых несет часть текстуры. Поскольку сортировка прозрачности осуществляется по сетке, это позволит решить проблему реже, поскольку каждую часть объекта можно отсортировать по отдельности. Компромиссы здесь заключаются в производительности и сложности реализации.Z-ввода. Другой вариант - просто записать в z-буфер в любом случае. Это работает, но производит некоторые артефакты. Любой другой нарисованный полупрозрачный объект всегда будет выше или всегда будет позади объекта, который вы рисуете, то есть сортировка по глубине между этим объектом и другими прозрачными объектами просто исчезнет. Часто это хорошее решение, если вы очень редко перекрываете объекты или если ваш объект находится напротив поверхности, так что никакой другой прозрачный объект не пройдет под ним.Есть больше возможных решений, но это некоторые из наиболее распространенных. Причина, по которой вам так сложно найти одно решение, заключается в том, что его нет - есть несколько. У каждого есть свои преимущества и недостатки, и вы сами решаете, что лучше всего соответствует вашим потребностям.
>>547546>>547576>Проблема связана с тем, как прозрачные объекты сортируются в Unity.Как в шейдере сортировка прописана - так и сортируются.
>>547581И что ты сделал? Проблема при включенном солнце через один меш видно тени через другой нет. Да там еще есть траблы странные, я начал это тестить когда ужасные косяки на прическе увидел.
>>547570Верно ли я понимаю, что то, что ты описал, можно реализовать путем простого переноса скрипта в скрипт через инспектор, как например обычные public поля.Что приходит на ум ещё, в классе "родителе" сделать свойства
>>547558Я так и не делаю.Просто смотрю урок с офф. Сайта и пытаюсь понять.Как я уже понял, не зря я спросил
>>547592>Верно ли я понимаю, что то, что ты описал, можно реализовать путем простого переноса скрипта в скрипт через инспектор, как например обычные public поля.Не понял твоего вопроса.Ты делаешь класс unit, даёшь ему паблик поля (например скорость движения), потом делаешь класс moveable, в котором хранишь логику передвижения. В этом moveable ты прописываешь работу с компонентом unit (например берёшь значение с переменной скорости движения и производишь манипуляции на основе этого значения с rigidbody).Как это всё подключать? Кидаешь вначале unit компонент на обьект, который является у тебя юнитом и потом кидаешь moveable на него если он должен двигаться. Если же у тебя объект тоже юнит, но двигаться не должен (например, здание), то не кидаешь на него moveable. Иначе говоря, компонентами ты придаёшь сущности некоторое специфичное значение\возможности.
>>547585Просто шейдер с z-сортировкой. Там один тег, лол.>ужасные косяки на прическе увиделДля причёсок Cutoff, а не Transparent. Плюс ты ещё будешь охуевать с "юнитипиздеца", когда увидишь, что твои причёски прозрачные с одной стороны. Как всегда, виновата юнити.
>>547596Юнититупица опять что-то умничает, ахуеть. Юнитиговно рендерит с косяками, он нихуя не понял, какую-то хуйню записал без освещения и радуется, даун.
>>547595Ну смотри, мы же можем во втором скрипте (moveable) написатьPublic Unit scriptName;Ну и потом в инспекторе просто в поле перенести скрипт
>>547607Да, можно. Так же можно сделать проще, написав в OnEnable или в Start у MoveablescriptName = GetComponent<Unit>();и тогда Moveable сам найдёт этот компонент если он существует у геймобжекта.Опираясь на это ты можешь сделать, например, возможность работы не только с Unit, но и например с Building или чем-либо ещё, просто через кондишн
>>547610Читай документацию https://docs.unity3d.com/Manual/PostProcessing-Stack.html и делай наоборот.
>>547610Алсо раз ты юзаешь lightweight rendering pipeline, то возможно у тебя там более новый постпроцессинговый стек. Если картинки в доке не сходятся с тем, что у тебя - читай эту доку https://github.com/Unity-Technologies/PostProcessing/wiki
Отбой тревога. Внезапно, заработала. Хуй знает почему, в коде вроде ничего не менял, но после очередного запуска Unity всё таки сделал из JSON файла массив.
>>547632В смысле не принимает, тупица, я тебе вебмку записал с проблемой, а ты какую-то хуйню пилишь.И на твоей вебмке хуйня>>547616, почему через выделенную плоскость видно наклоненную плоскость, а нижнюю горизонтальную нет?
>>547558Есть ли какие преимущества у композиции перед наследованием?Кроме удобства для программиста в чтении и редактуры кода?Есть ли какие-то существенные отличия по скорости работы при больших нагрузках и загруженности сцены? Или может быть недостатки?
>>547640>работы при больших нагрузках и загруженности сцены?>unity>большие нагрузкиПроиграл. Пофиг что использовать, все равно будет тормозить.
>>547640Всё уже тысячи раз было написано по поводу composition over inheritance, можешь зачитаться: http://bfy.tw/LsoS
>>547712>Создаешь материал в новом супер аш ди пайплайн рендере юнитиговна>Рендерит как говно, позор по всем статьям>Ты винават! Ты! Празрачнасть это сложжна, юнити - это когда нужна изъебнуться!Юнитипиздец классический, во все поля.
Аноны, подскажите новичку. Я потихоньку изучаю юнити, читая "Юнити в действии" Хокинга от 2016 года. Вторая глава - создание простенького 3д шутера: сделали модельку, прикрепили ей на голову камеру, задали вращение и перемещение. На бумаге все хорошо, но "в действии" возникли сложности. Проблема в переменной Time.DeltaTime. Автор пишет, что она нужна для того, чтобы сделать игру фреймо-независимой (frame rate independent, то-есть на мощном компе имеем условно 60 кадров, на слабом - 30 кадров. С постоянной скоростью наш герой на мощном компе убежит дальше, чем на слабом, поэтому надо вводить Тайм.ДельтаТайм и умножать ее на скорость перемещения. Но как только я дописываю эту переменную, у меня герой начинает очень медленно двигаться, прям как улиточка. Без нее все хорошо. С ней - медленно и плохо. Комп не слабый. Игроделы, поясните пожалуйста, может в современных редакциях эту функцию переделали? Книга 2016 года, два года прошло. Код пишу такой же как у автора. В чем может быть проблема? Нужна ли эта тайм.дельтаТайм?
>>547901При использовании дельта тайм, скорость передвижения у тебя считай указывается за секунду. Т.е. раньше у тебя было условно 10f за кадр, стало 10f за секунду. Увеличивай до нужного.
>>547901Время.дельтаВремя - это время в секундах, прошедшее с предыдущего фрейма. В секундах. С предыдущего фрейма. Что у тебя обозначает скорость, которую ты умножаешь на часть секунды? В этом и есть вопрос.
Короче, пацаны, я уже не человек, я зверь нахуй! Ебусь третий день с дерганным кинематик ригидбади. Пробовал все: двигать камеру в Fixed/Late update, все виды интерполяции, вертикальную синхронизацию и еще миллион всего. Как фиксить это говно?
Unity Technologies дала заднюю в конфликте с ImprobableПод давлением общественности компания Unity Technologies всё же признала свою подлость, которую она учинила в отношении компании Improbable, заблокировав её деятельность и возможность легального обслуживания её клиентов, использующих её сетевой продукт Spatial OS, интегрирующийся с Unity Engine. В связи с этим, все разработчики, кто использовал мультиплеерную систему Spatial OS в своих играх, были вне закона, преступниками, которых можно было привлечь к ответственности за нарушение условий TOS (Terms of Service) движка Unity. Этим она нагло нарушила свои обещания, что Unity будет открытой и лояльной для разработчиков платформой.До этого Improbable привлекла на свою сторону Epic Games, которая сейчас является основным (и очень влиятельным из-за успеха «Fortnite») конкурентом Unity Technologies в сфере игровых движков. Unity Technologies всячески выгораживала свои односторонние действия, обосновывая изменение правил некой необходимостью. Теперь сообщила о том, что ныне она восстанавливает лицензию Improbable на тех же условиях.Сооснователь компании Unity Technologies некий Joachim Ante с барского языка ляпнул, что они приняли решение восстановить возможность обслуживания третьими сторонами, предлагающими ПО и услуги для движка Unity. В компании к чему-то заявили, что они не считают Improbable партнёром и не имеют никакого понимания в их инструментарии и бизнесе. Нужно отметить, что она и не должна влезать в чужой бизнес.Так или иначе, сообщество пользователей движка выиграло, разработчики оного решили отменить последние ужесточения по использованию продуктов основанных на движке. Теперь пользователи могут использовать ту версию движка на той лицензии, по которой они её приобретали. А новые правила TOS будут вводиться с новыми версиями, и будут действовать только на новые версии с момента подписания соглашения. Это также разрешит третьим лицам предлагать свои услуги, связанные с движком. TOS будет обсуждаться и редактироваться на Github, благодаря чему пользователи смогут узнавать заранее о том, что их ждёт с каждым апдейтом.Справедливость восторжествовала, Unity Technologies посрамлена за попытку диктовать монопольные условия для разработчиков, подключающих к движку сторонние инструменты и услуги.Пункт 2.4 уже изменён, однако в нём все равно заложены жесткие условия о запрете использования символики и упоминания торговой марки Unity, из-за чего даже упоминание об интеграции вашего плагина с Unity может юридически караться. Будьте внимательны и осторожны!Вот этот пункт полностью:Unity developers are free to use any service offered to Unity developers (each, a “Third Party Service”). Unity does not have any obligation to provide support for any Third Party Service provider or Third Party Service under this Agreement. Third Party Service providers may not, without Unity’s express written permission: (1) use a stylized version of any Unity name, trademark, logos, images or product icons, or other Unity-owned graphic symbols; (2) use a product name confusingly similar to a Unity product or that could be construed by Unity developers as being a Unity product or service; or (3) create or use any marketing materials that suggest an affiliation with, or endorsement by, Unity. All use of Unity’s trademarks must comply with Unity’s Trademark Guidelines.
>>548096С импропадлом год пытались связаться, т.к они реселлили лицензию юнити, что было запрещено. Чтобы не ставить под удар пользователей юнити, юнитеки разрешили это продолжать. Широкий жест. Твой копипаст пиздёж чистой воды, кстати.
>>548109>Твой копипаст пиздёж чистой воды, кстати.>БАБАХ!!!Ну конечно. Когда анриал начал обоссывать уже совсем по-жесткому у юнити начались широкие жесты. Ты же понимаешь, что широкие жесты может себе позволить только свободный господин (анриал), а не зажатый со всех сторон подыхающий петух (юнити).
>>548110Так на анрил всем похуй. И всегда было похуй. И всегда будет похуй. Зачем ты его вообще приплёл?
>>548110> зажатый со всех сторон подыхающий петух> юнитипока в мире есть школьники и студенты, юнити будет процветать. вообще, вся эта возня с сетевым сервисом выглядит как пустой форс, с учетом того что среди пользователей юнети реально использующих сетевые функции наберется примерно ноль целых хуй десятых, а с учетом того что этой поеботе есть альтернативы, сам кутёж вокруг этого дерьма выглядит как потужный форс
У Юнитевских ебанашек оказывается Application.version работает через анус и при плохой погоде на 3 планете второго газового гиганта Альдебарана возвращает 1.0.ЁБАНЫЙ ПИЗДЕЦ АНУСА ТРИ ЁБАНЫХ ДНЯ ОТЛАДКИ ЧТОБЫ НАЙТИ ЕЩЁ ОДИН БАГ ЮНИТИ В САМОЙ-САМОЙ ОСНОВЕ ИХ ЕБАНУТНОГО ГОВНОДВИЖКА КОТОРЫЙ ПРОВЕРЯЕТСЯ ТУПЫМ АВТОМАТИЧЕСКИМ ТЕСТОМ! АЖ АНУС К ХУЯМ РАЗВОРОТИЛО.
https://www.youtube.com/watch?v=E6xCubQpFwgПочему версия на Юнити какая-то дерганная. Обзор камерой не плавный в сравнении с версии на UE4.
>>548312>схуялиА схуяли ли оно должно работать быстро на C#, где на каждый чих создаются выделяются объекты в куче?Выбирая unity, ты определяешь сам для себя, что удобство, низкий порог входа и ассет стор для тебя важнее производительности, просто нужно принять это и смириться, не гнаться за скоростью.
>>548330> где на каждый чих создаются выделяются объекты в кучеНу если пишешь как мудак, то так и будет. Такие вещи решаются на уровне архитектуры скриптов.
>>548330Я тут подобосрался , дергать .preferredHeight у текста немного накладно, за скоростю не гонюсь, но стараюсь сделать с запасом, иначе потом может быть БОЛЬНО.
>>548253>Почему версия на Юнити какая-то дерганная.Они delta time не сглаживают. Сглаживание dt - это вообще главная пионерская тайна. В UE dt сразу же проходит через Moving Average, в Юнити ты должен сам использовать smoothDeltaTime. При этом способа сказать анимации делать так же нет.Кулстори: в одной игре мы случайно выключили фильтрацию dt и на форуме поднялся вой про "игра тормозит! безрукие разрабы!!1111". При включении назад всё стало снова работать "плавно", хотя ничего больше не менялось. Использовали moving average на 11 кадров с отбрасыванием двух наибольших и наименьших dt.Гугл тот источник в котором я это нашёл уже не находит.
Нашёл таки: http://bitsquid.blogspot.com/2010/10/time-step-smoothing.htmlДаже такая штука как dt не так тривиальна как это пишут в туториалах.
Двач,пытаюсь нормально реализовать инвентарь. Есть несколько вопросов.1)Если у меня в инвентаре есть опция сортировки, то мне надо отсортировать список предметов, потом заново пересоздать UI инвентаря?2)Как мне сделать списко предметов у персонажа. Например у меня есть класс Potions{...} Weapon{...} Armour{...} и абстрактный класс Item{...} который соджержит вес,цену и всё такое.Мне нужно получается делать три списка для каждого класса? или как?
>>548350Запили базовый класс для предметов, наследуй все предметы от него. Храни все в одном списке с этим базовым классом. Изи.
Почему свойства класса типа "int?" не отображаются в инспекторе? Если создать свойство с типом "int", то она сразу и в инспекторе появится, а с типом "int?" нет, нихуя. Можно её как то вытащить?
>>548364Нет, он из Англии. Тупые америкосы отрезали из окончаний вида "our" букву "u" и радуются, а настоящие аристократы пишут красиво, много гласных
>>548367https://trends.google.ru/trends/explore?q=Armor,ArmourИзвольте, мосье... Как давно аристократия перебралась в страны третьего мира и колонии?
Подскажите, кто с векторами и кватернионами работал.Пытаюсь понять как поворачивать джоинты. Заставил тестовый куб поворачиваться к точке найденным на форумах кодом, смотрит вперед он осью з. пик1 Мне нужно поворачивать конечности тела, они тоже осью з смотрят. Но с таким направлением управлять поворотом невозможно, хочу чтоб нога поворачивалась по направлению нарисованной стрелки. пик 2Можно ли повернуть гизмо не поворачивая объект?Я попытался поменять в том коде вектора которые определяются как вверх и вперед на такие чтоб вверх это был з а вперед тот что смотрел вниз и получил бред, повороты вообще не к точке и не адекватные. пик 3 Еще не понимаю: в коде вектора берутся от осей джоинта, если покрутить бегунки осей чтоб они повернулись то результат не меняется, а если переписать в коде вектора как я сделал то меняется, в чем подвох?Если ли годные туторы которые объяснят по какой логике выстраивать вектора и кватернионы самому?Большая часть кода, Space тут идет selfstatic void SetTargetRotationInternal (ConfigurableJoint joint, Quaternion targetRotation, Quaternion startRotation, Space space) { // Calculate the rotation expressed by the joint's axis and secondary axis var right = joint.axis; //старая версия лицевая сторона з var forward = Vector3.Cross (joint.axis, joint.secondaryAxis).normalized; var up = Vector3.Cross (forward, right).normalized; //новая версия //var up = Vector3.Cross (joint.axis, joint.secondaryAxis).normalized; //var forward = Vector3.Cross (up, right).normalized; Quaternion worldToJointSpace = Quaternion.LookRotation (forward, up); // Transform into world space Quaternion resultRotation = Quaternion.Inverse (worldToJointSpace); // Counter-rotate and apply the new local rotation. // Joint space is the inverse of world space, so we need to invert our value if (space == Space.World) { resultRotation = startRotation Quaternion.Inverse (targetRotation); } else { resultRotation = Quaternion.Inverse (targetRotation) startRotation; } // Transform back into joint space resultRotation *= worldToJointSpace; // Set target rotation to our newly calculated rotation joint.targetRotation = resultRotation; }
Все таки юнити как то хуево выглядит. Вроде правильно пбр все дела, но некрасиво, чего-то не хватает, в анриале любой примитив годно смотрится, может фильтры какие-то хитрые.
>>548666Арт хуевый. Плохая палитра. Давай одни и те же ассеты в разных движках, чтобы было честное сравнение.
>>548699Из фильтров скорее всего пост процессинг v2 и всё.https://youtu.be/pJHy5ecLtiI>>548700С тобой не согласны не только тут, но и там>incredibly beautiful>looks awesome >This is really a fantastic looking
>>548710Ты не понял иронию. Дело было так:>>548666> юнити как то хуево... в анриале годно смотрится, может фильтры какие-то хитрые>>548691> пост с охуенным юнити, которое уделало анрил всухую>>548699> Может фильтры какие-то хитрые?
>>548714>пост с охуенным юнити, которое уделало анрил всухуюЮнитидолбоеб, ты совсем в шары долбишься. Обычная говно демка, материалы металла и асфальта, хуйня. Это не красиво, а нормально.Лучше дайте ссыль на какой-нибудь гайд или ассет с волосами годными в юнити, а то одно говно.Типа такого, там внизу мармозетский вьюверhttps://www.artstation.com/artwork/qA0rg2Или такого, хотя вряд ли в юнити такое возможноhttps://docs.unrealengine.com/en-us/Resources/Showcases/PhotorealisticCharacter
>>548721https://www.youtube.com/watch?v=KV4uYQjI4OEБуквально 2 секунды в гугле. Проблема всяких ноющих чмошников не в том, что тот или иной движок лучше/хуже, а в том, что у них руки из жопы растут.
>>5487215 стадий принятия неизбежного:Отрицание ты был здесьГнев теперь ты здесьТорг ДепрессияПринятие
>>548728Если ты будешь помогать людям, которые в первом предложении сыпят оскорблениями, а во втором просят помощи, то тред будет состоять из таких людей на 90% минимум.Помогай лучше тем, кто просит с уважением нормально. А этого петуха игнорируй.
>>548728Реально юнитидауны иногда сумасшедшие попадаются, не ты вчера про блендер пбр за пару сек нагуглил, тупица? Волосы для игр не делаются тысячами волосинок, придурок.>>548732А разве если человеку помочь и он полюбит юнити он продолжит срать в треде, даун? Хорошая у тебя логика.
>>548733>Ну и видос с "доминацией" уе4Но доминация продемонстрирована уже тут>>548721, юнитидаун, а ты какую-то васянскую хероту запостил.
>>548734> человеку помочь и он полюбитМожно прилететь на планету, на которой ты живешь и обнять тебя?
>>548721Причем тут движок, придурок? Движок - это менеджмент ассетов и логика. Рендер - это шейдеры, в том числе пользовательские.Какой ты шейдер кожи сделаешь/купишь в юнити, настолько у тебя будут реалистичные персонажи.В уече шейдеры из коробки лучше (читай: более ресурсозатратные), но в юнити на мой взгляд с шейдерами и вообще проще работать
>>548734Дебс, ты что-то писал про производительность в своем вопросе? Нет? Вот и обтекай.Из твоего же примера>Hair geometry using UE4's hair shader is generally going to be constructed using a series of non-planar sheet surfaces, which is a common approach in many real-time hair solutions. These can be authored in the DCC app of your choice.Унрыл предлагает тебе самому делать геометрию и самому завозить текстуры кстати, у них просто шейдер есть. В упити уже давно присутствует пбр, есть блядь куча ебаных демок, которые можно скачать и выдернуть шейдер на волосы и импортировать геометрию+текстуры из уеча. Так что тебе, дауну, еще нужно? Кнопку "сделать пиздато"?
>>548741Это даже не битва шейдеров, а битва ассетов. Вот видос с дефолтным шейдером юнитиhttps://www.youtube.com/watch?v=LuxX08Q8v_AОхуенно смотрится, только вот сколько долбоёбов из гд могут использовать фотограмметрию? Несколько или нисколько? >>548743>производительностьhttps://www.youtube.com/watch?v=p1JZijEO3B8100 фпс же. Охуенная производительность.>Волосы для игр не делаются тысячами волосинокhttps://www.youtube.com/watch?v=VFWr44ZIEZcПока уе4едауны сосут вчерашний день и делают волосы плашками, юнитигоспода вкатываются в новый стандарт индустрииhttps://www.youtube.com/watch?v=GEa8HBX1X0A
>>548743>Дебс, ты что-то писал про производительность в своем вопросе? Нет? Вот и обтекай.Юнитипидрилка нагуглила крутые волосы, которые непригодны для игр и что-то верещит.>>548743>В упити уже давно присутствует пбр, есть блядь куча ебаных демок, которые можно скаТак я и просил гайды или демки, а ты начал выделываться как ебанько.Итог, вы так и не представили ни одного гайда или демки (из якобы кучи), чтоб можно было посмотреть вот эти текстуры, вот так охуенно это выглядит (хотя бы как в мармозетовском примере >>548721 ). От вас просто какие-то эксперименты с партикловыми волосами, которые пока никто не юзает. Значит на юнити это очень сложно или невозможно сделать. И вообще это говорит о том, что вы просто не в теме и не пытались сами сделать. Только юнитикукареки.
>непригодны для игрЭтот дебич застрял в 90х. Уже лет пять во многих играх такие волосы.https://www.youtube.com/watch?v=M8Nhe34sHJs
>>548769Давай короч демку одну из кучи ебаных демок с такими волосами, потесчу, или юнитипиздабол. Ну мы же знаем что ты балаболка обыкновенная. Ты юнити-то хоть раз открывал, ты по ходу только ютуб юзать умеешь.
У меня в скрипте есть IEnumerator Start_dialog функция, которая выводит субтитры на экран. Мне нужно сделать функцию "Choice", которая показывала бы игроку варианты выбора ответов в диалоге, при этом субтитры должны перестать отображаться, пока игрок не выберет реплику своего персонажа. Проблема в том, что у меня от этой функции виснет весь юнити. Пробовал сделать функцию "Choice" как IEnumerator и вызывать её в функции Start_dialog через yield return Choice(), но всё равно юнити намертво зависает. Как остановить функцию Start_dialog, не останавливая при этом всю игру?
>>548773А не шёл бы ты нахуй? Вот тебе одна демка и тести.https://mega.nz/#!14UwUCzS!izFVVzGufLZooN9riQ1FcwiMq3XWK5nYXyLm2dGyhgo>>548796В спорах рождается истина. А вообще пошёл я игры делать. Нахуй срачи с уёбками.
>>548806> если в функции "Choice" есть бесконечный цикл, то юнитине> зависаета обрабатывает бесконечный цикл. И, заметьте, делает это лучше уеча.
>>548806Всё, кароч разобрался. Оказывается нужно было после каждой итерации в цикле возвращать yield return null;
>>548802>Вот тебе одна демка и тести.Прикольно она работает, вблизи 38fps, вдали 100, в игре объявление - ребят, близко не подходите, а то зависнет. Три зверюги, и юнити фсе. Кучи демок, устаревшие технологии, вы конченные балаболы, что и требовалось доказать.
>>548811- раздался пронзительный голос со стороны параши.Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
>>548811Вдали 100 фпс, вблизи 100 фпс. В игре требование - обновите железо. Для даунов, кстати, поясню, производительность не зависит от юнити, там плагин от нвидия, который с 2015 уже в играх используется повсеместно.https://developer.nvidia.com/hairworks>>548814Ну да, что-то серуны сплошные вместо спорщиков.
>>548825>Это не юнитиговно лагает, это не волосня лагает, это тебе нужно купить gtx2080!Так вот оно какое, юнитиговно, требовательное к железу. Вот бы волосню можно было сделать менее требовательной, но нет, юнитиговно на это не способно, только анриал может.
>>548848У меня 1050ти, значит юнитиговно нестабильно и по разному у всех работает, это вообще позор. Вас это не настораживает, юнитидауны? Ну вот еще один пример.
Есть какие-нибудь ассеты или руководства для создания диалоговой камеры, типо как в ведьмаке? Т.е. что бы камера фиксировалась на том персонаже, который сейчас говорит.
>>548873> ассет что бы камера фиксировалась на том персонаже, который сейчас говоритНадеюсь, что нет. Возьми готовый ассет и прикрути к репликам переключение между камерами.
>>548883Руками поставить камеру не судьба? (Предыдущую можно даже не отключать). Результат от автопостановки камеры может тебя очень неприятно удивить.
>>548879>Это не ты исходники годдота подправлялНет>>548860А что ты скажешь, если не подтасовал? Как будешь оправдывать этот косяк? Нвидия продажная? Драйвера? Петушина.
>>548893Т.е. вручную писать диалоги тебя не смущает. Не смущает тебя и продумывать требования и последствия к отдельным репликам. И хитрые взаимодействия разных диалогов тебя не смущают. А вот именно камеру поставить - непосильная задача? Ладно, сходи-ка лучше в пизду.
>>548883Возьми вращение чарактера и прибавь к нему 180 градусов. Не забывая обрезать 360, если получаем больше. Алгоритм простейший же.
>>548907Бля, а ты же не думаешь что Ведьмаке или там любой другой рпг-параши камеру для каждого ссаного диалога настраивали?
>>548916Так и реплики не писали - нахуй надо. А то еще озвучивать, переводить на 40 языков и опять озвучивать.
>>548921Не неси хуйню. Алгоритм камеры в ебало делается изи. Но расписывать мне лень, я кушою. Ебитесь сами.
>>548924Вот всё тебе расписывать надо. Голову собеседника просто вращаешь на 180 градусов. В юнити вообще есть LootAt, кстати.
>>548931> Голову собеседника просто вращаешь на 180 градусовИ оба перса смотрят в камеру. Собеседник как пикрил, ГГ скрыт за ним.
Для диалогов лучше делать две камеры и между ними переключаться или лучше делать одну камеру и её поворачивать?
>>548967Как мы уже выяснили, поворачивать надо головы персов, а не камеру. Камере, вообще, надо static указать, никуда не поворачивать - пусть болтается, как в редакторе поставили. Две переключать, конечно. Красивый разворот/отъезд камеры это уже не по-индюшачьи.
>>548969>Две переключать, конечно. Красивый разворот/отъезд камеры это уже не по-индюшачьиНу можно, к примеру, гасить экран перед поворотом камеры, а потом его снова зажигать.
>>548972Напомни, для чего используется этот монтажный прием? Насколько я помню, он чутка разделяет сцены; показывает что между "было" и "стало" прошло какое-то время, например. Не?
Бля, воспользовался LookAt, а он направляет камеру на ноги персонажа. Как его заставить на ебало смотреть, а не ноги?
>>549012Ну и нахуй мне тогда вообще этот LookAt если бы я сразу могу и так вращать? Ладно, оказывается моделька разбита на рёбра и прочую парашу. Среди них есть Head и на него можно направится через LookAt. Только как получить доступ к ребру Head? Transform.Find(), если я правильно понял, ищет только среди детей, а внуков и правнуков уже не ищет. Писать Transform.Find("Root").Transform.Find("Ribs").Transform.Find("Neck").Transform.Find("Head") по моему не вариант. Есть какой то более православный метод найти пра-правнуков исходного gameObject?
>>549024> найти пра-правнуков исходного gameObjectОх, наебешься же ты в разработке. Связи должны быть прямые, очевидные. Задаешь контроллеру диалогов камеру и на какой объект смотреть.
Как научиться обращаться с трехмерными экшен-платформерами? К примеру я хочу закодить объект так, чтобы он умел бегать по стенами определенный период, но при увеличении скорости мог оставаться дольше на объекте. Как решение такой задачи гуглить? How to make your character run on walls in Unity?
>>549024https://answers.unity.com/questions/799429/transformfindstring-no-longer-finds-grandchild.htmlЕсли не хочешь так каждый раз делать, обойди иерархию при инициализации и скинь результаты в hashmap/map. Но будут нужны уникальные имена, для однозначной идентификации
>>549049Думаю, тебе нужна управляемая сила для каждого объекта https://forum.unity.com/threads/setting-the-gravity-of-an-object.312147/
>>549049>Как решение такой задачи гуглить? Пиздос, блять. Дожили. Я просто в ахуе.Ладно там синтаксис нагуглить или какой-то алгоритм. Но блять, тупо логику работы гуглить это пиздец.Короче бросай геймдев, бросай программирование, это не для тебя.
>>549063благодарствую>>549064>бросай программированиея еще и не начал, маня, уйми пердак. На зло тебе пойду теперь =)
>>549081Так я и не отшучиваюсь, а вполне осознанно заявляю, что ты - даун, который влез хуй пойми куда, был накормлен хуями и теперь в попытках сохранить лицо из последних сил пытаешься меня якобы деморализировать своими унылыми вскукареками, но в ответ получает лишь хуй за щеку. Твой ход, чушка.
>>549084>речь на 99% состоит из заученных на двачах диалогах>"осознанно заявляю"Лол. Удачи тебе, хули еще сказать.
>>549087>"осознанно заявляю"Назови хоть одно правило в русском языке, которое не допускало бы такого словосочетания.>речь на 99% состоит из заученных на двачах диалогахТвоя из вконтакта и че? Мой вопрос никаким образом не предопределяет наличие навыков кодинга, его суть - "как сделать 3д платформер с такой-то физикой и че гуглить". Все. У тебя нет ни единого основания делать какие-либо выводы да и мозгов нету, чтобы их грамотно изложить, если бы оно и было.
>>549093Хорошая у тебя позиция, безосновательно нарекаешь дауном, при этом сам делаешь глупые ошибки в понимании смысла и составлении запроса, и пытаешься приплести сюда "аргументированные основания, выводы". Молодец.
>>549098>безосновательно нарекаешь дауномТо есть твои попытки приписать мне действие "отшучиваешься" и "идешь нахуй" раскрывают твой образ, как человека знающего, мудрого? Нет, ты анальный клован, который влез куда не просили.>при этом сам делаешь глупые ошибки в понимании смысла и составлении запросаКакие такие ошибки, довен? У друго анона не возникло проблем с ответом на запрос, а ты подгорел на ровном месте. Пиздуй на процедуры уже да таблетки прими.
>>549024Transform.Find("Root/Ribs/Neck/Head");Но это пиздец. Если у тебя в игре не 50% полуросликов, то используй для высоты константу.>нахуй мне тогда вообще этот LookAtЧтобы быстро получить нужный вектор, очевидно же.>>549049Вопрос настолько пиздецовый, что я не могу на него ответить.
>>549048>Задаешь контроллеру диалогов камеру и на какой объект смотреть.А в Юнити у всех объектов уникальные имена? Даже у дочерних? Или могут существовать два объекта с одинаковым именем?
Сап геймдач. На мобилке есть сцена с примитивными нпс (кричеры) 10-15 штук. Какой тип анимации меньше кушать будет? Костная (Костей примерно три-четыре) или вертексная, морферами?
>>549172Из коробки гпу-акселерация есть только у скиннед мешей. Кости. Есть вертекс морфер с гпу ускорением на форуме юнити.
>>549110> уникальные именаКакие еще имена, ебёнь? Ссылка на GameObject, а лучше (или не лучше, тут я хз) на специально созданный компонент LookCameraTo. И обязательно сцена с примером как эта подсистема должна работать (возвожмно, даже строго без префабов в такой сцене).
>>549112Вместе веселее же. Мимо-анонДавай даже так:- Я открываю редактор и пытаюсь создать диалоговую систему. Через час она пишет ошибку сериализации.Теперь редактор у тебя - что делаешь?
В каких случаях в компоненте Light в пункте mode нужно ставить запекание или реальное время? От чего это зависит? Как мне узнать что лучше поставить?
>>549223Я то думал что если объект двигается перед источником света то значит нужно реалтайм если объект статичен то подойдет запекание а оказывается все наоборот.
Как проще всего сделать координатную сетку в Юнити? Кубиками? Типо 1 кубик - 1 клетка? Или есть способ проще?
>>549275Вообще, в юнити и так есть координаты. Принято так: одна единица равна одному метру. Т.е. куб 1х1х1 это куб метр-на-метр-на-метр, если смещен на 15 по иксу, то он смещен на 15 метров.
>>549280Суть не в этом, суть в том, что мне нужно сделать именно видимую сетку. Которая прямо во время игры будет проявляться.
Слушайте, вот как сохранять обычные значения, координаты и прочее в статичном мире это понятно. А как сохранять рандомно генерирующийся манямир? Обьектов может быть тысячи, не прописывать же каждый ручками?
>>549321Прозрачную текстуру сетки натяни.Хотя еще есть vectrosity, но с линиями из большого числа сигментов она просаживает фпс.
Возможно ли при в 3д игре с видом сверху запилить сорт оф зрение относительно персонажа? Тоесть есть персонаж, на него сверху смотрит камера, по дефолту камера видит все обьекты на сцене, а возможно ли заблокировать те участки, которые невидимы с точки зрения персонажа? Тоесть допустим перед стеной стоит персонаж, а за стеной ничего не видно потому что обзор от персонажа заблокирован? Как это можно реализовать? Пробовать через освещение?
Блядь, не могу отключить ебанный скрипт. Скачал ассет "third person controller", работает, вроде нормально, но мне нужно во время выполнения моего скрипта отключить скрипт "vThirdPersonInput", но хуй там плавал. Это пидорасина просто не находиться. GameObject.Find("V Third Person Input"); возвращает nullКласс vThirdPersonInput просто не видит, соответственно через GetComponent<> тоже не выходит ничего найти. Как, блядь, мне получить доступ к этому сраному скрипту и вырубить его нахуй?
Бесплатный персонаж нигга из ассет стора не отбрасывает тени, в чем может быть проблема? Мой первый опыт собрать что-то не по туториалу
>>549546Ты удивишься, но GameObject.Find ищет геймобджекты, а не компоненты.https://docs.unity3d.com/ScriptReference/Object.FindObjectOfType.htmlИ без пробелов, пробелы добавляются в редакторе просто чтобы читалось лучше.
>>549314Берешь и сохраняешь каждое деревце и домик в скрипте. Как ты по-другому сохранишь координаты N объектов, если не писать каждый из них в файл?
>>549565Все стандартное, сейчас поменял направление камеры и вообще тени пропали в ортографической проекции, в редакторе только нигга не отбрасывает тени.
>>549574Пробовал, не помогает С ортографической проекцией разобрался, камера была далеко, а с ниггой все еще проблема
>>549555>>549583В общем дело было в Unlit шейдере, с ним тень не отбрасывалась, буду переключать на дефолтный. Двачику все равно спасибо.
Кароч, я хочу сделать клетки используя Plane. Нахуячил кучу плоскостей, но, бля, они сливаются все в одну. Как визуально их разбить на клетки? Попробовал какой то ассет Quick Outline, но он хуита полная.
>>549563Блядь, да не видит он класс "vThirdPersonInput". В упор сука не видит. Как добавить его в область видимости моего скрипта? using не помогает.
>>549625Класс с прописной буквы называется? Попробуй в vscode "Third" ввести и посмотреть на автодополнение.
>>549629Я так и делаю, и там отображается только "vThirdPersonCamera", а "vThirdPersonUnput" нихуя. Названия класса, кстати, именно с маленькой буквы.
Есть вот такая текстура. Как её присобачить к материалу? Что бы у объект был цвет материала, а по краям были чёрные линии этой текстуры. Пробую перекинуть текстуры на объект, но исчезает материал объекта. А если снова закинуть материал, то исчезнет текстура. Как сделать так, что бы они одновременно весели на объекте?
Как для UI Button создать свою событие на onClick()? А то он разрешает выбирать только функции, типо OnMouseDown() и прочие события связанные с нажатием мышки.
>>549782Как-то можно, но я особо не вникал.https://unity3d.com/ru/learn/tutorials/topics/interface-essentials/building-custom-inspector
>>549546Блядь, так и не могу отключить этот ебучий скрипт. Как его найти? Почему он не появляется в IDE?
>>549761Глянь чибзика этогоhttps://youtu.be/zc8ac_qUXQYТам ещё есть чутка про уи, объясняет мало, но то что тебе нужно - есть.Через инспектор как-то делает
>>549546Почему вы все такие больные что-то ищете через Find? Вы не смотрели ни одного обучающего видео Unity? Создай ссылку и работай с ней.Если объект спавнится, запоминай ссылку во время создания.Используй пулы объектов.
>>549892Что как? Создал объект. Запомнил его в поле класса.Ты только что пятый класс закончил?У меня дети на скратче лучше программируют.
>>549870Блядь, спасибо, я до этого как то догадался. Только одна проблема, что бы отключить компонент, нужно написать следущею команду:GameObject.Find("vThirdPersonController").GetComponent<vThirdPersonInput>().enable=false;А моя IDE НЕ ВИДИТ класс "vThirdPersonInput", блядь, и поэтому выкидывает исключение.>>549891Ты блядь вообще поехавший, мне не геймобжект нужен, а компонент геймобжекта. И всё проблема в том, что я не могу получить ссылку на этот ебучий компонент.
>>549917Нахуя? Открыть скрипт в IDE я и так могу. Проблема, блядь, в том, что мой другой скрипт не видит этого скрипта, соответственно не может его отключить.
>>549922Пиздец, ты ещё детский сад не закончил?Пройди хотя бы один простенький курс по шарпу, прежде чем раскидываться хуями направо и налево.Ссылку, блядь, он получить не может. А лизать залупу у юнити у тебя отлично получается. Долбоёбина.
>>549922Ты пробовал тег повесить на объект и через равенство или например comparetag привязать объект.Либо делай поэтапно с проверками.Мб он у тебя где-то стопится из-за хуйни.И вопрос, в каком месте/скрипте ты хочешь отключить этот скрипт?
>>549943Всё мимо, анонче. У этого долбоёба левый чарактер контроллерhttp://www.ricardoferro.com/jorgenegreiros/vAPI/API/html/class_invector_1_1v_character_controller_1_1v_third_person_controller.htmlЕстественно, без прописанных неймспейсов не работает и работать не будет. Но раз этот долбоёб настолько токсичный, то нехуй и подсказывать, пусть залупу сосёт.
>>549910Что тебе понятно, долбоеба кусок?Ты спрашиваешь вещи, которые очевидны любому, кто на базовом уровне знает шарп и юнити. Пиздуй обучалки смотри.
Нужна помощь с математикой, читаю кнннигу по матану и все равно не могу решить задачу.Дано: делаю твин-стик шутер с видом сверху, есть контроллер анимации персонажа который принимает относительные координаты h и v для перемещения в пространстве.Сейчас сделано так, что при нажатии кнопки вперед персонаж движется в сторону взгляда.Хочу, чтобы независимо от направления взгляда при нажатии на кнопку вперед персонаж на экране двигался вверх.Точно должно быть элегантное решение, перемножение матриц и вот это все хуе-мое.Куда посмотреть, что почитать?
Как задать локацию объекта на сцене? Пишу название объекта в vs, он его не видит и не знает. Новичок в юнити, перекат из ue4
>>550029В таких случая делают пустой объект который прикрепляют дочерним объектом к персонажу а к пустому объекту прикрепляют саму камеру и тогда поворот взгляда не меняет направление.
>>550046Там хуйня какая-то. Если знаешь как конкретно эту хуйню сделать скажи плиз. Я пытаюсь понять как тут все работает
>>550033Спасибо за подсказку, с InverseTransformDirection получилось то что нужно. (InverseTransformVector тоже работает, разницы не отразил)
>>550102Тут есть один нюанс, как бе. Допустим, я тебе скажу, что Instantiate и AddComponent возвращают ссылки на то, что сделали, ты же все равно не поймешь, о чем речь. И будешь дальше акакать в треде, вместо того, чтобы сделать пару обучающих проектов, разобраться и не доебывать анонов с базовой хуйней.Твои вопросы это что-то уровня "объясните, как писать букву ж".
>>550102Просто для тех, кто посмотрел первый урок это выглядит примерно как:- Парни, как мне добраться до библиотеки?- Прямо и направо- НО КАААААКК?- В смысле как? Вон туда иди 100 м, повернёшь направо и ещё 50 иди.- НО КААААААК?- Ходят ногами, блядь, дебил необучаемый- НО КААААКК?НАхуй я тебе это объясняю вообще. Иди уроки смотри.
Кароч, проблема была в том, что я неправильное имя указывал в using, так что теперь я смог найти и отключить этот злосчастный скрипт. Алсо, половина постов написано не мной, а каким то троллем.
>>550148Ну, ничего другого от типичного двачеребенка мы и не ждали. Располагайся под шконкой, нарекаю тебя именем Акакий.
>>550324Хуй знает, жалко крайтеков. Мало того, что на грани банкротства, так ещё с кидалами связались. Надеюсь просто в порыве хайпануть, а не реально сотрудничать.
Как мне сделать два спрайта, использующих одно изображение, но показывающие разные его части? Увишки менять или что? А если анимировать эти спрайты захочу? Я примерно представляю, как оно должно работать, но хочу мудрые советы услышать.
Почему в юнити почти каждая функция отдельный класс? В чем смысл? Отдельный класс для ходьбы... Чё за бред. И почему скрипты нужно прикреплять к объектам, а не объекты вставлять внутрь скриптов?Как тогда осуществлять процедурную генерацию, выбор чараткер меша в зависимости от условий, рандомные выборы мешей. Как собирать объекты в готовые составные части чтобы юзать и в других уровнях. Чё за бред
>>550463>Как тогда осуществлять процедурную генерациюМного ли ты видел игр на unyti с нормальной процедурной генерацией? То-то и оно.
>>550489распидор, твой хуец сосет только твоя рука, судя по твоему круглосуточному дежурству в /gd/а теперь гавкни еще )
Сука, ебанный Юнити кириллицу в рот ебал.Почему когда я использую кириллицу, то она блять сама по себе отображается, а числа, переводимые в string - нет? Без кириллицы все в порядке.
И все таки, как запилить сохранение рандомно создаваемого мира? В каждый обьект сувать скрипт который при своем рождении или перемещении будет отсылать данные о себе в скрипт который отвечает за сохранение? Не слишком ли много информации нужно будет создавать? Ведь обьектов на сцене может быть очень много.
>>550537Отдели геймобджекты от их содержания. Сериализуй дату в JSON, либо списком, либо деревом, либо сложным объектом. Тут как тебе удобнее будет.Информации не слишком много. Гораздо больше надо заботиться о том, что происходит на сцене, а не о сохранении данных.Один раз создал, сохраняешь. Этот >>550541 правильно сказал, что можно сохранить seed для рандома, если у тебя мир генерится динамически.
>>550541Сид предположим я сохранил. А как быть дальше, допустим из определенного ящика в процессе игры вытащили предмет, как сохранить это изменение? Ведь при загрузке будет использоваться стартовый сид.>>550545> Гораздо больше надо заботиться о том, что происходит на сцене, а не о сохранении данных.Проблема у меня только с тем что задачи на сцене для меня более понятны в решении чем работа с данными.> Один раз создал, сохраняешь.Предположим что некий сид в спавнит два обьекта. Один обьект я уничтожил в процессе игры. Куда мне сохранить эту информацию? Изменить сид? Или добавить некую службу которая при загрузке стартового сохраненного сида будет изменять сцену исходя из записаной даты в файле?
>>550546>А как быть дальше, допустим из определенного ящика в процессе игры вытащили предмет, как сохранить это изменение?Можно генерировать объекты в сундуке во время открытия, можно сохранять уровень и тип ящика.>>550546>Один обьект я уничтожил в процессе игры.Этот объект у тебя пропадёт из списка сохранённых.Можно оставить список в покое, но указать статус "destroyed".Эти проблемы решаются по мере поступления. Это не должно быть так сложно.Имей в виду, что последовательность создания объектов надо сохранять, конечно же. Тогда генерация не пострадает.
>>550546Можно сохранять в таком виде:{"locations": [ {"items": [{"Name": "sword", "state": "broken", "location": [1.02, 7.35]}, {"Name": "mamka_opa", "state": "fucked", "location": [2.2, 8.8]} ]}]}Т.е. в сейве у тебя есть список локаций с параметрами, внутри списка локаций есть список итемов, их состояние и где они лежат. При загрузке локации ты это дело парсишь и расставляешь ассеты там где надо. И править удобно.https://ru.wikipedia.org/wiki/JSON
>>550634Вот тебе и ответ, такое количество объектов чрезмерно. Вообще хватит плодить майнкампфы, заебали.
>>550635Это не майнкампф, это мое видение 3д кококлизма DDA. Пока что просто разбираюсь с параметрами генерации.
>>550638Если вкратце, тебе нельзя генерировать столько кубов. Генерируй только видимые поверхности. Ну и не используй деревья, если планируешь пересчитывать рантайм, лол, я на этом погорел.
Мне в скрипте, в одной из функций, нужно дожидаться того, что пользователь нажмёт на элемент интерфейса. Как это лучше всего проверять? Пока есть такая идея: повесить на каждый элемент интерфейса скрипт, в котором есть функция onClick(), при срабатывание которой этот скрипт записывает значение в public переменную исходного скрипта, который ожидает, что элемент интерфейса будет нажат, и который будет в бесконечном цикле проверять эту переменную.Чувствую, что это способ очень корявый, как можно это сделать лучше? И вдогонку ещё один вопрос. В рпг и не только есть диалоговые кольца или просто ряд реплик, которые можно выбрать. Так вот, эта реплики, которые выбирает игрок, лучше делать как Button или же просто как Text?
>>550612>ЗаброшенДа если даже заброшут, маняюнити даст посасать многим движкам за счёт своего удобства в 3д (в 2д чёт хуево, ето да)
>>550721Блядь, щас бы для проверки нажатия кнопки отдельный паттерн пилить. Разве это задача в юнити уже не решена?Вот в GUI есть метод, который создаёт кнопка и ожидает, когда она будет нажата. в UI есть что то похожее?
>>550638>cataclysm dda>на unytiЛучше сразу забудь, в лучшем случае получится тормозной огрызок, в котором нет и половины фич оригинала.
>>550961М-А-Р-К-Е-Т-И-Н-ГС настоящим data-driven ecs, который любят за производительность, не имеет ничего общего.
>>55100450к кубов шевелились в 60 фпс на моей древней пеке. Лично я перекачусь ближе к релизу, когда физон добавят.
Скачал стандартные ассеты. Я хочу использовать только ассет first person controller (добавляет ходячую капсулу с управлением клава+мышь). Если при импорте поставить чекбокс только на нем, то сначала выдает ошибку, что не может найти CrossPlatform. Если все же импортировать и этот CrossPlatform, то ему опять не находит какие то библиотеки.Я пробовал и так, и эдак, но проблемы нет только когда импортирую ВСЕ из стандартных ассетов.Что я делаю не так?Мне просто нужна ходячая капсула от первого лица, почему я должен качать все остальное
Можно ли как то скрыть интерфейс, кроме как с помощью SetActive()? Т.е. просто скрыть его, а не выключать объект.
Почему в Unity никак нельзя вывести в инспектор настройки параметров скрипта с типами как "int?", "float?" и т.д.?Сделал всё как документации - создал отдельный серелизуемый класс, занёс в него все нужные параметры, но в инспекторе отображаются все параметры, кроме "int?", "float?".
>>550945Большая часть фич не связана с тайлсетовой механикой так то.>>550668Сейчас попробуем создать большой мирок, надеюсь LOD поможет.LOD конечно помогает, поле из 500х500 кубов создалось нормально, 708х708 уже начал гадить ошибками что превышен лимит включеных коллайдеров на сцене. Собственно идея по оптимизации появилась, а что если еще и выключать все коллайдеры которые не в определенном радиусе, некоем бабле так сказать.>>550668Чому нет?
>>551089Да кароч, я уже нагуглил, что юнити Nulleble типы вообще не поддерживает. Но появилась другая проблема. Мой Property Drawers почему то возвращает пустой объект. Т.е. там у всех параметров стоят либо 0, либо null. И в инспекторе все параметры расставил. Вот класс, который я использую для Property Drawers:[System.Serializable] public class Dialogue_options{ public GameObject Collector; public float Time; public int Point; public float Distance;}Вот так он объявляется в скрипте:public class MyScript : MonoBehaviour{ public Dialogue_options options;}Во время выполнения скрипта объект options создаётся, но все параметры объекта, как я уже сказал, выше имеет значение либо 0, либо null, а не то, что я вставил в инспекторе. Что я делаю не так?
Забыл для партиклов прописать, что бы у них при колизии обнулялась скорость. прикольные рикошеты получились.
https://forum.unity.com/threads/unity-freeze-when-connecting-vs-debugger.529863/Сталкивался кто? Пиздец не могу уже, через пару запусков с помощью дебугера юнити вешается намертво.
>>551091>Чому нет?Я тот самый довен, который пилил майнкампфоподобную хуйню. Слился, кстати, на непонимании, как оптимизировать пересчёт мешей. Теперь-то я знаю, но пилить кубы влом. Потом я генерировал ещё меши и деревья оказались просто пиздецки медленными, в десятки раз хуже массивов.
>>551147Не знаю, я пока не могу осилить нормально управляемую генерацию манямирка с кубическим полом посему скорее всего буду пробовать рандомные префабы чанков с лесом, городом и прочим.
>>551152>рандомные префабы чанков с лесомБля, я ему про алгоритмы, а он мне про ландшафт. Честно говоря, похоже, что тебе нужно дохуя учиться и рогалик ты выпечь не сможешь. Вообще нахуя тебе кубы? Кококлизм твой построен на копании? Нет? Генерируй любую плоскость - n*4 вершин, потом элементарный трис фан и готово.
>>551154> Честно говоря, похоже, что тебе нужно дохуя учиться и рогалик ты выпечь не сможешь.Все так.Кубы это первая тулза для генерации рандомного мирка которая пришла в голову. Хотя можно и просто плоский мирок для начала оформить.
>>551162В инспекторе чего ты расставил параметры? Разве там можно ставить скриптам дефолтные значения?
Можно как то на время запретить ввод с клавиатуры? Что бы нажатия клавиш не считывалось вообще и Input возвращал со всех клавиш 0
>>551158Так, может, тебе вообще процедурный террейн не нужен? Если нет планов его активно крушить, то лучше использовать дефолтный юнити террейн. Гуглишь алгоритмы по типу шумов перлина, диаграмм вороного, генерируешь карту высот и в путь. Хотя по той же карте высот я вот кубы генерировал.>>551175Я так понял он пытается создать скриптейбл объект, но вместо этого просто втиснул тег сериализации. Очередной неосилятор справки.
>>551175>>551179Да нет, проблема была в том, что у меня был другой объект, на котором весил такой же скрипт, но я ему забыл выставить параметры.
Как импортировать json файл в юнити как TextAsset? А то юнити не воспринимает мой файл как TextAsset.
>>551198И так было json. И на txt пробовал менять. Всё равно нихуя, не распознаёт файл как текстовый. Что за хуйня? Я без этого текст не работает в билде.
Я слышал, что у вас в треде многие скучают и ждут крутых идей. Почему вы до сих пор не сделали клон dota autochess? Это же эталонная и протестированная механика для онлайн мобилки сессионной, ещё и монетезировать легко.
>>551276Не кощунствуй, тут весь раздел крутится вокруг "сделать клон %игранейм%, только хуево и про мемы".
Скачал Skybox/Cubemap extended, можно ли добавить солнечный диск?Или его нужно непросредственно на текстуре рисовать?
Назвал пару объектов в сцене русскими буквами. Очень понравилось. Это нормально вообще? Вродеб всё работает, но как-то это не точно. Есть внятные гарантии/документация на этот счет. Юнити мне гарантирует что оно будет работать на всех главных платформах. Ну или хоть на винде крашиться от кирилицы не будет?
>>551617Некоторые программы нормально не работают если учетка содержит что-то кроме латиницы, а ты про игровой движок спрашиваешь.
>>551712Название геймообдекта это просто строка, которую показвают пользователю. Сам движок оперирует айдишниками.
>>551789Сейчас бы в 2к19 не отличать скриптовое API от исходников движка.Хотя, чего ожидать от unyti-животных, они и c# от unyti не отличают, думают что это одно и то же.
>>551617Ты совсем еблан штоле? Начнём с того, что твоя поделка будет крашится вообще на всём, где не будет установлено русского языка. Закончим ещё больше кучей проблем типа локали и карренси которое к тебе подрадётся сзади.
>>551745>Сам движок оперирует айдишниками.Да хоть чем он у тебя оперирует. Факт в том, что работать это будет только там где есть русский язык.
>>551826>>551827Хуйню несете, вот я скачал какую то японскую игру, у меня нет никаких японских языков и локалей в системе, распаковалось всё с хуевыми именами файлов из тире и точек. Ничего, игра запустилась и прекрасно работала, только конечно на японском языке. Так что поебать как у него названы объекты в редакторе.
>>551833Японские игры вообще через раз запускаются. Как раз твой пример показывает что разраб был грамотным и именовал внутренние обьекты на английском. А я только вчера ебался 4 часа пытаясь запустить очередного японца. Но вообще можно поступить проще, я скомпилил игру с одним русским наименованием менюшки которые всплывают сразу при запуске игры. И запустил на соседнем ноуте где нет русского. Игра наебнулась. Та-же игра, но с версией английского наименования - работает. Правда вместо русских букв в меню - каша. Но работает же. Другими словами ты просто делаешь много потенциальной ебли из-за какого-то совсем пустяшного профита.
>>551833Так тебе и говорят, что если объекты именованы на английском, у тебя любая игра откроется, а если на русском, японском - нет.
>>551617> Назвал пару объектов в сцене русскими буквами. Очень понравилось. Это нормально вообще? Вродеб всё работает, но как-то это не точно. Есть внятные гарантии/документация на этот счет. Юнити мне гарантирует что оно будет работать на всех главных платформах. Ну или хоть на винде крашиться от кирилицы не будет?Все должно нормально работать. Еще можешь и в скриптах на шарпе использовать русские имена и названия.>>551827> >Сам движок оперирует айдишниками.> Да хоть чем он у тебя оперирует. Факт в том, что работать это будет только там где есть русский язык.Везде будет работать. Лол, с чего она работать то не будет?>>551845>Игра наебнулась. Та-же игра, но с версией английского наименования - работает. Правда вместо русских букв в меню - каша. Но работает же.Она не на юнити была сделана. В юнити вся эта хуета в билд идет - и вообще насрать, что там есть на компьютере, а чего нет.
>>551851>Я написал игру на юнити, скомпилил её в 2 вариантах, с русскими наименованиями и без, тот что с русским вылетает при запуске на винде без русского.>НЕТ ПИДАРАС ОНА НЕ НА ЮНИТИ, Я ТЕБЕ РАССКАЖУ СЕЙЧАС НА ЧЁМ ТЫ ИГРЫ ПИШЕШЬ СЛУШАЙ СЮДА...Поехавший чтоле?
А можно ли сделать так чтоб часть код прилетал из вне, например с сервера, а через рефлексию его добавлять? Не обязательно то что класс наследуется от моноибхавор, смысл затеи таков чтоб приложение работало только онайлн, ну точнее еесли что пидорах можно было бы дропнуть без права пользования.
>>551902Что блядь шейдером? Тот кун хотя-бы подробности расписал. Нахуй ты советы даёшь если элементарно не можешь обьяснить подробности человеку?
ебать ты долбоёб братишка, земля те пухом. тебе аноны скрины показывают где чо тыкнуть, нет не хочу смотреть скрины, и погуглить тоже не хочу. причем сам твой скрин из тутториала где всё это дерьмо есть. размытости если хочешь то это тебе постэффекты качать надо, но учти, это сделает тебя пидарасом с постэффектами
>>551905Лан, я тоже буду отвечать на любой вопрос ШЭЙДЕРЫ, не особо вникая в подробности. Сойду за умного.
Пацаны, сильно зашкварно пользоваться визуальными скриптинг солюшенами? Типа playmaker или bolt. Думаю туда вкатиться, как оказалось я слишком дебс в программировании, может так что-нибудь высру.
>>551904Какие подробности? Ты заебёшься потом эту плашку двигать вслед за камерой. А теперь вопрос, если ты можешь натянуть на плейн блюр, почему ты не можешь сразу натянуть блюр на шар?>>551908Нет, на дефолтном процедурном небе блюма нет, это скорее оутлайн с размытием. Делается через шейдер, работает без постэффектов. Да и постэффекты тоже шейдер.
>>551930>ты не можешь сразу натянуть блюр на шар?Потому-что блюр на шаре будет выглядеть как говно, не?
>>551930> если ты можешь натянуть на плейн блюр, почему ты не можешь сразу натянуть блюр на шар?> натянуть блюр на шарчуваки, простите, а куда я попал? это точно гейдев конфа профессианалов гей дева??> на дефолтном процедурном небе блюма нетблюм есть повсюду и нигде. по сути дела, блум это дополнительный проход рендеринга, это кадр из игры, в котором отрисовываются только те пиксели, чьё освещение + яркость текстуры выше определенного предела, затем это всё размывается и накладывается на оригинальную картинку. если есть HDR, то эффект будет заметнее на контрастных кадрах, если нет то просто светлые пиксели будут иметь небольшой ореол.блюр же тут вообще ни при чем, блюр дает просто размытость. вот эти ахуительные затеи потипу ебануть плейн с блюром на место солнца и жить с этим дадут вам пикрел >>551936ДА А ХУЛЕ МЕЛОЧИТЬСЯ МОЖНО СФЕРУ СРАЗУ ЕБАНУТЬ. чтобы в удалённом ландшафте еще застревала
>>552028>ДА А ХУЛЕ МЕЛОЧИТЬСЯ МОЖНО СФЕРУ СРАЗУ ЕБАНУТЬ. чтобы в удалённом ландшафте еще застревалаДа можно сразу разместить сферу радиусом 6,9551*108 и разместить её на расстоянии 150млн км. Хули нет то.
>>552028>в удалённом ландшафте еще застревалаШейдором решается, просто добавляешь запись в з-буфер и вуаля, сфера рисуется всегда поверх всего.
https://blogs.unity3d.com/2019/01/31/unity-2019-1-beta-is-now-available/>Incremental Garbage Collection (Experimental)Теперь на юнити можно даже почти делать игры.
>>552133>Теперь на юнити можно даже почти делать игры.Год работы, а там хуйня какая-то, несколько мелких улучшений, галочки туда сюда поперемещали.
Как архитектура у ситискайлайн устроена? Боюсь, что если в лоб такое на отдельных геймобжектах в апдейтах делать - оно и при в десятеро меньших масштабах будет лагать. И еще, раньше находил блог разработчика академиа: скул симулятор, где он публиковал всякие статью по юнити и алгоритмам, но потом потерял. Может, кто подскажет?
>>552155Все просто - он сделан на ue4, а юнитеки им просто проплатили, чтобы они всем пиздели, что сделали на юнити.
>>552155Раз ты понимаешь, что херова гора объектов со скриптами не прокатит, то догадываешься, что нужны менеджеры, которые буду рулить херовой горой объектов.
>>546997 (OP)Какие преимущества у юнити перед анриалом? Или анриал полностью превосходит юнити по всем статьям?
Сап, двощВопрос: какие преимущества у scriptable object по сравнению с со своим кастомным классом, содержащим данные? В чём удобство то?
>>552257Судя по https://unity3d.com/ru/how-to/architect-with-scriptable-objects я так понимаю, что скриптейбл обжекст это просто способ обходится без синглтонов? Да, god-object это антипаттерн, но разве можно обойтись без него при реализации игры, которая использует процедурную генерацию? Это ведь приведёт к какому то пиздецу на уровне сериализации\десериализации сохранений. Например следуя даже совету >Создавайте сцены с чистого листа: избегайте существования транзитных данных между сценами. Всякий раз, когда вы вызываете сцену, должен происходить полный разрыв с предыдущей сценой и загрузка с нуля. Это позволяет вам иметь сцены с уникальным поведением, отсутствовавшим в других сценах, и без всяких заморочек.Если есть сцена Game, которая генерирует уровень процедурно, есть Menu, которая содержит главное меню. Как без транзитных данных разработчик должен сказать сцене Game и скрипту, который генерирует процедурно уровень, что нужно использовать именно определённый seed чтобы воссоздать уровень из сейв файла? Получается, что скрипт генерации уровня должен каким то образом узнать, что игрок пытается либо запустить новую игру (и использовать рандомный seed в ГПСЧ), либо загрузить сейв (и использовать сид, который был использован