>>591943 Кто ищет, тот найден. Не будем опускаться до уровня безголовых годотеров. Этот тред по сути бложек чтобы уютно обсудить новости мира юнити, пожаловаться на очередную проблему или показать прогресс.
>>591947 лол могу показать категоризацию и группировку агентов по целевому вектору движения. я вот полез в очень интересную тему.
>>588462 >Как же будет похуй, когда уже месяца три, когда она не рендерится вообще в одном из двух скриптовых рендеров? траву то и сам рендерить можешь лол. >Меканим написан с ипользованием SIMD библиотеки и совместим с ецс, Animation C# Jobs выкатили ещё в юнити 2018 не я не про это. одно дело вычисление блендинга анимаций и новой позиции для костей, другое дело что скелетная анимация как правило требует наличие скелета и прочее говно, что не так и просто двигать исключительно на видеокарте. вертексы там дрыгать процедурно типа хвостиков у рыбок легко, а дрыгать гуманойдом уже не так легко. >У меня инстансируется дохуя объектов в рантайме, так что я заменил пару строк кода на код инстансирования из гитхабовского демо. Юнити это переварить не сумела, а GC вообще обезумел. Но кубы спавнятся исправно, работают быстро. Нахуй кубы. в душе не ибу что и как ты там делал, хули. >И что? Это говно говна по сравнению с юнитековским ецс. Всю магию без переписывания крестового ядра реализовать было невозможно. Да они, блядь, свой компонент на трансформы вешают, а ты мне говоришь, что это то же самое. под капот загляни. сделать карту говна и совать все в биты чтобы удобно было таскать туда-сюда не так и много мозгов надо, а хранится будет все точно так-же в нескольких массивах и структах.
>>588638 делегаты на кнопках тоже ецс да? а тексты как у UI элементах то хранить?
>>591981 да ладно помню в позапрошлом треде был занятный человек который делал ИК у рагдоллов. интересно достиг ли он успеха. могу вот ещё показать клевое решение проблемы встречи на углах через приоритизацию агентов, вроде не показывал. очень вот не очевидная проблема.
Анон, дай совет нюфагу. Хочу вкатить я в юнити, в частности в изометрию. Посоветуй годный тутор, чтобы там мир нарисовать квадратиками, двигать-шатать всего
Просто жалуюсь, игнорируйте меня. Захотелось сделать один 3д-проект, но анрыл вконец заебал насаждением блюпринтов, так что снёс его к хуям и поставил таки юнити. Всё оказалось не так страшно, как я ожидал, но вот только... Блджад, почему тут всё так бедно? Вообще нихуя нет, никаких фич и удобств в редакторе, которые, казалось бы, должны быть стандартом де-факто давно. Тайлмапы делать - боль, анимировать - боль, всё через боль или хардкодить. И это самый популярный движок? Как так вообще?
>>592002 >Вообще нихуя нет, никаких фич и удобств в редакторе, которые, казалось бы, должны быть стандартом де-факто давно Странно это слышать от уечебляди на реабилитации. Что ты имеешь ввиду под отсутствующими фичами? В уече так-то вообще тайлмапов нет.
>>592002 плюс юнити в том что его функционал можно быстренько допилить где надо. сделать быстренько собственное окошко для редактирования собственных данных, перехуячить инспектор чтобы вместо говна и палок все сверкало и пердело, чтобы гизмосами всю сцену засрало. и это, кстати, в юнити просто заебись сделали. это как раз то чему надо учится после самых базовых вещей: сериализация в юнити, скриптабл обжекты, окошки, IMGUI. например хопа понадобилось указать маршрут патруля. и хули, патруль чтоли вручную там массив точек редактировать? разумеется нахуй такое, быстренько набросал редактор, чтобы кнопку нажал все случилось, другое случилось, чтобы в сцене патруль рисовался и его дрыгать можно было. удобно же.
ну а фича с анимациями она как бы есть. анимировать открывание двери, нажатие кнопки и тому подобное то с избытком хватит. для персонажей то его никто в своем уме не будет использовать.
>>592009 Да я уже понял, что это конструктор "Сделай сам". С одной стороны это хорошо, но с другой стороны - жадные евреи блджад, даже базовые вещи не включают. Не, я понимаю, что 99% дохода у них идёт с ассетстора, но блджад.
>>592000 Ох, есть что-нибудь попроще для начала? Я практически 0 во всем этом, могу в графику, да слегка в программинг. Хочу пока просто экспериментировать, что-то типа песочницы-аркады, нов изометрии, т.к. не видел такого исполнения ещё. Понял что нужны ассеты, скачал несколько плиточек для основы, потом сам уж нарисую свои, пока просто бы понять куда тыкаться.
>>592010 да ладно некоторые важные вещи теперь в пакаж менеджер суют. понадобилась хуйня для прототипирования уровней - ткнул "хочу пробилдер", понадобилось говно для камеры - ткнул "хочу синемашину", захотел графона - ткнул "хочу пост процессинг" и сразу всё как надо. и в ассет сторе куча бесплатных и платных инструментов на любой вкус. и самое то главное что новый функционал прикручивается легко и обычно не ломается с обновлением версии.
>>592012 если ты учишься, а не игры делаешь то ассеты тебе нахуй не нужны. в пэйнте хуй нарисуй и сойдет. если совсем ноль то хули, ты сам знаешь как тебе лучше учится. ролики там на ютубе посмотри, дохуилион всяких видосов "а сегодня мы двигаем куб", книжку прочитай. документацию почитай. официальный канал ютуба юнити наконец открой https://www.youtube.com/watch?v=Z0Z7xc18CcA&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B туда регулярно суют что-то.
>>592013 >и самое то главное что новый функционал прикручивается легко и обычно не ломается с обновлением версии. Есть какие-нибудь приличные уроки на эту тему? Только не видео!
А вообще сейчас юнити востребован? Есть возможность на его знаниях копеечку лишнюю заработать, или его удел реализация собственных влажных идей + пара недо инди студий со школьниками?
>>592030 Хули ты так порвался? Болит может что? >>592031 Ок, уточняю. Насколько большой спрос юнити? Каков +- процент нарваться на стартаперов, которые не нифига не выплатят ничего.
>>592077 У меня есть идея создания игры, смести RTS и TD, но я понимаю, что мне не помешал бы еще один программист. У меня уже есть два человека, я думаю через месяц завершить стадию прототипирования. Если всё будет хорошо, может быть хочешь присоединиться к нам потом? Зарплата тоже будет Если что, не прошу ответа сейчас, я как закончу с прототипом напишу еще здесь.
>>592026 О, у них есть нормальный текстовый мануал, оказывается. А то я сунулся было в оффдокументацию на сайте, а там каждая ссылка ведёт на видео для даунов, я и забил. Сам почти всё нашёл уже хотя, но всё равно спасибо.
Посоны, вопрос по книге UNity in Action: В конце 6 главы там есть "УПРАЖНЕНИЕ: ИЗМЕНЕНИЕ СКОРОСТИ ГЕНЕРИРУЕМЫХ ВРАГОВ"
Как вы его решили?
Я сделал публичным OnSpeedChanged() у WanderingAI, а в SceneController для enemyPrefab и _ebemy поставил тип WanderingAI, чтобы после _enemy = Instantiate<WanderingAI>(enemyPrefab); добавить Messenger<float>.AddListener(GameEvent.SPEED_CHANGED, _enemy.OnSpeedChanged);
Можно как-то по-другому сделать с большей инкапсуляцией? Я не очень понимаю, как конструкторы работают с Instantiate? Их вообще используют?
>>592156 Спасибо, но там проблема в другом немного, если я верно понял твою мысль: Есть класс WanderingAi. У него есть поле speed. В update он двигаетсч на значение speed. При Awake() этот клас подписывается на эвент, связанный с изменением скорости.(есть приватный метод changespeed, который меняет скорость)
Есть класс настроек, где можно задавать скорость игры и, если это происходит, дёргается мессенджер и всем подписавшимся классам передается новое значение скорости. Есть класс SceneController, он при каком-то условии создаёт новые wanderingai(там он представлен с типом gameobject). Но они не являются лисинерами мессенджер и изменение скорости на них не влияет. Вопрос, как это поправить, чтобы это было максимально красиво? Почему awake не используется после Instantiate? Сори за опечатки, пишу с телефона.
>>592169 Пусть Йоахим на этом сам попробует игру сделать. Типичный кукаретик не сделавший ни одной игры и не понимающий каким должно быть API движка. Зато в синтетических тестах быстро, ага.
Забавно, что когда в юнити делают свои мелкие демки вылезает куча неудобств и багов, из-за которых они перелопачивают движок. Юнити не приспособлен даже для таких мелких демок.
>>592172 Сделай скрин задания. Я приьлищительнт понял о чем ты, но там могут быть неточности.
Предварительно, я бы сделал так: в классе, содержащем метод changespeed создал публичный лист, куда бы помещал ссылки на вновь создаваемые wonderingai, а в самом методе пробегался по этому листу и менял значения в каждом wonderingai.
В классе wonderindai в функции Start пишешь типа:
Start(){ waiList.Add(this); } ... Awake вызывается единожды призапуске программы до загрузки сцены, причем независимо где в коде ты пропишешь вызов этой функции. Instantiate же можно вызвать только в загруженной сцене.
Нужна ваша помощь. Есть вот схематично изображенная схема UI. Кнопки с 1, 2, 3, 4 статичны и всегда присутствуют на экране. Собствено при нажатии предположим на 3 будут отображены кнопки 3.1 и 3.2 Мы допустим выбрали 3.1 и затем 3.12. Такая древовидная схема может образовываться довольно глубоко. Вопрос как правильнее будет переход по всем этим вкладкам? Типа находимся мы вот в 3.12, а я нажал 1. В каждую кнопку нужно добавлять кнопки которые должны быть скрыты? Это как мне кажется тупо, вкладок может быть большое количество. Учитывать текущую открытую вкладку и от этого идти?
>>592192 Я понял идею, спасибо, вечером попробую. (Тогда же смогу скрин кинуть) В книге была подсказка, что нужно лисинер в scenecontroller запихнуть, но, мне кажется, однохуйственно, если все упирается в необходимость добавить публичные поля для wanderingai
Онончики, подскажите, что использоваться связывания приложения на wpf и юнити-приложения? Чтобы в любой момент мы с могли послать сообщение из юнити в wpf и, так же в любой момент, из wpf в юнити. Пробовал pipes - почти то, что нужно, что поток виснет, когда пытаешься и туда и сюда рыгнуть сообщениями. Socket\Tcp - имеют риск просто отвалиться ни с того, ни с сего. Нужна надёжная связь. Подскажите какие штуки ещё подходят для этого и куда гуглить дальше. Спасибо большое
>>592196 >Типа находимся мы вот в 3.12, а я нажал 1 При смене вкладки закрываются предыдущие начиная от корня К примеру при открытии 3.1, он сначала закрывает 3,2 и 3,3 и только потом открывает 3,1 При переходе в вкладку 1, он закрывает 2,3, 4, причем при закрытии 1, должно автоматически закрываться 1,1 и 1,1,1 Делается просто, процедура заппускается при открытии вкладки каждый раз, памяти жрет минимум
Почему официальные туториалы такое говно Особенно тот где карты случайно генерируется в зомби дрпг, пиздец он там говно людям заливает, как такое пропустили Лучше совсем никаких как в годоте, чем такие
>>592228 >>592219 Да, так примерно и сделал. У меня вот есть инвентарь. Но ему нужен включенный геймобжект который при включении генерирует слоты инвентаря. Сейчас у меня этот обьект включается на старте и выключается функцией под инвоком спустя 0.1f, но на экране все равно это видно. Вопрос как эту инициализацию красивее запилить? Скрыть это экраном загрузки?
>>592295 да вообще так то много вариантов. но вообще если у тебя говно А зависит от говна Б, то просто инициализируй говно Б в момент когда А становится доступно. появился инвентарь, ты сразу вызываешь генерацию интерфейса для него и не ждешь как дурак 0,1 секунду.
>>592351 если для UI то там вроде был компонент который обрезает все по маске. но не помню может ли он это. если для всего остального то наверно ебош уже шейдор и в нем совмещай одно с другим.
Котаны, нужно сделать сервер для игры, обязательно авторитарный. Вот думаю, что выбрать, чтоб было просто потом на Юнити с ним работать. Photon Server норм вариант? Запускать инстансы юнити на сервере не нужно будет, физика не нужна. https://www.photonengine.com/en-US/Server
Есть значится встроенная система террейна, где можно красить террейн текстурой с помощью кисти. Можно комбинировать разные текстуры, их прозрачность и т.п., создавая натурально выглядящие ландшафты. А есть ли подобная тулза для обычных мешей? Может среди платных ассетов встречается? Inb4 сабстенс пейнтер, но хотелось бы прямо в движке (для террейна же сделали, думаю можно и для любых мешей в принципе).
>>592742 Вроде бы нет никаких. Лично я через враппер сохраняю в файлы если на ПК и в префы если другая платформа. Комплексные структуры типа настроек или сейвов лучше сериализовать (в json например) перед там как закинуть в префы. Так и быстрее и удобнее.
Сап, анон. Собираюсь делать игру для мобил на юнити. Подразумевается возможность игры через интернет с другими людьми (типа кооператива). Я так понимаю для этого нужен обязательно сервер? Помимо поиска партнёра для игры планируется статистика, внутриигровые валюта и прочее. Google play предоставляет серверы? Или только самому заморачиваться?
>>592873 анон что выше прав, но для > Помимо поиска партнёра для игры планируется статистика, внутриигровые валюта и прочее. тебе ещё понадобится playfab.
>>592876 >>592877 >>592882 А Гугл плей сервисы для этого всего не подойдут? Написано, что статистику они могут собирать, на счёт внутриигровой валюты не уверен.
>>592885 ненене, гугл сервисы не дадут тебе свою полностью изменяемую базу данных. вообще, они не для этого сделаны, и, хотя ты можешь ОЧЕНЬ калечно их использовать в таких целях, возникнет целая гора проблем, которые тебя добесят нахуй.
Анонче, извините за дико тупой вопрос, но подвержен ли луч с метода Physics.RaycastAll физике (как с ригидбоди)?
Мой луч, который я отправляю от координаты (x, y, z) до (x, y - 6, z), ловит коллайдеры, которые находятся вообще в другом месте (например, в (x, y, z + 20) координате), и их коллайдеры в теории никаким боком не могут быть пойманы рейкастом. В чём может быть дело?
>>593285 Не понятно почему, но использование объекта Ray с направлением (0, -1, 0) заместо указывания конечной координаты исправило проблему. Скорее всего, Юнити тупит в ситуациях, подобной моей, но уже похуй.
Аноны, как сменил систему сборки на Gradle, на android перестал рендериться двумерных геометрический шейдер воды, в редакторе всё норммально. Как фиксить?
При обновлении юнити прозрачный шейдер стал рендериться полностью черным на андроиде. Как фиксить? Есть другая игра с таким же шейдером, в ней все нормально работает
>>593515 >>593532 У меня текстуры в материалах тайлятся. Я могу порезать большие полигоны и подогнать uv чтобы использовать атлас. Что будет быстрее, много материалов или много полигонов?
Всем привет. Я новичок в Юнити , и у меня возникла проблема. Дело в том, что я привык, что начало системы координат начиналось слева вверху экрана (т.е. там должна находиться точка (0;0) ), но в юнити эта точка находится посередине. А также там значения измеряются в своих "юнитах", т.е. 1 юнит = 100 пикселей, можно ли как-нибудь эти значения поменять,чтобы можно было измерять в пикселях, а не юнитах, и можно ли поменять расположения центра системы координат? Если можно, то возникнут ли в связи с этим какие-либо трудности с масштабированием и расположением на разных разрешениях экранов?
>>593608 > Дело в том, что я привык, что начало системы координат начиналось слева вверху экрана (т.е. там должна находиться точка (0;0) ), но в юнити эта точка находится посередине отвыкай, это говно из древних времён. > А также там значения измеряются в своих "юнитах", т.е. 1 юнит = 100 пикселей, можно ли как-нибудь эти значения поменять,чтобы можно было измерять в пикселях, а не юнитах, и можно ли поменять расположения центра системы координат? в настройках текстуры ставишь вместо 100 там пусть 32, если у тебя 32х32 основная сетка. потом крч у камеры масштаб задаешь в соответствии с высотой экрана и будет у тебя пихель перфект. > можно ли поменять расположения центра системы координат? нет. понятия "ЕКРАН" в юнети нету. там есть камеры и бесконечная плоскость. из гамака вылез шоле
Анон, хочу музыку играть в игре, да не просто музыку а несколько файлов музыкальных по очереди посему вопрос: как правильно загружать файлы mp3 из ассетов чтоб они не хавали оперативу моментально все сразу. и вот используя System.IO это можно решить, но меня терзают сомнения, что на дроиде файловая иерархия пойдёт по пизде. Что делать? Какой из способов найменее херовый: 1) тупо хреначить драг-дропом аудиоклипы в паблик массив аудиоклипов скрипта и грузить оттуда 2) запихнкть в ресурсы и юзать LoadAll 3) писать через system.io с чёткой пропиской всех путей
Кто-нибудь знает, у SendMessage может произойти задержка перед вызовом метода? То есть ты вызываешь SendMessage, а таргетный метод будет вызван только спустя несколько кадров? Сейчас в тестовом проекте метод вызывается моментально... Проверял на планшете.
>>593706 Если тебе надо мгновенной реакции, то объявляй классы игровых объектов в скрипте уровня как минимум (или в синглтоне открытого мира, который тебе динамически локации подгружает). Далее логика такова: Если (кабанчик != нулль) { ПустьКабанчикПорешаетВопросик( кабанчик, телДляСозвона ); }
>>593757 С сендмесседжами ссаными же логика такова, ты посылаешь сообщение "Порешайте мой вопросик, ну кто-нибудь?" А уже внутри синглтона обработчика сообщений может найтись подписанный на это сообщение кабанчик, а может не найтись.
>>593759 Да сам я не использую сендмессадж. Его использует фреймворк с которым я работаю. У меня игроки иногда проваливаются сквозь объекты после спавна. Игрок спавнится на полу, у него Y = 0 и тут хуякс он летит вниз за пределы карты, игнорируя коллайдер пола. Такое в целом возможно, но только если сендмесседж будет получен с задержкой в несколько кадров, например.
>>593697 Анон, что есть "красиво" и с ссылками на ресурсы? Я пробовал сделать через корутины в связке с WWW подгрузкой из StreamingFolder - оно работает, память не жрёт, но любая смена музыки стопорит игру на добрую секунду - фриз на 1 секунду - профайлер указывает на корутину. Сейчас ради интереса закинул посмотреть сколько будет жрать оперативы прямое назначение через паблик в едиторе эти клипы и загрузка через присвоение клипа к источнику музыки и последующим UnloadAudioData - вроде норм, не лагает, память освобождает. Какие тут проблемы могут быть? Что ты имел ввиду.
Да и вообще аноны, кто может сталкивался -как правильно юзать много локальных аудио материалов в игре?
Пацаны, насчет android вопрос. Сохраняю в папку с игрой текстовый файл с логами (Application.persistentDataPath + "/log.txt"). Подключаю девайс к компьютеру, открываю папку с игрой и... там нихуя нет. Открываю эту же папку через сам девайс, вижу файл с логами. Такая херня со смартфоном и с планшетом. Почему через компьютер не видно этих файлов? Приходится на девайсе вручную перемещать файл в папку Download, чтобы он стал виден с ПК.
>>594237 >Уеч >ассеты ты ничего не перепутал, болезный > по сцене так, я начинаю прозревать... > прикручивают эффекты из коробки и думают что могут в графон ...да. симптомы явно указывают на тяжелую стадию ЮНЕТИ головного мозга
Как заставить срабатывать OnTriggerEnter, при условии что скрипт на родителе(или вообще где-то в жопе мира), а вот сам коллайдер с триггером уже на чаилде?
В инспетокре можно настроить слой (layer) для каждого объекта, потом также настраиваешь отоьрожаемые слои на каждой камере. Короче, в документации к юнити LAYERS.
>>594510 Да ему уже лет сорок, он лет пять был "18 лет с нульчика" и только потом начал потихоньку накидывать года. Видать, на пенсию вышел и понял, что нехуй молодиться. >>594353 ЕЦС говно. Будет быстро, если он использует вычислительные шейдеры.
>>591908 (OP) Что происходит с префабами лежащими в SerializedField геймобжекта при его создании? Они тоже все создаются? Можно ли сделать так, чтобы не создавались до первого к ним обращения? Допустим, у меня несколько десятков сериалайздфилдов со ссылками на префабы, многие из которых тяжелые, но активными одновременно бывают один-два. Как тут быть?
>>594542 >>594353 >>594350 Маньки, ECS здесь вообще не применим, вода делается на шейдере и то, как он написан/сформирован в шейлерграфе - будет влиять на производительность.
Суп посаны, пожалуйста не игнорьте, лень проверять самостоятельно двигло, мне бы убедиться работает ли оно с векторами на с флешем. Я видел на ютубе только анимации что делаешь скелетики и они двигают ручками, уже хорошо. Но этого недостаточно. Посмотреть бы как выглядят анимации с деформациями, например (я сейчас говорю только про дваде 2d) например мяч расплющивается при ударе или палец засовывается в нос и ноздря реалистично растягивается. Мб встречали туторы, я наверное неправильно ищу.
>>594827 >в шейлерграфе Манька, шейдерграф не поддерживает вычислительные и геометрические шейдеры. Только ручками писать, да под легаси рендеринг пайплайн, пока они srp не допилят.
>>594867 ) незачем в полное окно разворачивать, всё равно не бывает таких длинных строчек кода, на полный экран делаешь и правая часть всё равно пустая.
С помошью чего можно забиндить действия? Например мне надо быстро включать и выключать обьекты. Тыкать галки в инспекторе каждый раз уже бесит, можно на кнопку это забиндить как-нибудь?
Как заклампить значение исходя от n количества цифр? Например 15000 => 9999 если n = 4 15000 => 999 если n = 3 Ответ кажется очевидным но я что-то туплю
>>595109 В LWRP включить SPR батчер - если меши не скиннед, то заработает. В HDRP включить DOTS Instancing. Не заработает. В легаси включить динамик батчинг. Хуй знает, заработает или нет, от фазы луны зависит.
>>591908 (OP) Сколько террэйнов можно в сцене делать? Как лучше: заебашить один террэйн и сделать на нем больше разрешение текстур и полигонов или много дефолтных террэйнов сделать?
>>595150 Второе лучше, но не идеально. Но гораздо лучше много маленьких террейнов, довоенный террейн энжин не заточен на большие размеры, интерактивность и быстродействие вообще.
>>595237 Так что как включить specular на андроиде. Причем это только у стандартного шейдера, если я создам свой то он будет работать, значит где-то это отключается, где это включить?
>>595262 Нахуй иди отсюда, свинья, со своими бампами в мертвом разделе. Тут за тебя игры никто делать не будет, это гд, а не клуб дружелюбных пидарасов.
Анон, молю, не бей ссаными тряпками ньюфага в юнити. У меня вопрос по поводу лучей и спавна вещей. Вот я хочу сделать так, дабы при выстреле из условной пушки у меня летел быстро шарик из дула в точку хита луча И ПОСЛЕ САМОГО ПОПАДАНИЯ ШАРИКА ПО ЦЕЛИ у меня делались разные вещи. Проще говоря, луч здесь используется как направление траектории полёта шарика и его конечная цель спавна, а не как точка спавна. Надеюсь понятно высрал что я хочу сделать. Такое возможно сделать вообще? Есть какие-то подсказки как это реализовать, а то я уже не понимаю как это сделать.
Почему на андроиде чем дальше ты выходить по координатам тем хуже начинают работать шейдеры. Начинает свет по кубикам ебошить, шейдеры как-будто начинают округлять позицию и чем дальше чем больше округляют. Ебать, это отключается?
UI у меня пиксельартный, использую CanvasScaler в режиме ConstantPixelSize. Два вопроса: правильно ли делаю и можно ли scaleFactor назначать автоматически при запуске игры?
>>595457 Потому что чем ближе координаты к 0 тем лучше точность рассчетов, тем более на андроиде. В шейдерах настройка float precision есть и в мобильных шейдерах она зашакалена.
>>595593 Пока что да. В будущем и в едитор завезут, не ну а чо б и нет, это же неплохо. Особенно если сложную менюху можно будет заебашить на одном ректТрансформе чтоб сложная система не жрала ресурсы и не нужно было ебаться с разбивкой на канвасы, кешированием и прочим шлаком когда у тебя сотни элементов
Господа, а как сделать текст, который будет заполняться постепенно при его вызове? Т.е. буква за буквой. Вроде гуглил, а чёт нихуя подобного найти не могу, только всякие автозаполняторы текста, которые просто пишут рандом хуетень и всю сразу, а не постепенно. На английском сформулировать мысль не удалось. Может есть примерная конструкция для таких вещей? нуфаг
>>595641 Незнаю как это делают в современном геймдеве, но по старинке у тебя есть объект данных и объект собственно вьюшка и вьюшку надо обновлять с новыми данными (новой буквой) после каждой анимации появления буквы которую уже делаешь как сам хочешь.
>>595681 Эта мешюшка помогала от криворуких разрабов которые ленились в игру непопулярные разрешения вставить. Впрочем через конфиг я так понимаю никто не будет мешать это продолжать делать.
Такая проблема. Создал в блендере комнату, указав реальные разрешения своей комнаты. Также с реальными разрешениями добавил окно и холодильник. Но в юнити это выглядит мелко.
>>595439 Не вижу никаких проблем, всё просто реализуется. Создаешь ГО, инстансишь к дулу, задаёшь ему нужные параметры (скорость,направление etc.), следом он запускается, на этом обьекте висит скрипт в котором вызывается функция тригеринтер либо клааидер стэй ор интер, посмотри что тебе надо и используй нужную функцию она уже родная от юнити, ничего велосипедить не надо, и в конце как только эта функция срабатует тобишь обьект(шарик) соприкасается с целью делаешь нужную действия, всё изи.
>>595986 Я наоборот стараюсь обновляться и проверять, все ли работает. Хороший код должен быть устойчив к ошибкам внешней среды и легко изменяться под новые api
>>595972 В компьютерных играх ты смотришь через узкое окно монитора. Поэтому в играх все делают в несколько раз больше. Всякие эпические залы для 5-метровых людей.
>>596118 ориджин значит смещение координат вершин модели относительно нуля. чтобы сменить ориджин тебе нужно изменить положения всех вершин. Может написать скрипт который работает с Mesh если хочешь. Может в пробилдере можно это сделать. Но я бы лучше в блендере изменил на твоем месте.
>>596127 >ориджин значит смещение координат вершин модели относительно нуля. В блендере или юнити? Я нахожу центр модели через (сумма трансформ.позишенов всех детей) / (число детей), вроде бы с ориджином не совпадает.
Да, запоминать и записывать ориджин из блендера звучит как самое простое решение. В любом случае спасибо, знаю теперь, куда копать.
>>596143 >В блендере или юнити? Везде. Ориджин всегда ноль в локальных координатах. Когда ты в блендере изменяешь ориджин объекта, например опускаешь его вниз модели, то на самом деле происходит транформация всех вершин модели когда они перемещаются на столько же вверх. Ориджина как отдельного свойства модели нет.
В принципе если очень нужно, то можно в вершинном шейдере добавлять вектор к каждой вершине.
>>596378 Ну как ничего не делают. Вот придумали новое маркетинговое название DOTS. Еще переименовали lightweight rendering pipeline в universal rendering pipeline. Видишь сколько полезного сделали.
>>596518 Им не нужно ничего вводить, бизнес процветает несмотря на огромное усердие анриальщиков, сколько же денег они влили юнитям похуй. Будет смешно если и стим не пострадает.
>>596524 Юнити анрилу не конкурент и никогда им не будет. Пока на анриле пилят какие-нибудь условные mass effect, DmC, серию batman, deus ex, на юнити пилят очередной три в ряд и прочий подзалупный творог.
>>596539 >Юнити анрилу не конкурент и никогда им не будет. Будет, анриал уже столько бабла влил, а ничего не получается, юнити крепнет. 6млрдов это не шутки, сучка
>>596547 >а ничего не получается, юнити крепнет Хуепнет. Еще раз пост перечитай. >Пока на анриле пилят какие-нибудь условные mass effect, DmC, серию batman, deus ex, на юнити пилят очередной три в ряд и прочий подзалупный творог. Сколько бы он там не креп, шедевры продолжат делать на анриле.
>>596550 Может продолжат, может не продолжат. Большинство шедевров делают на своих движках. Пока что у юнити все заебись, несмотря на потуги анриалщиков, уж не знаю, что должно случиться, чтобы у юнити начались проблемы.
Как-же я устал от C#. Надоела его многословесность, низкоуровневость, надоело ждать компиляцию при любом изменении. Хочу писать игры на javascript или lua.
> ждать компиляцию при любом изменении Пекарню обнови. > Хочу писать игры на javascript или lua. Неее. Ты хочешь прокрастинировать. Постоянно изучать новые движки, оттягивать момент, когда надо уже начинать делать игоры.
> скриптовые динамические языки Ой, всё, INSTALL GODOT и проваливай из треда.
>>596567 Если бы ты написал хоть одну игру на скриптовом динамическом языке, ты бы меня понял. Это как всю жизнь прожить с закрытыми глазами, а потом внезапно их раскрыть.
>>596566 >Для игр нужны скриптовые динамические языки. Ты скозал? Нет, не нужны, скриптовая динамическая дрисня не нужна, это прямой путь к тормозным и глючным играм. Строгая типизация исключает баги и косяки на этапе компиляции, позволяет писать софт, который не вылетает и не падает. Если не хватает мозгов осилить полноценный код, пили логику на блюпринтах.
>>596579 Это говорит мой опыт разработки игр. У программирования игр своя специфика и правила программирования для бизнеса здесь неприменимы. Для бизнеса главное надежность и поддержка кода, а для игр главное скорость разработки и частота итераций. Одно только ожидание компиляции и типы замедляют разработку во многое число раз.
>>596579 Всё верно, однако статическая типизация не защищает отрасль от долбоёбов. Погляди, какой экземпляр в шарпотреде в /пррр/ отписался. Пиздец просто. Поэтому, если человек шарит в алгоритмах, он и на динамическом языке может конфетку сделать. Никого не защищаю.
>>596585 >>596627 > static typing > алгоритмы Чего вы за хуйню несете, тупые мамкины выродки, которых из ПТУ исключили? Static typing языки были придуманы для того, что бы не тратить время на бессмысленный дебаг такой мелочи как опечатки, неккоректное наследие типов или преобразования, и т.п. Это вообще ничего общего ни с алгоритмами, ни с парадигмами (прерогатива CS) не имеет. Это как иметь ручку для ножа, вместо того, что бы хвататься за голое лезвие. Однако ручка не научит тебя арт выстругивать из дерева
>>596585 >если человек шарит в алгоритмах, он и на динамическом языке может конфетку сделать. Может, но это в разы сложнее, зачем рвать себе очко, если можно получить гарантии на этапе компиляции? На динамическом языке проще и быстрее накидать что-то небольшое, типа скрипта на 50 строк, а при разработке большого проекта это только замедляет. При статической типизации ты открываешь любой файл из нескольких сотен, и сразу видишь, какие типы данных на входе, какие на выходе, сразу в голове выстраивается полная картина. В динамической дрисне такого нет, ты открываешь код, который сам же писал пару недель назад, и начинаешь плыть, потому что не помнишь, какие данные приходят в метод, в каком формате, с какими ключами, и чтобы выяснить это, нужно или писать руками комментарии к каждому методу, как макака делая руками то, что дает автоматом статическая типизация, либо разгребать кучу файлов, восстанавливая в памяти цепочку вызовов. >>596631 >Значит чловек сам криворукий долбаёб, если он умудряется попадать в аварию при езде без ремня и вылетать через лобовое стекло, пропахивавя ебальником об асфальт два десятка метров > а то человек может забыть добавить лишнюю скобочку и создать продукт, который будут падать и зависать. Как раза таки опечатка в статическом языке отлавливается на этапе компиляции и делает невозможным попадание таких багов в продакшен. Так что ты опять поссал себе на лицо, зачем ты так с собой?
>>596667 > страшилка придуманная майкрософт чтобы зафорсить typescript ??? Шизоид иль че? До тайпскрипта типо ни в одном языке не было объявление типа?
>>596688 Просто примерно в это время стали появляются охуительные истории про такие преимущества типов как предовтращение каких-то там ошибок и читаемость кода для больших проектов.
>>596698 Так типы действительно предотвращают тонну ошибок - они ещё до компиляции все в список выводятся, и требуют себя решить прежде чем позволят скомпилировать код.
Молю, не гоните ссаными тряпками неофита. Есть один спавнер префабов ака говнокод на подобие каста фаерболлов и он во время броска префаба по лейнкасту в игрока дамажит его 2 раза, хотя спавнится всего 1 префаб. Самое забавное, когда происходит типо смерть - он дамажит игрока 1 раз как положено, лол. Код проверял, ссылки смотрел, префаб чуть ли не с лупой сидел разглядывал - всего 1 итерация нанесения урона и всего 1 спавн префаба на кадр. Где я проебался? Раньше мне от этого помогал костыль в виде задержки в спавне длинною в атак кулдаун, но чёт оно перестало помогать.
Пикрл 1 - скрипт реакции на коллюжн, пикрл 2 - сам лейнкаст и спавнер префаба, пикрл 3 - вырезка из скрипта АИ самого моба, где и происходит вызов самого начала цепочки методов. Да, я тупой даун и держу всё это в 3-х разных скриптах.
>>596838 Какую хуйню? Я написал что из моего опыта динамические языки лучше подходят для кодинга игр. Игры пишутся быстрее и легче чем на C#. Недостатки отсутствия строгих типов сильно преувеличены. Это начал верещать что-то. Попробуй написать хотя бы одну игру на lua или gdscript, а потом повтори это мне в лицо что я пишу хуиту.
Ну и че, куда вс код и райдер устанавливаются из пакетов, почему в выборе редактора в настройках их нету? Что за колхоз, я сам что ли должен искать куда они мне их засунули?
>>596973 Сразу могу сказать по хуевости теней что у тебя у комнаты очень маленький масштаб, делай больше. А вообще на источнике света bias отвечает за "отступ" тени от объекта.
>>596687 Найс ты жопой виляешь, обоссаный петух, пытаясь увести тему разговора в другую плоскость. Нет, тухлодырец ты поебаный, ШГ допускает работу с геометрией, поэтому ты обоссан с ног до головы повторно, ну и в ротешник тебе струей зарядил для профилактики.
>>596806 Столкновения (collisions) обрабатываются в фикседапдейте, а значит функции типа ontriggerenter, ontriggerstay и ontriggerexit могут вызывать за кадр несколько раз, потому-то у тебя и происходит несколько дамагов, судя по всему.
>>596980 Ты пизданутый долбоёб просто, тебе про одно, ты про другое. В шейдерграфе нет геометрических шейдеров, в шейдерграфе нет cg. Пошёл нахуй, манька.
>>596974 Спасибо. Я лучше сделаю scale сразу всех объектов, когда дом целиком будет готов. А в блендере я просто буду делать объекты с реальными размерами своего дома, а не делать на глазок и не тягать каждый раз новый объект в Юнити, чтобы посмотреть, как он отображается. Например, эту комнату в блендере я создал с вполне жизненными размерами 7.6x3.6x2.5м. В сравнении с кубом в этой комнате, который имеет размер 1x1x1, это прослеживается. Потом создам стол, и тд Я уже писал об этой проблеме, что в юнити все мелко >>595972 мне посоветовали настройки камеры покрутить, но я еще не пробовал, потом. Вроде field of view за это отвечает,
>>597009 >Nothing for me, but at least it makes us closer to 2019.3 with quick enter play mode option. Резонно. С другой стороны, никто не запрещает накатить альфу прямо сейчас, оно того стоит.
Выключает рилоуд домейн. Плей мод реактивный, но статик переменные перестанут сбрасываться автоматически. У меня это проблем не вызвало ну вообще никаких.
Я перестал понимать как это работает. Когда импортирую модель (из блендера или с Mixamo), обычно armature видно в иерархии и можно цеплять к отдельным костям всякое. Что произошло сейчас не вдупляю - костей нет в иерархии, анимации каким-то раком работают, что за магия? Как мне вынести кости в иерархию, чтоб их было видно?
Где можно поучится как "правильно" делать игры. Что то по теме архитектуры игры и как всё построить и спланировать, как распределить код и что где лучше использовать.
>>597049 Это реалии разработки, я делаю сайты на реакте, кодовая база так разрослась что я боюсь что то менять или внести фичу что бы что то не поломать, внесение фичи занимает все больше и больше времени. Например разработчику нужно внести фичу в движок, но в коде объекты между собой взаимосвязанные, это значит что изменения в одной части кода будут иметь последствия на другие части кода, а так как в движке миллионы строк кода то разработчик в душе не ебет где там и что там может поломаться. Что бы такой хуйни не возникало нужно в 2-5 раз больше времени на разработку движка, нужно в раз несколько лет переписывать движок под новые фичы, инвесторам это не выгодно ведь нужно побыстрее выкатывать фичи и обновления.
>>597124 Во-первых, юнити это движок, а не конечная программа для пользователя, и юнитеки не могут переписывать движок постоянно как раз потому что у них есть пользователи, у которых от таких манёвров слетит всё нахуй. Это наоборот умный подход, что они вместо полных перелопачиваний выпускают модулями новые фичи и оставляют всё старьё у коде ради совместимости.
Во-вторых, юнитекам не нужно переписывать движок с нуля чтобы ввести какую-то фичу. Да-да, в отличие от годота юнити сделан хоть по каким-то стандартам качества и отвечает заявленным требованиям, модульный и вообще как раскладушка. В отличие от некоторых они могут ввести ЕТЦ, и у них не отвалится от этого ВСЁ.
В-третьих, скорее всего юнитеки не могут просто взять и выкатить официальную фичу, которая бы копировала фичу, сделанную кем-то и выложенную в магазине за деньги. Каждый раз они такое дело покупают у автора и только затем себе добавляют. Не уверен насчёт этого момента.
>>597130 >не могут просто взять и выкатить официальную фичу, которая бы копировала фичу, сделанную кем-то и выложенную в магазине за деньги Естественно не могут. С магазина они получают процент, там за них делает кто-то другой. А тут нужно делать самим и бесплатно!
>>597135 В отличие от тебя они профессиональные программисты, могут написать вообще всё, что угодно, просто сегодня им лень и мешают все те люди в магазине у которых приоритеты в разработке другие.
>>597146 Эти профессионалы тайловые карты делали 5 лет. А террейн уже 10 лет переделывают. Мелкие фиксы и хуйня вроде генератора шейдеров (причем сделанно максимум криво и по уебански) - это предел их возможностей.
По сути разработчики юнити паразитируют на коде движка написанном с самых первых версий, ничего существенно в нем не изменяя. Этот их форс DOTS это их первая попытка сделать что-то по другому. И заодно их эпичный обосрамс.
Задумал сделать композитные портреты/спрайты. То бишь брать не просто изображение и нацеплять в нужный ректангл с коллайдером, а брать несколько изображений и нанизывать их в нужную позицию в нужном ректангле.
Как мне лучше всего это воплотить в жизнь? Не думаю, что с точки зрения движка будет здраво все 256+ частичек одной картинки одновременно рендерить, а потом ещё и выискивать где именно и кого именно из них мышь нажала. Собирать из них одну текстуру в рантайме? Ещё какой-нибудь вариант есть?
Ну и раз уж речь зашла - хочу чтобы как в веб 2.0 картинка не просто расширялась под масштабы окна, а резалась в нужных местах и повторялась в требуемых местах. Общую идею как это сделать я уже имею и кое-какие части её уже воплощены, но может какие-нибудь советы имеются?
>>597237 Так это же торможной говнокод получится. Лучшим решением был бы массив тэгов, который бы хранился как битовая маска. Нахуя один тег-то делать? Неужели юнитеки не подумали, что может понадобиться 2 тега, или даже 3? Только начинаю изучать юнити и пока какое-то разочарование, все его так хвалили, мол, лучший движок и все такое. Но что-то пока такое себе. В плане работы с ассетами, анимациями, посасывает у анрила. Удобство работы с префабами посасывает у прости господи, системы сцен годота. Скриптовое АПИ какое-то хуёвое, антипаттерн на антипаттерне, MonoBehavior просто какой-то огромный перегруженный god object, неужели не могли сделать отдельные базовые классы для компонентов, поведения, сервисов. Надо ECS попробовать вкурить, может хоть там можно чистую архитектуру без говнокода запилить.
>>597382 Я для 2д изучаю юнити, потому что уеч для 2д это перебор, для этого, а годот слишком глючный. А в плане 3д да, пока из всего, что видел - сосет у уеча во всём.
>>597393 Не запихнешь. Ты сначала в настройках проекта создаешь набор тэгов для этого проекта, каждый в виде строки. И потом любому объекту можешь назначить только один из этих тегов.
>>597397 Открываешь инспектор, назначаешь тэг объекту. Он может быть только один. Т.е. если ты назначишь тэг player, ты не можешь назначить ему второй тэг, отвечающий за класс, команду или расу, чтобы потом фильтровать объекты по нему.
>>597401 > Добро пожаловать в лучший движок для создания игр. Я оттудова и не уходил. Я как вкатился в гейдев, сразу ебанул анриал, юнити, годот, блендер и сижу, довольный, в белом пальто.
>>597351 А ещё можешь сделать так: носить в объекте такие-то и такие-то строки, а когда идёт проверка на тэг влезаем в объект, смотрим на строки, если чекается, на время проверки меняем тег на необходимый, а потом обратно.
Есть ли смысл юзать visual studio или VS code достаточно? Студия какая-то тормозная и тяжеловесная по сравнению с code, дает ли она какие-то профиты, чтобы перевесить удобство и скорость?
Что вернет GetComponent<Тип>, если у объекта несколько компонентов этого типа? Первый из них? Последний? Рандомный? Все нахваливают документацию юнити, говорят, что она лучше анриловской. Но там даже такая простая вещь не описана.
>>597433 тут нужно учитывать число вершин, число пикселей на экране которое займет объект после отрисовки (для каждого физического пикселя будет вызвана функция пиксель шейдера) и сложность шейдеров (материала).
>>597428 А у юнити может быть несколько компонентов одного типа? Во дела. Я-то безопасности ради каждый компонент-дитя в отдельный геймобжект, привязанный к главному делаю, а оно вон как можно.
>>597440 Может, там даже отдельный метод есть, GetComponents, который возвращает массив компонентов заданного типа. Что же ты в апи референс не заглядывал?
>>597130 >не могут переписывать движок постоянно как раз потому что у них есть пользователи, у которых от таких манёвров слетит всё нахуй. То та я вижу блядь что стандартные ассеты не работают когда выходит новая версия.
>Во-вторых, юнитекам не нужно переписывать движок с нуля чтобы ввести какую-то фичу. Да-да, в отличие от годота юнити сделан хоть по каким-то стандартам качества и отвечает заявленным требованиям, модульный и вообще как раскладушка. Откуда ты знаешь что их код пиздец какой охуеный сделанный по всема стандартами разработки. Если бы было как ты говоришь, то фичи были бы более пиздатые и частые.
>В-третьих, скорее всего юнитеки не могут просто взять и выкатить официальную фичу, которая бы копировала фичу, сделанную кем-то и выложенную в магазине за деньги. Все они могут, просто вносить кардинальные изменения в код они не могут так как все может поломаться.
>>597443 Если бы у них был охуенный код, они бы не зассали выложить его в опенсорс, как анрил сделал. Раньше это можно было объяснить коммерческой тайной, но после того, как это сделал анрил, уже нет причин скрываться, кроме как говнокод в ядре движка.
>>597454 Нет, это скриптовое апи на сишарпе, которое и так можно было вытащить дизассемблером. Большая часть юнити написана на плюсах. как анрил, и эта часть остается закрытой.
>>597444 >Если бы у них был охуенный код, они бы не зассали выложить его в опенсорс, как анрил сделал. Ты так ненавязчиво наекаешь что код анрила БОЖЕСТВЕННЫЙ. А ты сам его видел? Точно видел, сучечке пиздливый? Потому как я сношался с ним месяц, делай кастомный парсер ассетов и я знаю что за говно их код.
>>597459 >делай кастомный парсер ассетов и я знаю что за говно их код. А мог бы игры делать вместо ковыряния в говне. > и я знаю что за говно их код. Тут скорее обратная проблема, ты страдаешь синдромом NIH, как Хуан. Хуан видит бесплатные охуенные текстовые редакторы, типа visual studio code, но не может позволить себе запилить интеграцию с ними для своего движка. Его анус болезненно сжимается, когда он видит код, написанный другими людьми. И неважно, хороший ли это код, или не очень, одна лишь мысль о том, чтобы использовать код, написанный посторонними людьми, заставляет волосы на анусе Хуана вставать дыбом. И Хуан идёт пилить кривое, убогое подобие текстового редактора, по фичам и юзабилити покрывающее 5% условного visual studio code. Кривое, уродливое, неюзабельное говно, зато своё, родное. При мысли о том, что Хуан сам написал этот редактор, потратил на него несколько месяцев времени, за которые мог бы например допилить рендеринг до приемлимого состояния, или пофиксить сотни багов, его крошечный сморщенный член, заросший густыми кудрявыми волосами, наливается кровью и привстаёт, Хуан начинает яростно дрочить его и кончает через 20 секунд, размазывает желтоватую вонючую сперму о внутреннюю поверхность своего рабочего стола и идёт переписывать классы строк и контейнеров для годота, т.к. по идеологии Хуана в годоте запрещено использовать стандартные классы из stl. Примерно так выглядит разработка годота. По этой причине годот не использует SDL, Box2d и десятки других библиотек, ставших стандартами индустрии. У тебя, видимо, та же история, раз ты решил, что стандартных фич для работы с ассетами тебе мало и полез пилить что-то кастомное. Разработчикам условных mass effect и devil may cry хватило этих фич, а пидорашке с двача - нет, и она полезла пилить кастомный парсер. Так что проблема не в коде анрила, а в твоей голове, к сожалению.
>>597487 >ряя, я кавырялся в коде уеча, там фсе сложно и нипанятна(( >поставлен на место Проиграл. Ты бы еще поссал себе на голову при людях, и сказал, что этим ставишь их на место. Все, что ты доказал - что дети и умственно отсталые неспособны разобраться в коде уеча, это вроде и так всем было понятно.
Господа знатоки, подскажите, есть ли факторы, которые следует учитывать в ходе разработки игры под web?
Если это обычное 2D без лишних наворотов, то какие подводные камни могут возникнуть? Может быть есть какие-то тонкости, с которыми анон уже сталкивался? Может быть какие-то ограничения по фпс или размерам файлов, которые следует учитывать? Какая-то особая настройка проекта?
Решил для интереса сделать "симуляцию" типа обливиона, каждый юнит разделил на две части: бакенд юнит - делоет патфайндинг, скорость, ну вся важная дата короче фронтенд юнит - геймобжект манябехевиор который нихуя не решает а просто двигается и делает анимации, когда игрок уходит со сцены, просто удоляется. а бакенд переходит в слоу мод, чтоб не сильно грузить проц своей "жизнью". Двигать юниты решил по 2д массиву. Понимаю что это почти как сервер-клиент, хотя у меня опыта по этой хуйне нет. Есть ли у кого литература почитать про этот "сетевой" подход? Лучше на англ конеш.
Как лучше организовать большое количество разных вещей в игре? Из того что нашёл в основном предлагают делать скриптабал объекты, но этож надо будет хранить 200+ таких для каждого внутриигрового предмета. И второй вариант это парсить не юнитовские форматы файлов типа XML. Так второй вариант лучше и стоит с ним работать? Или есть ещё другие варианты, хранения кучи разных предметов.
>>597772 Всё зависит от масштаба твоей игры. Если объектов немного или средне, скажем так, то юзай файлы. Если прям дохуя, то смотри в сторону баз данных.
>>597778 А можно в текстовых файлах хранить путь до префаба? Т.е., например, сделать БД предметов в виде json массива в файлике, в нём будут поля для названия, стоимости, веса, и нужен еще префаб, который будет спавниться, если предмет достали из инвентаря.
>>597780 Наоборот, у тебя в префабах должна быть инфа о текстовых данных. В файлах же ничего не должно быть известно о потрохах юнити. Просто абстрактные данные, типа
>>597786 А как связать префабы и текстовые данные? Если у меня в json 1000 объектов, как мне назначить каждому из них свой префаб? Или даже один и тот же префаб на насколько бъектов, но с разными настройками?
>>597788 Префаб настраивает себя по данным из базы. Неважно какая у тебя база данных, текстовые файлы или реляционная БД. Префаб в старте получает из своей настройки индекс на данные, чем он будет в игре. Ну, в общем случае, само собой. Например префаб-фурнитура с полем kind равным "терелка", в старте ищет данные о тарелке и загружает их в себя. Путь до меша тарелки, координаты где тарелка лежит и т.п.
>>597790 >>597788 Дам тебе менее абстрактный пример. Более насущный. Допустим у тебя в игре есть города с населением. И всё это неписи. На них на всех есть префаб "NPC", который у себя в скрипте, в старте, загружает себе меш, морфы, диалоги, маршруты на навмеше. Всё это реально численно инкапсулировать в текстовых файлах (или БД), не используя эти самые меши, держа их так же в единственном экземпляре. Допустим у тебя имеется процедурный генератор. Однако ты же не будешь сразу всех генерировать, нет, генерация будет идти лениво, чтобы не создавались неписи во всех закоулках, в которые игрок даже не зайдёт. Процедурная генерация может быть весьма ресурсозатратной, поэтому ты можешь в первый раз генерировать непися и все параметры записывать в файл сохранения, например (лучше конечно в отдельный файл, сделать отдельную папочку кэша в юзерской директории и ебашить туда файлы с васями, машами и петями). Таким образом, при первом посещении локации непись генерируется, в следующие посещения просто поднимается уже сгенерированный непись из файла.
>>597798 Синдром Даннинга-Крюгера детектед. В скриптовом языке у тебя будет сцена "NPC.tscn" (ну ты понел), которая у себя в скрипте, в _ready, загружает себе меш, морфы, диалоги, маршруты на навмеше. Всё это реально численно инкапсулировать в текстовых файлах (или БД), не используя эти самые меши, держа их так же в единственном экземпляре.
>>597800 Не понял что ты там инкапсулировать в текстовых файлах собрался и причем тут предметы. Тащемта скрипты это тоже текстовые файлы, и их не нужно парсить чтобы получить данные.
>>597798 Так и в юнити можно создать 1000 скриптов для 1000 предметов, но так только говнокодеры делают. Нормальный подход - создать один общий скрипт, отвечающий за предмет, а различные вариации получать комбинациями атрибутов. Если еще ECS добавить, то вообще очень гибко получается, можно представлять предмет как набор компонентов, логика поведения которых разнесена по разным подсистемам. Например, пока макака пытается захардкодить меч на скрипте, с ECS подходом ты собираешь этот меч из компонентов, назначаешь ему модельку, иконку, вес, стоимость, признак оружия, тип урона - режущий и т.д. Какая-нибудь броня будет тоже иметь вес, стоимость, но не будет иметь компонент оружия, вместо него будет компонент брони. Фляга может иметь компонент объема, что позволит хранить в ней воду или любое зелье. Такой подход позволяет собирать составные предметы, например, можно совместить в шлеме компонент брони и оружия, добавив ему атаку рогами. Или добавь броне компонент емкости, чтобы можно было носить воду во встроенной фляге. Я понимаю, что скриптовой макаке сложно осознать все плюсы такого подхода, но ты хотя бы попытайся.
Скачал Unity, он мне установил Visual Studio. Начинаю я учить C#, хочу решить задачку, а там (в Visual Studio) можно создать проект только на C++. Я конечно нашел меню выбора дополнений, но если бы я сходу начал работать в Unity, то чтобы было? Почему он (Unity) не поставил мне сразу C#?
>>597821 >Почему он (Unity) не подтёр мне жопу сразу после того как я посрал? Ставь visual studio code. И начинай уже постепенно сам подтирать жопу, никто за тебя этого делать не будет.
>>597822 Слышь обезьяна. Я вообще то спросил почему он так делает, а не как мне установить нужный редактор кода. Давай тогда вместе с юнити вместо компилятора C# устанавливать Pascal.ABC. Не, ну а чо, нужно же постепенно начинать вытирать за собой жопу.
>>597823 >Давай тогда вместе с юнити вместо компилятора C# В юнити свой компилятор c#, который идет в комплекте. Вижуал студио это отдельный софт от других разрабов, не связанный с юнити. То, что юнити запускает инсталлер от этого софта еще не значит, что оно может что-то там тебе дополнительно установить. Настроить вижуал студио через инсталлер, чтобы там были компоненты для c# - твоя личная забота и проблема. >>597823 >Слышь обезьяна Зачем ты так про своего батю, что он тебе сделал плохого в этой жизни?
Что-то у меня разворотило очко от юнити. Импортнул тайлсет с анимациями на сотню кадров со spriters resources, час сидел в спрайт эдиторе, размечал кадры анимаций руками, потому что там не было выравнивания по гриду. Потом понял, что импортнул с билинейной фильтрацией, нажал на ре-импорт, не выскочило даже никакого предупреждения - вся моя разметка на кадры проебалась, тайлсет снова превратился в один большой спрайт. Это что, шутка какая-то? Даже в гондоте такой хуйни не было.
Есть панель с кнопкой из префаба. При нажатии на кнопку текущая панель делается неактивной и активируется другая панель с кнопкой (она тоже из префаба). На вновь активированной панели кнопка не реагирует ни на нажатия, ни на -наведение мыши. Со слоями что-то?
Как называется этот пиздец? Ни строчки кода не использовано, просто сбилдил навмеш на простой сцене, добавил чудика из стандартных ассетов, установил первому второго в качестве цели. Как так вышло, что в юнити попадаются баги уровня гондота?
>>598134 Когда кодовая база движка разрослось настолько что внесения любого изменения в код влечет за собой непредвиденные баги которые ломают даже стандартные ассеты.
>>598146 >сделал хуйню В какой момент? Когда скачал юнити, или когда скачал стандартные ассеты за авторством юнити из стора? >>598148 И как с этим жить? Использовать движок как низкоуровневый фреймворк, и велосипедить всё самому?
Блядский цирк продолжается. Где почитать, как сделать "не хуйню", чтобы было без таких глитчей? Делаю все стандартными средствами, по официальной документации, пока получается только хуйня.
Понятно, видимо navmesh еще с 2017 года в неюзабельном состоянии. Перешел с годота на юнити, чтобы не видеть детских багов и глитчей физики, а в юнити оказались свои сюрпризы. Походу так и придется перекатываться на анрил, а жаль, юнити только-только начал нравиться.
>>598150 >И как с этим жить? Смирится и научится обходить баги.
>Использовать движок как низкоуровневый фреймворк, и велосипедить всё самому? Займет дохуя времени и будут те же баги.
Здесь нужно придумать новые принципы программирования, например довести до ума визуальное програмирование что бы вся сложная часть была спрятана под капотом а пользователь только проводил линии между блоками.
Анон, спасай! Скажи пожалуйста, как мне кнопку обычную UI нажать через пробел, а не через нажатие мышки по ней?! Кнопка обычная Button, на неё накидано много разных действий, надо просто её нажать через пробел а не мышку!
Хуй знает появился-ли в новых версиях юньки удобный способ это сделать, но самый наивный способ это добавить на твою кнопку скрип который по нажатию хоткея будет инвоукать onClick ивент на самой кнопке. m_Button.onClick.Invoke()
>>598166 Можешь попытать счастья с NavMesh Components, это более up-to-date ветка Юнити навмеша, доступно на Гитхабе.
Но так же есть вероятность что ты хуй и делаешь какую-то хуйню (а мог бы делать игры), и вместо того что бы поправить свой код нашёл первый вайнер тред по запросу фича_нэйм из багд и сидишь довольный, ведь главное что ты не лох.
>>598238 Спасибо большое, спас меня, от Юнити блин, на кнопку уже нажать нельзя нормально. Думал уже убрать ету кнопку и сделать все скриптом голым, а вот оно как получилось, спасибо :3
>>598248 Вообще-то, в больших и сложных приложениях (а игры безусловно таковы) принято создавать менеджеры действий (action manager) которые содержат в себе реально выполняемый код этих самых действий, а кнопки, хоткеи, тач-ярлыки и любой другой ввод только обращаются к экшонам экшонманагера. И тут мы снова упираемся в невежество https://learn.unity.com/tutorial/create-a-simple-messaging-system-with-events
>>598088 Сдаётся мне у тебя ссылка на что-нибудь побилась. При копировании/реактивации кнопки попробуй заново расставить все переменные как надо. Чтобы кнопку "видела" мышка в кнопке должна быть картинка с включённым рейкастом и альфа-каналом выше нуля. Сам текст, вроде, тоже можно целью рейкастов задать, но насколько я помню один только текст плохо или и вовсе не работает.
>>598265 > Уже сам пожалел, что не сделал такую штуку. Просто нет времени, тороплюсь на джем, лол. Лучше день потерять, а потом за 5 минут долететь. Чем дольше живу, тем чаще вспоминаю эту шуточную фразу из мультика в детстве.
>>598137 У тебя навмеш агент не настроен или контроллер персонажа, тупой ты еблан. Кури туториалы, потом обвиняй движок. Почему я в своей игре смог нормально настроить фолловинг сопартийцев за мейн чаром без строчки кода? Я что, маг-чародей?
>>598322 Не трясись, всё нормально. Я вот сегодня импортнул тайлшит размером 1024 на 1024, и пытался порезать на слайсы, так у меня юнити завис, и пришлось прибивать процесс через диспетчер задач. Просто прими факт, что ты жрёшь говно, но альтернатив нет, гондот еще хуже, а анрил слишком тяжеловесный для инди и небольших игр.
>>598343 Одно другому не мешает. VCS для кода хорошо, а для остального не всегда хорошо. Плюс VCS может сам себя похерить и никак не защищает от пиздеца вида умер винт.
>>598344 > VCS может сам себя похерить и никак не защищает от пиздеца вида умер винт Что, простите? Я из любой точки мира могу на голую винду скачать любую ревизию любого своего проекта.
>>598348 Могу по своему опыту сказать - скорость и отсутствие мозгоёбства. Проект на 100гб разворачивать и собирать из VCS будет намного дольше (и не факт что успешно с первой попытки) чем просто из бэкапа образ достать. Т.е. что бы отследить изменения, в команде работать и т.д. - конечно VCS, но если в обед сгорел HDD, то куда как проще и быстрее просто развернуть утренний образ системы и продолжить работать.
Но судя по дрожащим рукам, этот "разработчик" ничего вообще не делал для сохранности своей работы.
>>598383 Ещё вопросик, каждый раз когда я создаю обьект на сцене он появляется хз где, так что приходится часто жать "reset position". Полюбому есть решение чтобы это можно было забиндить на клавишу, подскажите если знаете.
>>598385 >когда я создаю обьект на сцене он появляется хз где Ничего не поделать, так юнити устроен, в только в рандомной точке может создавать объекты.
>>598334 А что если я скажу тебе, что можно не переходить, а юзать оба движка параллельно? >>598335 О, спасибо, неочевидная хуйня. >>598355 Таки да, вкатился недавно. Читаю, смотрю, делаю тестики. Хотел один свой существующий проект по быстрому воспроизвести в юнити, чтобы заценить хвалёную простоту и скорость разработки. Но чот обосрался.
>>598438 Это да. Впрочем, современные движки всё равно используют мэйнлуп с коллбэками. Можно приноровиться. А иначе как лучший движок выбрать? Только щупать лично.
Студия в которой я работаю пользуется инхаус втулкой для конвертации флеш анимаций в плоские меши (вертекс колоред, по мешу на кадр) которые потом используем в движке. Со сложными градиентами правда что-то там не срослось (нам и не надо, рисовка специфичная). Ну и т.к это покадровая анимация, мячики плющит, ноздри натягиваются заебок. Но открытые ассеты для такого ищи сам, чё ахуел?
Как выполнить какое либо действие в конце проверок for лупа? Пикрил не выполняется, но я догадываюсь потому что i++ выполняется в конце и в конце нужно проверять не общее количество а на один меньше?
>>598562 Не вариант, потому что в ходе цикла может выпасть прерывание цикла, а действие нужно выполнять после полной проверки. Тащемта -1 к длине помог.
Поясните за материалы. Допустим мне нужно два куба с одинаковым материалом покрасить в разные цвета, мне придется создавать два разных материала для каждого цвета? Или можно как-то использовать один материал?
>>597351 Тормозной код - это чекать массив ссылочных типов данных(тегов), долбоебина ты малолетняя. Вместо того, чтобы кукарекать какой ты тупой, сел бы нахуй на 5 минут и на бумажке по таблице раскидал группы призаков под определенный тег, еб твою мать.
>>598319 Щас бы в 2к19 вручную линки выставлять и закрывпть приложение до сохранения данных. Тебе рано игрульки делать, манька. Сначала жеппу научись подтирать с соплями.
На самом деле можно использовать один материал, просто во время запуска приложения можно получать доступ к материалу и менять его цвет.
Переименуй один из кубов на сцене в CubeZaloopa, создай файл скрипта, помести его на камеру, допустим...
Чисто для примера: void Update() { If (Input.GetKeyDown(KeyCode.Q)) { Gameobjet.Find("CubeZaloopa").GetComponent<MeshRenderer>().material.color = Color.red. } }
При запуске игры, если нажмешь q - цвет куба с белого на красный должен поменяться. При этом на оьоих кубах будет один и тот же материал, но там где сменится цвет, будет создан экземпляр материала.
>>598439 Прыгать между шарпом и крестами один хуй мозг сломишь. >мэйнлуп с коллбэками Я к ецс приноравливаюсь, есть мейнлуп, а есть некая абстрактная асинхронная ебатория. В принципе, мне нравится даже.
>>598601 А можно использовать MaterialPropertyBlock и рисовать два куба с одним материалом и разным цветом всего за 1 дроуколл.
>>598611 > А можно использовать MaterialPropertyBlock и рисовать два куба с одним материалом и разным цветом всего за 1 дроуколл. Можно. Можно и атласами решит эту же задачу. Можно и писю в попу принять. Вот только судя по вопросам задающего, ему в такие дебри лезть рано, только запутается больше.
Я понял, в чем разница между годотом и юнити в части конструирования сцен. Пишу для себя, но если кому-то не похуй, читайте. В юнити один геймобджект содержит массив компонентов, при этом геймобджекты могут складываться в иерархию. В годоте же вместо компонентов потомки геймобджекта (Node) жёстко специализированные. Поэтому конструируется сцена только через иерархию. Чтобы собрать в юнити годот-стайл сцену, вы должны делать все геймобджекты только с одним компонентом и одним скриптом. И это получается гораздо свободнее. Юнити может реализовать иерархию годота, а годот не может реализовать иерархию юнити. Хотел это в движкосрач запостить, но у меня нет цели сраться. Просто инфа к размышлению для адекватов.
>>598634 >>598611 >MaterialPropertyBlock С каждым днём я всё больше убеждаюсь что юнититред знает ответы на все мои проблемы, но выдаёт он их рандомными интервалами случайным людям и с неопределённым количеством ненависти направленной на них. Просить ответы бесполезно, нужно только терпеливо ждать, и тогда вселенская истина сама к тебе придёт. Может быть.
>>598639 Мань, компонентная система и задумывалась юнити-разрабами как более гибкая альтернатива прямому наследованию. Чтобы хуяк-хуяк, накидал компонентов и в продакшн.
>>598639 > Чтобы собрать в юнити годот-стайл сцену, вы должны делать все геймобджекты только с одним компонентом и одним скриптом. Попробовал сейчас так сделать. Сцена моментально затормозила. При запуске сначала пусто, потом из пустоты вываливается этот композитный кадавр пиксрилейтед. Хотя рядом с ним такой же на одном геймобджекте появляется моментально и скачет по канве. Кажется, я начинаю понимать суть ЕЦС.
>>598591 >это чекать массив ссылочных типов данных(тегов) Минуточку. Когда ты сравниваешь interned строки из массива, то происходит просто сравнение указателей. Никаких данных по этим указателям не загружается. Это тоже самое как если бы был массив интов.
Посмотрел в факе https://noobtuts.com/unity Но по моему тут слишком легкие примеры. Наверное в каждом 80% содержимого будет руководство о том как загрузить спрайт в геймобджект.
Как дальше развиваться? Я впринципе могу начать делать игру, но мне кажется я буду писать дикий баганый говнод от которого я заплачу и брошу изучение юнити навсегда
>>598776 > Как дальше развиваться? Гугли и кури материалы по шарпу. Тебе нужно общее копутер сцаенс, чтобы быть уверенным в себе и писать говнокод, от которого ты не заплачешь, а заухмыляешься. Особенно когда у другоих от твоего говнокода бомбанёт. Ни с чем не сравнимое ощущение.
Так. Кроме шуток. Учи шарп. Учи алгоритмы. Учи паттерны.
Аноны, я добрался до игры на юнити(BASPM), и хочу отредактировать портреты космонавтов. Насколько сложно преобразовать обычные джипег-файлы в unity3d и откуда надо начать?
>>598796 Там не трёхмерные объекты, обычные фотографии, никакой анимации/движения и прочего. В стиме есть мод, но автор уже года два как забил на него, я думал продолжить.
>>598776 Тебе нужно где достать коммерческий проект в опенсорсе или стать йоба программистом который сам придумывает оптимальную архитектуру приложения, но для этого нужно логическое мышление.
Анон, как лучше сделать архитектуру рогалика на юнити? С обычными рогаликами вроде все понятно. Там просто состояние игры представлено как данные, которое изменяются каждый ход, а потом просто каждый раз перерисовывается заново. А как быть в юнити, я же не могу просто удалять и создавать объекты каждый фрейм. К тому-же хочется сделать разные анимации и т.д. В общем непонятно. Есть у кого-то опыт нормальных пошаговых рогаликов на юнити?
>>598591 Хуя себе как у скотопидорахи разворотило очко. Тебе разработчики юнити кончали в горло и клали потные яйца на лицо, что ты их так рьяно отстаиваешь? К посте нет ни слова о том, что надо хранить набор тегов как массив, есть более оптимальные способы, такие как битовые поля (упомянут в посте, на который ты бомбанул), сеты. Теги необязательно хранить и применять внутри движка как ссылочные типы данных, можно запросто приводить их к инту как enum.
>>598667 Ну не пизди, даже не самый быстрый двиг типа юнити не стал бы тормозить на трех гейм обжектах на сцене. А еще смак в том, что раньше в юнити нельзя было делать вложенные префабы, и Хуан выебывался своим наследованием сцен, мол, уникальная фича, ты можешь сцену внутри сцены внутри сцены внутри другой сцены, и так до бесконечности. Но потом юнитеки запилили вложенные префабы и Хуан жидко пукнул со своими сценами.
>>598776 >Как дальше развиваться? Переставать СМОТРЕТЬ и начать делать. Что же за зумеры нынче пошли, только смотрят и смотрят, а высрать ничего не могут, это есть то самое клиповое мышление?
Когда юнитоделы доделают екс и сюстем джоб? Хули так долго? Не ужели их код настолько обдрочаное говно что в нем нельзя добавить строчку что бы все в пизду не развалилось?
Уверен, если бы они сейчас запилили двиг с нуля, в его последнем состоянии, отбросив все говно мамонта 10 летней давности, он получился бы легковесным и быстрее в несколько раз. Но нельзя вот так просто выбросить поддержку легаси говна, в мире полно калоедов, которые продолжают дрочить на старьё, типа тех, кто продолжает сидеть на хп, не переходит на блендер 2.80 с 2.79, сидит на втором питоне вместо третьего, и т.д.
>>598837 >Не ужели их код настолько обдрочаное говно что в нем нельзя добавить строчку что бы все в пизду не развалилось? Да это так, они набрали пидаров и фемок, типо они не хуже нормальных людей, и теперь у них пиздец полный
>>598838 > не переходит на блендер 2.80 с 2.79 Этой проблемы вообще бы не было, если бы они не перепутали интерфейс. Нахуй это было делать? Есть вообще еще примеры чтобы большие проги перепутывали интерфейс просто так? Ведь там все то же самое везде, просто панель слева убрали, все перетасовали, делать нехуй.
>>598844 Они неспроста это сделали. Над новым интерфейсом работали спецы по UX и юзабилити, этот интерфейс делали в том числе и с учетом пожеланий крупных студий и профессионалов (сейчас вот юбисофт начал в блендере 2.80 анимировать). Так что надо просто смело отбросить привычку и идти вперед, навстречу прогрессу, а не быть калоедом-пидорахой, поднимающим вой. Поверь, все изменения обдуманы по 100 раз, разрабы понимали, что калоеды поднимут вой, но все равно нашли силы сделать эти изменения, и правильно сделали, потому что легаси нельзя поддерживать вечно. Старой схеме все-таки уже больше десятка лет было.
>>598843 Именно так, берешь и делаешь, только не крузис, а какую-нибудь мелочь для начала, тетрис, марио, змейку какую-нибудь. Главное доводи до конца, даже с говнокодом. В следующем проекте будет уже меньше говнокода, появится опыт, сделаешь ошибки и в будущем уже не будешь их допускать.
>>598849 >этот интерфейс делали в том числе и с учетом пожеланий крупных студий и профессионалов Что ты пиздишь хуйню, долбоеб, такого интерфейса нигде вообще нету, они ничего не изменили по сути, только местами одну понель поменяли, пиздабол.
Вкатился в юнити, постигаю основы. Есть 2д проект. Есть анимация того, как персонаж стоит. Есть анимация того, как персонаж идет. Есть анимация переходит из "стоит" в идет". (и обратная) Как корректно осуществить переходы? Анимация "перехода" из "стоять" в "бег" должна быть отделена от бега? На рилейтед пике мой вариант. Все ок, кроме того, когда переключаешь резко справа налево (или наоборот) - повисает в анимации перехода вместо бега.(если отключить has exit time для анимации "перехода", то он ее вообще игнорирует почти что)
Еще вопрос, можно ли группировать стейты анимации? Т.е., если я например хочу сделать переход не из любой анимации, а из любой, которая принадлежит конкретной группе?
>>598838 А смысл поддерживать легаси если проект нельзя обновить без тонны ошибок? Вот например тарков пилят на 5 юнити, и че блядь они вот так просто смогут обновить проект? Да хуй там, придется все заново тестировать, переписывать большую часть скриптов.
>>598971 Если я правильно понимаю, то ты хочешь бленд три. Нажми на любом стейте анимации и жмакай сделать бленд три, там можно делать разные группы и ветви анимаций.
Господа, как заставить работать шейдер граф? Установил в юнити, вставил скриптбл в нужный слот, где его надо вставить и в итоге у меня вместо текстур - розовая залупа без текстур. Без этой ебалы у меня всё нормально, но мне охота сделать пару шейдеров, ибо графон уровня б ещё и лоу поли игра, лол.
>>598833 Орнул с порвавшегося хуесоса. Щас бы лепить костыли из битовых масок, переходных enum-ов вместо использования instanceIDs. Тебя, пидорана, какая блядь высрала из своей разъебанной сраки, а потом костылем пизданула по твоей обоссаной башке да так, что ты теперь без костылей жить не можешь, чмошка?
Вот у меня есть список геймобжектов с классами. Как я могу понять под каким номером в списке у меня идет тот или иной геймобжект? Кроме как при создании списка добавлять этот номер?
>>598687 Бесполезное дело. Чтобы это в памяти осталось нужно пользоваться им постоянно. Ну, пролистаешь ты документацию, поможет это тебе в деле? Это, может, ты у нас из компуктер сцайенс вышел, у тебя на занятиях сформировали память таким образом, чтобы документация по полочкам раскладывалась. Но мы-то здесь самоучки с вышкой в каком-нибудь маркетинге а то и вовсе без образования, нам-то какой толк от документации? Вот ты инструкции к стиральной машине новой читаешь, ты сразу весь функционал запоминаешь и можешь из памяти использовать?
>>598776 Сейм шит, тоже застрял на этом. Все туториалы по простейшим вещам, а такого, чтобы достаточно прокачать опыт с движком для того, чтобы начать уверенно ориентироваться и что-то делать самому нет.
>>599016 Вся проблема в том, что нет единого решения для какой то задачи. И в каждом туториале люди показывают тот или иной вариант. Поэтому важно понять как работать именно с инструментами, а как уже из них слепить что-то желательно думать самому. Ну и лично по моему маняопыту, когда сам даже говнокодишь но ты понимаешь как это работает и как это можно улучшить, чем когда повторяешь за кем то, даже если он хорошо обьясняет.
>>599070 >документация для уточнения а не для обучения, опыта работы с движком она не даст Ебать дебил. Документация даст тебе представление об устройстве движка и его возможностях. Прочесть документацию - это первое что ты должен сделать перед использованием программы. А ты тратишь время на бесполезные ролики с ютуба. Ты пытаешься решить проблему с помощью инструмента, не зная инструмента. Не зная инструмента, ты можешь самостоятельно составить план решения проблемы, поэтому тебе как тупому дауну только остается как макаке повторять за идиотами с ютуба.
>>599070 Дело в том, что "мастера" из ютуба (и даже авторы официальных туториалов) используют только базовые вещи. Как объекты двигать, как коллизии чекать, риджидбади ебать, рэйкастики кидать и всё такое. Хуеву кучу возможностей они не используют. Вот, например, захочешь ты себе упросить жизнь и автоматизировать рутину, а нихуя не знаешь как использовать Editor. Потому что про него вспоминают единицы ютуберов. Даже использование того же OnValidate я видел только в одном видео. Это, конечно, не означает, что если ты залпом въебёшь всю документацию, то точно всё запомнишь и сразу начнёшь хуярить как царь. Но очень может быть, что ты наткнёшься на несколько методов, функционал которых ты раньше потом и кровью велосипедил, и от которых скажешь "ебать, а что, так можно было?"
>VisionUtility >class in UnityEngine.AccessibilityLeave feedback >Description >A class containing methods to assist with accessibility for users with different vision capabilities. >Static Methods >GetColorBlindSafePalette Gets a palette of colors that should be distinguishable for normal vision, deuteranopia, protanopia, and tritanopia. Ммм, уже чувствую, как растет понимание движка. Или мануал, про то как скрипты добавлять и компоненты настраивать?
Нет, мне нужна не инфа по отдельным частям, мне нужно усвоить как это все вместе использовать. Т.е. не учить словарь и грамматику, а пожить год в среде нэтивспикеров, если проводить аналогию.
>>599078 Хватит выебываться своим Даннинг-Крюгером.
>мне нужно усвоить как это все вместе использовать Использовать то, не знаю что. Пиздец, зумерки реально ебанутые.
Что "вместе использовать"? Никто тебя не научит делать игры вообще. Объясняю еще раз для даунов как это работает. Ты сам должен решать эти проблемы. Чтобы что-то сделать, ты должен составить план в голове "чтобы получить такое-то конечное состояние, мне нужно сделать такое-то и такое-то действие в юнити". Так как ты нихуя не знаешь какие действия ты можешь делать в юнити, ты самостоятельно не можешь решить проблемы. Поэтому тебе остается только повторять по шагам что показывает в роликах. Это не обучение, а копирование.
>>599079 >Даннинг-Крюгером. >зумерки Хватит одни и те же словечки в каждый второй пост пихать, это не добавляет убедительности.. Во-первых, о степени моих знаний о том, что можно делать в Юнити ты можешь только догадываться. Во-вторых, твое мнение я понял, хватит его навязывать. Тем более, что я о нем не спрашивал.
Всем здарова, почему 2д игры так долго делают? Там же только нарисовать спрайт, да закинуть в юнити, движок сам все сделает, ну может ползунки подвигать еще немного придется. Вон хотлайн майами делали целый год, бля. А холов кнайт сколько? Тоже долго наверное...
>>599078 А вот как все увязать вместе - этому нигде не учат. Потому что у тебя уже должны быть базовы знания. Типичный ютуб-сенсей этими знаниями не владеет, а кто владеет тому не интересно преподавать азбуку. В лучшем случае поделитсях на уровне "дорисовать остаток совы".
>>599080 >Во-первых, о степени моих знаний о том, что можно делать в Юнити ты можешь только догадываться. Эта степень знаний стремится к нулю, очевидно же. Чего еще ожидать от просмотрщика ютуба, который только СМОТРИТ, как другие делают, вместо того, чтобы делать самому, фундаментально изучать вопрос и нарабатывать опыт на практике.
>>599128 В оригинале правило 20/80, но чтобы оно заработало, нужно чтобы были готовы все необходимые вещи на 80%. Если ты реализовал пару основных фич в прототипе, то это нифига не 80%, ибо еще надо графон, звук, интерфейс и все прочее пилить. Так-то прототип за пару дней можно наляпать. Но за 10 дней ты не доведешь его до отличного состояния.
>>599145 Это пиздец какого уровня говнокод, просто солянка из анти-паттернов. Но в целом ты прав, хороший физон и управление для платформера сложно запилить, нужна алгоритмическая подготовка, есть десятки нюансов, нельзя просто взять и навесить ригид боди на спрайт.
>>599106 >Целый год геймдизайнят? Год это еще мало. Контент, геймплей, дизайн уровней. Прототип игры можно запилить за пару месяцев. Сложность в том, чтобы сделать так, чтобы в это было интересно играть.
>>599086 По опыту своей работы, могу сказать что это действительно пиздец насколько дольше, чем кажется. Особенно если вас не сильно дохуя. Графон — это пол беды. Для этого художники есть. Но и с ним проблем хватает. Дохуя времени уходит чтобы его вставить, чтобы везде всё ровно было, ничто друг на друга не налезало. Ненавижу графон в юнити вставлять, а особенно его анимировать. Но всё это хуйня. Самый ад — это правки. Сколько бы диздоков у вас не было — проект будет меняться. В процессе разработки постоянно вылезают какие-то нюансы, которые могут привести к перепиливанию большого участка кода и контента. И чтобы всё это не превратилось в башню из костылей — ты будешь рефакторить. И не один раз. И заново вставлять перерисованный графон. И интерфейс. И звуки. И да, я же говорил что после каждого нового модуля (или перепиливания) это всё надо тестить? А это опять же время, которое тебе приходится тратить. Хотя, у нас ещё и вечные войны с психологами и методистами (у нас довольно своеобразный контент, без них никак), которые постоянно свои правки вносят, и их мало ебёт сколько всего для этого придётся менять, так что не уверен что те же разрабы Хотлайна сталкивались и такими проблемами тоже. И да, хуярить 3D намного быстрее, чем 2D. И дешевле.
>>599161 > сделали за месяц В такой игре только на то чтобы сделать перемещение персонажа "как надо" требуется полгода как минимум на вылизывание. Делать игры - это сложно.
>>599235 Маня-мир. В юнити скрипт был бы точно такого размера, там кастомная физика. И на юнити бы пришлось делать кастомную, чтобы оно ощущалось как надо, дефолтная юнитическая ощущалось бы как генерик говно
>>599270 >В юнити скрипт был бы точно такого размера В юнити скрипт был бы такого размера, каким его бы написал программист. У меня конечно все скрипты маленького размера. У таких говнокодеров как ты и авторы celeste скрипты по 5к строк.
>>599234 Зависит от изначального скилла. Если ты новичок, то берись за более простые проекты: крестики-нолики там, арканоид какой-нибудь. У людей с опытом не возникает вопросов как сделать умную камеру.
>>599272 > У меня конечно все скрипты маленького размера. Потому, что у тебя нет игр, ты никогда не программировал полноценный геймплей, а то, что перепечатанный туториал с ютуба помещается в 20 строк, это нам всем понятно, можешь не рассказывать.
>>599160 >И да, хуярить 3D намного быстрее, чем 2D. И дешевле. ну да, камера сама тебе и тени, и перспективу и прочее отобразит как надо, а в 2d это все рисовать надо
Господа, я вот сейчас услышал от проф. прогера "У класса есть некие состояния, весь вывод берет на себя некий другой код" Это говорили к тому, что не надо из скрипта player выводить сразу на UI значения. И у меня нубский вопрос- как правильно передавать значения из одного скрипта в другой? Я пробовал использовать сначала просто static переменные, лол. Потом научился передавать сам скрипт. Сейчас вот пытаюсь понять интерфейсы и синглтоны. Но не догоняю пока. Наверное вопрос платиновый и гугл знает лучше, но скажите, я вообще в правильном направлении копаю?
Как правильно передавать значения между классами это весьма абстрактный вопрос.
В случае с UI примером, можно пользоваться ивентами. В игроке у тебя есть ивент public event System.Action<float> OnHealthChanged;
тригеришь этот ивент из какой-то внутренней функции обновляющей хп или из сеттера проперти,
Есть так же скрипт PlayerUI, который на OnEnable подписан на ивент игрока (не забудь отписаться на OnDisable) m_PlayerReference.OnHealthChanged += UpdateHealthUI;
и реагирует на него фунцией а-ля private void UpdateHealthUI(float health) {} которая что-то там делает.
В итоге весь вывод состояния (а точнее изменения состояний) таки берёт на себя другой класс, о существовании которого класс игрока даже не догадывается (и ессесна не контролирует).
Можно это всё ещё сильнее абстрактировать при желании и сделать UI елемент-хелсбар которому только и нужен реф на носителя IAlive (интерфейс всех живых - имеющих ХП болванок). Но у задающего вопрос, как мне кажется представления о композиции нет, так что похуй.
Нет уж, дружек, никогда не программировал полноценный геймплей тут ты. твои соло огрызки не в счёт Если ты считаешь что скинутый код сниппет это норма, то ты как раз и являешься представителем ютуб туториал макак которые считают что от сложности код маштабируется только в длинну.
5 блядских тысяч строк отборного говна никак не взаимосвязаных друг с другом. Класс должен выполнять одну очевидную функцию, в данном примере же они решили впихнуть сюда хендлинг всех возможных контролов, тут у тебя и передвижение, и прыжки и вол джампы и даже какие-то специальные абилки доступные только наличием каких-то специальных предметов в инвентаре, специальные эфекты того как тебя в какой-то катсцене отбрасывает босс (!) и, внезапно, даже вообще отдельный котроллер для какого-то Star Fly State, очевидно не имеющему отношение к чему-либо из 3 тысяч строк выше.
Оболтусы которые это писали даже распилили свои испорожнения регионами (видимо что бы сворачивать куски которые им не нужны в редакторе), но не додумались что можно просто подумать больше 15 секунд об архитектуре своей игры и разбить всё это на компоненты поменьше.
Но макак типа тебя это всё равно впечатляет, мол, ебать какие боги геймдева, аж 5к строк в скрипте!
>>599409 Как ты научился всему этому? Я пробовал читать книжки по шарпу, но они или слишком простые, или слишком углубленные. Понимаю, что надо изучить разные фабрики, подробнее изучить все классы и функции, лямбда выражения и вот это всё, а еще ООП понять окончательно и блин, столько всего надо знать. Много времени у тебя ушло на это? Учился на прогера?
Я вот попробовал курс купить Unity для профессионалов | От Junior до Middle Да, ебобо совсем, многого не понял до конца, но мне кажется, что-то проясняется потихоньку.
Что вообще посоветуешь? Больше кода писать? Больше книжек читать? Или всё вместе, еще присыпать бессонными ночами и тогда может быть месяцев через 6 у меня начнет что-то получаться нормальное не вырвиглазное?
>>599415 О, вот я с тобой согласен. Но по сути у них видишь, всё работает. Игру делали всего 2 человека. А написание хорошего кода требует больше времени, как мне кажется. А они решили поступить просто- экономят время на коде и отрабатывают геймплей. Поэтому игра и стала такой хорошей. А не из-за того, что там код в 150 абстракций обернут. Но это опять же моё мнение новичка. Если есть большая команда то конечно, поставить спец программиста и пусть пишет идеальный код. А когда там всего 2 человека, им же важнее геймплей отработать и иметь стабильный простой скрипт.
>>599421 Ну я вообще о событиях недавно узнал только, хотя уже почти год программирую потихоньку, лол. Как-то без них обходился. Недавно еще интерфейсы начал изучать, но пока не вьехал, как их использовать правильно.
>>599415 Но их игра стала игрой года, они теперь могут не работать остаток жизни. А ты мимо-программист, сосущий хуй за копейки. Тебя правда греет мысль, что ты что-то там шаришь в архитектуре? Какая разница, что у них не идеальный код, важнее, что получился хороший продукт. Игры создают не для того, чтобы потом игроки сидели и охуевали "ебаать, да там ни одного файла больше 50 строк, все разбито на компоненты, ебать там архитектура". Да всем похуй на это. Главное - конечный продукт. Вылизанный код не сделал бы игру лучше, он только убил бы кучу времени и игра могла бы выйти позже или вообще не выйти. Так что не еби мозг, всем поебать на твою архитектуру ровно до тех пор, пока в ней не возникла острая необходимость. Ты бы еще до хелло ворлда доебался, что там паттернов мало, абстрактные фабрики не юзаются и все в одном файле.
>>599423 > уже почти год программирую потихоньку Ну если "потихоньку" это пара часов в субботу вечером, то для года это ещё относительно нормально. Если устроишься куда-нибудь джуном, то будешь по 8 часов в день хуярить и, возможно, чужой код перелопачивать, вот там быстро придётся понять что к чему.
Не согласен. Хороший модульный код разбитый на абстракции (в здравых количествах) упрощает и ускоряет работу. Геймдев это сверх итеративный процесс, ты постоянно вносишь куда-то изменения. Чем проще твой код читается и понимается, тем проще тебе будет через две недели поймать странный баг с неправильно переключающимися стейтами или добавить специальный кейс для супер-прыжка при наличии спец предмета. Чем меньше времени ты тратишь листая вот такой пиздец на 5к строк и добавляя костыли костылям, тем больше времени у тебя есть реально заняться геймплеем.
Не имея опыта собрать проект с адекватной архитектурой конечно очень сложно, и каждый напишет пару полотен по тысяче+ строк перед тем как познает дзен (потому этот процесс в реальном продакшене обычно курируют бородатые дяди в свитерах, а не мы с вами двачеры-дегенераты), но я блядь уверен что не нужно иметь семь пядей во лбу что бы увидеть [на этапе продакшена] что скинутый код это просто пиздец и надо менять подход.
Закончили разработку, наверное, чисто на мотивации никогда больше этот понос не видеть.
Ух блядь, я забыл, игры это исскуство, а миллион мух не могут ошибаться!
Смысл в архитектуре в том что он ускоряет, а не замедляет процесс. И если бы они писали всё по-человечески - было бы больше времени посвятить реально важным моментам разработки. Потому что как ты заметил, главное - конечный продукт, а наступая самому себе на пятки добиться чего-либо как минимум сложнее.
Ну и, просто что бы ты понимал, если уж они открыли исходники и они были выложены тут, возможно в целях того что бы показать вкатыльщикам как должен выглядеть код, есть смысл обьяснить почему этот код хуёв и стремиться к нему не надо. К их успеху и решениям в геймдизайне - да. К коду - нет.
и чет орнул с сосания хуев за копейки, ты-то уж точно добился успехов вместе с разработчиками игры, ух, тоже наверное до конца жизни не будешь работать и сидя у мамки на шее строчить хуйню в юнититреде?
В команде 7 человек, продано чуть больше полумиллиона копий по цене меньше 20 долларов. Если после налогов, поборов торговых площадок и рекламы к ним добралась хотя бы треть - хорошо. Не так и много надо двачеру что бы не работать до конца жизни.
>>599428 Ну давай разберем по частям тобою написанное. 500000 20 / (7 3) = 428к долларов. Что примерно равно 28 миллионам рублей. Если представить, что ты будешь жить еще 40 лет, то это 700к в год, или 60к в месяц. Так что таки да, можно не работать до конца жизни. А если еще и с умом подойти к этой сумме, можно её и приумножить.
>>599430 > 60к в месяц Тебе разве этого достаточно, чтобы "не работать"? Не, если никогда не болеть, никуда дальше своей мухосрани не выезжать, все проблемы с жильём свалить на мамку, то, наверное, более чем. Но оно всё немного не так. мимо шёл, дальше пошёл
Вот только разрабы из Канады, и тут получать, скажем, 100к/год в большом городе это не так и много. Не говоря уже про то что разрабатывая игру, разрабы скорее всего делали это фулл-тайм, следовательно их расходы за период разработки стоит вычесть из профита.
Хватит жить в маня-мирке, далеко не все успешные инди девы выстрелили как Нотч. Они заработали себе приличные суммы, но даже не в стравнении с фулл-таймом на какой-то большей кодо-галере. В инди идут за другим.
Через какую сраку работает Input.GetButtonDown? Например выставляю Input.GetButtonDown("cancel") - ноль эмоций. Выставляю Input.GetButtonDown("pause") - работает? Что за ебанина? Настройки одинаковые. Эти быдлокодеры издеваются надо мной?
Посоны, как корректно создавать игрового персонажа в 2д: Отдельно объект с анимацией и отдельным объектом коллайдером или все в одном объекте? Проблема в том, что чарактер "застревает в текстурах" при смене анимации
Здарова. Как делать билд по wifi, точнее коннектить телефон к компу только без "adb connect" в богомерзкой консоли. И вообще, какого хрена я этот коннект могу запустить только хитровыебавшись и открыв через шифт консоль в папке с adb почему я должен для коннекта по wifi, блять, подключать телефон шнурком, а? Просто дайте мне кнопку для коннекта которая не ебёт мозги!
>>599438 Хочу одновременно клаву и геймпад подружить. Сейчас понял, что кажись не работают инпуты, которые задваиваются. Например x у меня ещё под горячий слот забита. Но всё равно, не могли сделать, чтобы это нормально распознавалось. Тупое говно тупого говна.
Проверь что бы у тебя GetButtonDown чекался в Update(), а не FixedUpdate(), у меня с таким были проблемы. FixedUpdate() скипает кадры и может скипнуть кадр где кнопка была зарегистрирована нажатой (этот метод возвращает положительный ответ равно один кадр - проебал - сасаи).
>>599426 >модульный код разбитый на абстракции Согласен полностью, но велик соблазн забить на это и писать вот такую дичь, очень уж трудно иногда вот с этими абстракциями работать. Но надо. >>599433 >В инди идут за другим Открой секрет, о мудрец
Кстати, вы играли в эти ахуенные игры от Sony на 4 плойке с использованием телефона в качестве устройства ввода? Я когда увидел, что так можно, ахуел и подумал что было бы очень круто такое реализовать. Там игра на компанию, на телефон выводятся разные штуки типа (выбери кто из твоих друзей смердящая мошонка) и всё в таком духе. Видели? Узнали? Помните? Интересно, юнька так сможет? Там телефоны вроде по вайфай к ней подключались или типа того.
>>599453 Каждый тред этот вопрос задаю сам, лол. Так и не запомнил. Обычно тыкаюсь там, пока не получится. Иногда не получается, тогда велийи мегамоск юнити треда дарит мне свои ответы.
>>599469 Tiled говорит о том, что, внезапно, спрайт надо тайлить, а не растягивать. В принципе, это даже достаточно, в большинстве случаев Full Rect даже включать не надо. Это, скажем так, сугубо для подстраховки что меш твоего спрайте — это прямоугольник, а не полигон.
Сейчас будет сложный вопрос. Пытаюсь сделать смену оружия (в данный момент с smg на пистолет). Застрял на анимациях, есть базовая анимация ходьбы с smg, к ней я подмешиваю позу с пистолетом (через слои аниматора и маску по верхней части туловища). В итоге поза игрока с пистолетом кривая, смотрит в бок (смотри gif), хотя в отдельных анимациях ориентация вроде настроена нормально (смотри картинки). Пробовал крутить Offset в Root transform rotation - не помогает. Все анимации если что с mixamo. Куда копать?
Короче такой расклад: Есть компонент, который отвечает за горизонтальное движение персонажа. Есть компонент, который отвечает за какое-то особое движение (рывок, например) Допустим, в компоненте горизонтального движения есть булева переменная, которая определяет, разрешено ли горизонтальное движение для персонажа. Как корректно менять эту переменную из других компонентов? Вариант 1: Просто задавать ей значение через сеттер (свойство) Вариант 2: Сделать нотификацию через систему ивентов (компонент горизонтального движения будет подписчиком)
>>599486 >Не уверен что поможет, но попробуй на аниматоре ебануть Apply Root Motion На компоненте галочка стоит, за счет него передвижение персонажа работает. >>599488 >Да и так норм, че ты Пытаюсь сделать правильно... Есть высокий шанс, что через полторы неделе выходить на работу юнити программистом.
>>599495 > На компоненте галочка стоит, за счет него передвижение персонажа работает. Тогда в настройках импорта модели в анимациях ищи что-то про position и rotation, точно не вспомню, давно это было
>>599409 >m_PlayerReference.OnHealthChanged += UpdateHealthUI; >В итоге весь вывод состояния таки берёт на себя другой класс, о существовании которого класс игрока даже не догадывается Еще бы UI не знал о классе игрока и было бы как надо.
>>599432 >Не, если никогда не болеть, никуда дальше своей мухосрани не выезжать, все проблемы с жильём свалить на мамку, то, наверное, более чем. Для этого 15к достаточно, хотя откуда москвобляде знать
>>599484 Отбой, я пригляделся с лупой, с позой все ок, оружие криво было повернуто, уже поправил >>599496 >Почем оплата, если не секрет? Могу сказать, что я запросил на 30% меньше того, что я мог получать в веб разработке (но там есть значительный опыт).
>>599496 Работаю в мухосрани, работаю год, за свой юнитидрочинг получаю 50к. Постепенно перекатываюсь в прикладные вещи, потому что юнити-макак за кодеров особо не считают другой хуй
>>599532 Я начал проект с попыткой сделать всё на ЕЦС, начал просто по фану сетевое приложение - юнити ецс и сервер дотнет с самописным ецс, чтобы глубже осознать концепцию, так сказать. Начал скатываться в момент, когда понял, что не нужен ецс для одиночных компонентов - тот же контроллер камеры или персонажа. Создал отдельные классы, не монобех, просто подписанные на события апдейтов. Потом понял, что мне нужен объект, который будет кешировать ссылки на компоненты. С моей колокольни получилось, что дата ориентед подход нужен, но ецс говно.
>>599587 все локальные переменные "создаются" в момент вызова функции в стеке, у каждой переменной фиксированный адрес. Где ты их объявляешь не имеет значения
Кстати, а как вообще работает Update? Я правильно понимаю, каждый раз, когда вызывается Update, то он проверяет все If и else в скрипе? Но это же затратно очень, да? Хотя я хз как по другому сделать скрипт тогда.
Вообще пиздос маленько охуеваю с этого ецс. Создал ентити, добавил компонент. Логика ецс - должен у тебя ентити дойти из точки А в точку Б, так ты добавь в точке А компонент "мув2Б", а в точке Б удали его к хуям. Но логика архитектуры юнити не такая, низзя удалять компоненты и добавлять, ато пиздец и 3 фпс. Добавляем компонент "мув", схороняем ссылку на него, в нём одна переменная велосити. Ну и служба "мувмент", которая чекает и двигает. Шатаем велосити, пишем в дебаг - велосити шатается. Объект не двигается. Чекаем в службе велосити - велосити не шатается. Закешировалось, бля. Здесь уточню, логика ецс - когда изменяешь компонент, пишешь new Component { var = value}, кеш-то сбросится. Но логика шарпа не такая, мы ж не должны каждый раз создавать структуры. Так вот через new всё работает. А через шатание по ссылке сосите хуй, пожалуйста. Берём шатаем велосити по ссылке и сходу SetComponentData компонента мув и пишаем в неё ссылку на мув, без new. То есть пишем a=a, по факту. Работает.
>>599588 >все локальные переменные "создаются" в момент вызова функции в стеке, Не все, зависит от типа. Сложные типы могу и в heap идти, лишь референс на стеке
>>599601 > Само собой зашквар. Выноси всю эту херню за циклы. Был бы в юнити шарп - таких проблем бы не было, но у нас древнее говно мамонта МОНО. Хуету сморозил.
>>599605 Не используй unsafe никогда в Юнете. Там с++ база может двигать вещи местами и ты можешь нехуева так акесс вайлануться.
>>599626 И что это доказывает? Ты пытаешься найти способ сделать игру вообще без аллокация данных? А где ты их будешь хранить? В astral plane? Курс информатики пройди и возвращайся через годик-два с базой CS
>>599626 >что быстрее, копировать память 1000000 раз или не копировать память ты ебанутый? разберись уже в терминологии. ты создаешь локальную и присваеваешь ей значение. это 2 разных вещи. Тебя это интересовало? Нужно или не нужно выполнять лишние операции в цикле?
правильный тест Vector3 test; for (int i =0; i < 1000; i++) test = new Vector3(1,1,1);
for (int i =0; i < 1000; i++) var test = new Vector3(1,1,1);
>>599629 Да, я куда-то не туда в мыслях забрел, сначала так и делал, а потом подумал, какой смысл одной и то же переменной присваивать, а это и интересовало изначально анона.
>>599638 При нажатии один раз ТОТЧАС ЖЕ test.x = 9999999 станет. Если ты хочешь, чтобы при нажатии один раз test.x каждый фрейм на единичку больше становился делай корутину. В начале корутины ставь проверку на то, бежит ли уже экземпляр этой корутины, внутри цикла ставь yield return null
>>599435 Я это говно через словарь-посредник делал + через него же байндинг кнопок куда хочешь. В словаре каждому NewCode в ключах (твои pause и cancel) соответствует лист KeyCode'ов в значениях, потом чекаю на нажатие всех кнопок из листа, и если да, то выдаёт тру.
>>599617 Есть разница между значимыми и ссылочными типами. Значимые типы создавай в цикле, хоть усрись. Память под них выделяется в стеке один раз за запуск приложения (а потом просто адреса переназначаются, если это нужно) и их объявление ни как на производительность не влияет. Значимые же типы, совсем другая история. Память под них выделяется в куче, потому каждое такое объявление ведет к новой аллокации памяти каждый раз,когда этот кусок кода выполняется. В твоем примере ты выделяешь память под массив, который является ссылочным типом. Потому у тебя и и происходит пиздосий с производительсностью. Попробуй заменить свой массив на любой значимый тип (int, float, bool etc).
>>599671 >у тебя и и происходит пиздосий У меня не происходит, я так не делаю никогда. >заменить свой массив Давай на строки? Вот хочу я и всё, мне на дваче сказали, что можно так делать, какая-то умная хуйня про аллокацию и всё такое. Ну или второй вариант, аж юнити перезапускать пришлось.
>>599743 Я корутинами иконки по интерфейсу двигаю, во все стороны по своей собственной корутине и ускорение через запуск нескольких корутин в нужном направлении разом. Процессор пока не сгорел.
>>599759 Поясните неофиту, чем под капотом шарпа List<BlaBla> MamkuEbal = new List<BlaBla>(); отличается от var MamkuEbal = new List<BlaBla>(); И так по инициализации понятен тип, разве нет? Мне наоборот решарпер постоянно говорит, мол, не еби мозги, юзай var Не надо его слушать?
>>599883 Нет, не слушай всяких долбоёбов с двачей, для шарпа вообще похуй, что ты пишешь - вар или тип. Он всё равно сделает по-своему. Хотя я вот вар не использую, потом смотришь в код и сразу ясно, что в переменной должно быть.
>>599887 О, спасибо, а я-то уж думал там это как-то на производительность может влиять, лол Так а в чём тогда претензии, если похуй? Только в том, что по левой части сразу не понятно что там объявлено? Или типа моветон?
>>600025 Пиздец вы тут ебанулись. var это чисто синтаксический сахарок, чтобы не писать MySuperList<MySuperClass> a = new MySuperList<MySuperClass>(); Вместо этого пишешь var a = new MySuperList<MySuperClass>(); И экономишь себе 5 секунд времени, всё. Типизация никуда не пропадает, компилятор знает тип по правой части выражения. Это нужно чтобы не дублировать два раза тип. Всё. Ни типизация, ни производительность никак не меняются. Внутреннее представление у обоих этих примеров будет одинаковое. А вы тут просрались на десяток постов как дауны.
>>600058 написано же, shit. Тебе внутри метода в принципе не нужно знать конкретные типы объектов. Типы нужны конпелятору. Зависимость от конкретных типов это все последствия процедурного мышления. Ты рассматриваешь переменные как данные, а не как объекты.
Наверняка у тебя бы там был какой-нибудь код shit.x = 10; shit.collection.Add(new Object()); и т.д.
>>600058 Так в таких случаях не надо, мелкомягкие же все расписали
>// When the type of a variable is clear from the context, use var >// in the declaration. >var var1 = "This is clearly a string."; >var var2 = 27; >var var3 = Convert.ToInt32(Console.ReadLine());
>Do not use var when the type is not apparent from the right side of the assignment.
>// When the type of a variable is not clear from the context, use an >// explicit type. >int var4 = ExampleClass.ResultSoFar();
>>600068 Потому что переменные и есть данные, сейчас же дата драйвен кодинг в тренде. Если выбирать между array of structs и struct of arrays, я возьму второе. >shit.x = 10 Shitter.AddShit(shit, shitsCount); Надо же отслеживать обновление данных, события вызывать. Можно, конечно, через геттеры, но тогда классы будут длинные, не особо люблю такое, лучше менеджеров наворотить.
>>600086 Значит, иногда вар всё-таки плохо. Но плохо не для конпилятора, очевидно, а для самого кодера.
>>600086 >Do not use var when the type is not apparent from the right side of the assignment Ага, а когда тип возвращаемого значения потребуется изменить на другой, то придётся менять его во всех консумерах которые его используют. Охуенный совет конечно.
>>600086 совет имеет смысл только для встроенных типов. если кто-то не знает что возвращает метод, то и тип ему ни о чем не скажет. короче, пиши var и не выебывайся. на практике знать возвращаемые типы ни к чему.
Аноны, меня наебывает юнити? Профайлером прохожусь по андроид билду на своем телефоне, профайлер показывает, мол, все отрисовывается быстро, около 100 фпс, хотя на телефоне явно виден просед до ~25 фпс (тоже самое говорит и средство диагностики, встроенный в ось андроида). Меня наебывает профайлер? Или это я долбоеб?
Модульные уровни - хорошо или плохо? Хуярить пол и стены одним мешем всё-таки хуже, чем делать модульные? Occlusion culling не работает при таком раскладе и всё добро честно просчитывается. Или делать модульные меши, но с одним текстурным атласом на все объекты?
>>600053 Сразу видно маня-петуха, который в жизни не работал в командном проекте, а лишь налрачивает спагетти-код в одно рыло. Твои петушрные var-ы хуй разберешь к какому типу данных принадлежат вот так с ходу. Пернул тебе под нос.
>>600242 Модульные уровни через бандлы самое заебися. Чтобы все охуенно было еще держи в уме, что батчинг на статические объекты (пол, стены и т.п. что помечено ыладком "статик") выполняется при вертекскаунте не более 900. Этого вполне достаточно для модуля.
Кароч два вопроса. Собираю меш фильтром несколько объектов в один меш, делаю объект с меш фильтром статичным, тени запекаются, но меш перестает бросать свои тени. Если убрать галочку в меш рендере возле "статичные тени", то все показывает как обычно (но тени не запекаются в этом случае?). Как сделать так чтобы меш фильтр бросал тени? И второй. В билде тени перестают быть мягкими и становятся очень грубыми, как будто soft shadows выключен. В едиторе все в порядке. Использую lightweight pipeline renderer. Чому так?
>>600483 Вот ты сложную задачу задал отбитому юнитидебилу. У него при слове var сразу глаза кровью наливаются, как у того быка, и начинает бормотать себе под нос: гондот гондотю гондотиры пидарасы хуан чмо
>>600483 Петух малолетний, где они там советуют вар использовать? Они, наоборот, не рекомендуют его использовать, особенно там где возвращаемый тип неочевиден, еб твою мать! А то что ты там накукарекиваешь var-ом при объявлении переменных, только путает людей, тухлодырец ты проткнутый.
>>600634 Хуесосина двухизвиленная, тебе, бляди тухлодырой в голову не приходит, что на практике свободных от контекста данных не бывает, кроме как разве что в дебаг-логах каких-нибудь обоссаных, где все на вывод идет сразу?
Пидрилы, блядь, ебаные, мозгов ни на что не хватает кроме как везде пихать сови обоссаные var, даже в свои анусы. А то чот код нечитаем становится, вам, кириллам проткнутым, невдомек. Обоссал тебя дауненка.
var bPlayerActive = true; var iEnemyCount = 10; var fPlayerHealth = 98.99f; var v3PlayerPos = new Vector3(2f, 13.3f, 10f); var sPlayerName = "Yebanashka";
>>600648 Хуй соси, даун, когда у тебя десятки полей, пока ты среди десятков варов найдешь нужное поле, уже нахуй второе пришествие настанет, еб твою мать, дебил ты ебаный. Не знаю как унтерменши, а люди читают слева на право, поэтому быстрееиискать переменную с приписанным типом данных. Конечно, для хеоллоуворлдщиков обоссаных типа тебя, это, допускаю, не актуально, но в крупных проектаз только так.
>>600651 То есть не осилишь. Ну так и иди нахуй отсюда, говно не профпригодное, твой уровень - свиньям хвосты крутить. Альзо >на практике На практике я таких как ты ебалом в толчок заталкивал.
>>600658 Ты заебал. Проблема высосана из жопы. Просто не существует такой проблемы, не нужно знать типы локальных переменных. Они ни к чему. У тебя есть имена функций, имена переменных. Используй их для документации кода. Я уже писал что само по себе знание типа Petuh petuh = new Petuh(); ничего не значит
>>600420 Вряд ли всё дело в юнити, там бы хватило на самом деле пяти файлов. Я же учитываю только папку "Code", а не все пакаджи.
>>600490 Мне норм. Это только это окно такое, так оно светло серое на темном фоне.
Куб имеет наглость пересылать своё положение по сети во время движения. Так что, 16 папок, 43 файла ответного дотнет приложения. Я получаю позицию куба.
>>600653 var binUmnick = 255; >>600652 >>600654 Только один вопрос: 100500: for (int i = 0; i < 100; i++) { 100501: playerHuiZnatSho += Player.getHuiZnatSho(); 100502: } Давай, определи мне тип хуйзнатшо.
>>600651 > люди читают слева на право, поэтому быстрееиискать переменную с приписанным типом данных Ради такой мелочи создавать дублирование информации (т.е. типа) и тем самым усложнять модификацию кода в дальнейшем? Нет, спасибо, сомнительное это удовольствие. >в крупных проектаз Вот как раз внося большие изменения в крупный проект и увидите воочию какую могилу себе вырыли.
>>600773 Далее, типов данных по пальцам пересчитать, каким надо быть долбаебом, чтобы, например, сначала от фонаря выбрать целочисленный тип, а потом, скажем, с плавающей точкой. Да даже децималы всякие с лонгами - оин хуй, если ты такой долбаеб что не в состоянии загодя определить назначение той или иной пепеменной, то тебе не программированием надо заниматься, а посасывать хуй за свободной кассой.
Я, конечно, понимаю, нынче высралось поколение двухизвиленных долбоебов-зумерков, у которых уже мозгов не хватает даже на два хода вперед думать, либо это 30-летние вкатывальщики, но это еще не повод жертвовать внятностью кода в угоду сваливания полномочий на компилятор самостоятльно назначать тип данных просто потому что у обоссаного кодерка не хватило мозгов понять нахуя ему нужна эта переменная в программе. Не говоря у же о том, если кому-то со стороны придется работать с этим говнокодом.
>>601065 >типов данных по пальцам пересчитать, каким надо быть долбаебом, чтобы Я продолжаю усиленно нипанимать логику залётного ентерпрайзника с крупными проектами: var listOfKnownEnemies = RaycastStorageClass.SelectMetod<EnemyClass>(); vs list<EnemyClass> KnownEnemies = RaycastStorageClass.SelectMetod<EnemyClass>();
>>601065 >если кому-то со стороны придется работать с этим говнокодом.
Давайте будем честны, никому не обосралось работать с чужим говнокодом. Большинство тут сидящих соло пилят что-то в стол и иногда высирают это в стим, ни о какой работе в команде не идёт речи. И хуевертить там они могут что душе вздумается, лишь бы сами понимали свои простыни.
Я ебнутый или как? Минутка тупых вопросов от ньюфагов У меня есть ХП систем. В скрипте в апдейте я проверяю:
if (HP == 0) ты умер;
Вопрос: нормально ли в if апдейта проверять такие штуки, типа умер игрок или нет, и можно ли изьебаться и не делать такие проверки каждый кадр? Это ж влияет на производительность, наверное? Или не влияет и я ебнутый и можно спокойно в if апдейта проверять всякую хуйню?
>>601460 Если обьект один то в апдейт не сысь засовывать проверки, если обьектов дохера, в их лучше не пихать. Так же если сомневаешь в производительности и то как нагружается система от проверок, включаешь вкладку профайл и смотришь загрузку.
>>601469 >Если обьект один то в апдейт не сысь засовывать проверки, если обьектов дохера, в их лучше не пихать. Окей, спасибо, успокоил :3 >>601469 >включаешь вкладку профайл и смотришь загрузку Ох, точно, забыл немного об этом!
>>601460 Почему какая-то сторонняя система знает о параметрах персонажа игрока? Инкапсулируй, сучка! Персонаж сам считает свои ХП, и посылает сообщения о своём состоянии, на которые подписаны, например, ХУД, ему прилетают сообщения с пакетом данных, хп, мана, стамина, хуйнина; и система гейм-овера, ей прилетает сообщение "игрок умер" - она активируется и показывает экран смерти. Что может быть проще и понятнее?
>>601079 А теперь продолжим мысленный эксперимент и вместо одного поля списка енемикласс, зададим пару десяток полей разных классов, где указание типа/объекта будет справа. В такой куче параши искать нужное поле я ебал твою мамку.
>>601100 Хм, маньч не лучше ли изначально все делать правильно? Сегодня ты инцел-одиночка и колерок-красноглазик, а завтра найдешь тягку мечты, которая взглянув на твой говнокод, уйдет к ерохе, который кодит по-людски.
>>601631 >Почему какая-то сторонняя система знает о параметрах персонажа игрока? Вот у меня, например, все системы хорошие и секретов друг от друга не имеют! Наша сила в доверии!
>>601631 Я ебал делать отдельные методы для смены одной-двух переменных, которые затем всё равно надо возвращать через ещё один метод назад. Прямой публик сокращает количество кода в разы.
Вообще охуеть, зачем юниту самому своё здоровье регулировать? Как вы собрались для сотни юнитов, например, серьёзные вычисления статов относительно друг друга делать? Допустим, шкала инициативы - куда вы её инкапсулировать собрались, где инкапсуляцию внутри юнита делать? Юнит это вам не предмет, который никому кроме одного другого класса не нужен, это ёбаная херь которая со всеми остальными системами бодается. Даже если распилить юнита на куски и засунуть статы для шкалы инициативы в один кусок, статы для боёвки в другой, статы для баффов и дебаффов в третий, всё равно необходимо это говно смешивать, а потом для уменьшения количества головной боли и для понятности кода в том числе необходимо открывать прямой доступ к полям и свойствам.
>>601670 У нас нет будущего, маня. Все уже гниём. Перспектив нет, тяны не будет никогда, гроб гроб кладбище, и ты тут ещё сидишь и указываешь нам, какие мы пидоры что конвенций/рекомендаций программирования не соблюдаем при пилении в стол.
>>601670 Ну во первых что значит правильно? Для меня правильно как мне удобно и если оно работает збс. Для больших студий правильно по другому, что мне неудобно и не нужно. Во вторых, ТНН. Я потом продам свою игру за 100500 миллионов в стиме и ещё десяток таких шаболд будут готовы прыгнуть мне на хуец, увидев мои доходы.
>>601675 Лол. >>601589 О, прикольная система, попробую так сделать. Я правда до сих пор не особо понимаю как именно следует пользоваться Get и Set (хотя это самые основы, но я как-то без них обходился всё время) >>601683 Всплакнул. А я думал вот выпущу игру и сразу тяночки появятся, ых.
Всем здарова. Хочу сделать такую штуку. Суть такова... Шаблон для создания персонажей. Если подойти к этим персонажам и нажать кнопку - у них над головой будет появляться окно с текстом. В этот шаблон я хочу перетаскивать анимацию и текст сообщения (опционально несколько сообщений которые вызываются по порядку). С чего начать...?
>>601708 жиза. Бесит. Но, кстати, лично я никак не могу принять, что в C# методы пишутся с большой буквы. Мне кажется более логичной система именований джавы, где классы - с большой, а члены классов (ну, методы, поля) с маленькой.
>>601842 Rider самая удобная и подогнанная специально под юнити. Сами разрабы на ней сидят. >>601844 >vs code Парашная параша с возможностями уровня блокнота (обычного, не ++). VS и Rider лагают только на твоём ай3 два ядра два гига, который тебе в 2011 купила мамка для учёбы.
>>601693 > Я правда до сих пор не особо понимаю как именно следует пользоваться Get и Set (хотя это самые основы, но я как-то без них обходился всё время) Всё очень просто сеттеры и геттеры нужны для очень простой вещи:
Сеттер вызывается при установке значения свойству и ты можешь проконтролировать корректность установки значения. Например, есть у тебя свойство MyHitpoints и в сеттере такой код: if (value <= 0) GameOver() else if (value > 100) MyHitpoints = 100 else MyHitpoints = value; с таким сеттером ты можешь быть уверен, что хитпоинтов у тебя всегда будет не больше 100, даже если игровая логика насчитает ему аптечками +100500, а так же если она туда же насчитает уроном ноль или минус, то автоматически вызовется метод гейм овер.
Геттер нужен при обращении к свойству и ты можешь контролировать, какое значение получит вызывающая это свойство сторона. Например, ты обращаешься к свойству MyCamera, а у него в сеттере if (MyCamera == null) MyCamera = GetComponent<Camera>; return MyCamera; и ты сразу получаешь камеру. Причём, при первом обращении юнити достаёт компонент камеры (здесь я привёл без обработки ошибок, но ты можешь добавить таковую в геттер) а в последующие обращения компонент уже получен, хранится в свойстве и выдаётся сразу.
>>601862 Спасибо большое анон, я о таком не знал совсем! Я просто в функции "public void takeDamage(int damageAmount) {...}" делал проверку на смерть, мол если <= 0 то умер, лол. А оно вон как можно. Круто очень. Спасибо.
>>601877 >нажимаете ctrl-s На доп кнопку на мыши кодируй последовательность нажатий у меня так когда на одном мониторе был сохранялось и юнити открывалось и запускалось тут же.
https://docs.unity3d.com/ScriptReference/Resources.html Это что за ебанина? Т.е. чтобы что-то загружать из кода, это что-то должно быть в специальной папке? При том, что как бы уже есть Assets. А сразу предупредить нельзя было? Пиздец, в такие моменты не хочется продолжать пользоваться движком.
>>601943 Ну так в коде и референси. Если ты дебил тупой пыфтаешься декомпильнуть Ассембли и оттуда залезть в ассетс то сразу скажу ты нахуй тут пойдешь.
Есть куча мелких обьектов. На них была проверка в Update. Изменил эту проверку на вызов UnityEvent, который еще в инспекторе показывается как такая ебанина. Я молодец? inb4: сосу конец
>>601943 >Короче нужно подключить неймспейс эдитора и использовать AssetDatabase, ну спасибо что хоть так. Бля, как жопой чуял. В билде конечно же не работает. Пиздец конечно, придется над струкутрой проекта измываться. Начинаю понимать откуда в геймдеве такое отношение к пользователям движка.
>>601962 >референси из ассетов. А если мне динамически в коде надо решать какой именно префаб загружать? Вообще я охуеваю, такая простая банальная вещь как загрузка ресурсов в юнити превращается в эпопею. Охуенный движок, где половину вещей можно только дрэг-н-дропом в эдиторе делать.
>>601964 Через что загружать-то блять? Есть Resource.Load, но чтобы он работал, нужно чтобы префаб лежал в папке Resources. Что значит, придется хуй пойми как переделывать структуру проекта. Есть еще AssetDatabase, но оно только в эдиторе работает. Как еще можно получить объект по указанию пути?
>>601965 >Есть Resource.Load, но чтобы он работал, нужно чтобы префаб лежал в папке Resources. Так точно.
> Что значит, придется хуй пойми как переделывать структуру проекта. СУКА НЕТ БЛЯТЬ RESOURCE LOAD ВООБЩЕ ДЛЯ ШЕНАЙНИГАС В ЕДИТОРЕ ТОЛЬКО ПРИДУМАН ОН ДЛЯ ФИНАЛЬНЫХ БИЛДОВ ВООБЩЕ НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ
>>601963 Ебать ты пизданутый, конечно что угодно превратится в эпопею, если справку не читать. >>601967 Ну да, для билдов нужна папочка StreamingAssets.
>>601967 Але, а AssetDatabase для чего тогда? Resource.Load именно для билда, смысл этих папок в оптимизации, так в доках сказано. Но это порнография, создавайте файловую структуру проекта внутри файловой структуры проекта, да проще тогда просто сразу держать все в Assets/Resources.
>>601968 В любом нормальном движке можно загружать ассет из кода без танцев с бубнами.
>>601965 Корень твоей проблемы в том, что ты думаешь об Assets как о простой папке с файлами, хотя на самом деле это нихуя не так. Это система по учёту данных, которая подгружает когда нужно и выгружает когда можно. Её не ебёт, что ты хочешь "все префабы из той папочки" - она хочет конкретные, блядь, референсы на объекты. На практике, когда возникает такая необходимость, есть два стула: либо на этапе эдитора нужные ссылочки автоматически собираются с помощью AssetDatabase (правильно) и сериализуются в массивчики, либо используется магическая папочка - Resources (легче). Вот это именно та папка, о которой ты говоришь в других движках. Данные, которые ты сам, лично контролируешь - в т.ч. выгружаешь. Стало понятнее, дорогой друг?
>>601986 >она хочет конкретные, блядь, референсы на объекты. Путь к файлу - недостаточно конкретный референс? Ну ок, буду держать все ассеты в Resources, надеюсь пару мегабайт юнити осилит без всяких стримингов и сборок загрузить.
>>601996 >Enjoy your 10fps and 5m load times>>601998 С чего бы у меня было 10 фпс из-за загрузки маленького спрайтика пару раз за игру, например? >>601998 >Нет, иначе бы при перетаскивании из папки в другую весь сетап нахуй бы ломался. Ну, наверное это для юнитигоспод большая проблема, а если я негодую от невозможности через код загружать ресурсы напрямую из файловой системы, наверное мне привычен такой воркфлоу.
>>602004 >С чего бы у меня было 10 фпс Ну из-за спрайтика пару раз за игру бы не было. Но по факту все загружали чуть ли не "топ 100 сочных негров 2011 HD" с порнолаба. Поговаривают, что это главное причина почему о юнити в народе ходят слухи как о лагодроме.
>>602006 Псст, в C# есть System.IO, в который есть класс работы с файловой системой. Это зависит от того, что ты собрался загружать. В юнити есть методы для создания ресурсов вроде Texture2D.LoadImage(), Sprite.Create(). Загрузить fbx или шейдеры будет сложнее.
>>602004 Если ты дохуя костылебоярин, то никто не мешает тебе грузить все ресурсы из файловой системы, и вообще забить на понятие ассетов, только вот нахуя?
Если по какой-то причине ты брезгуешь использовать GUI, и все делаешь через код, то запихай все свои ассеты в бандл и грузи их из него. Хоть не так тормозить будет, как если ты будешь ресурсы использовать, которые действительно легаси и лучше дальше прототипов нигде не использовать.
>>602012 Для небольшой 2D игры, я думаю, нормально будет. >Если по какой-то причине ты брезгуешь использовать GUI Для дизайна, например указывать ссылке на интерактивные связанные объекты на уровне, или для каких-то уникальных событий - удобнее в редакторе, не спорю. В других случаях это не только отнимает время на лишние телодвижения, но и ухудшает целостность кода, когда часть внутренней логики зависит от каких-то внешних факторов, определяется в другой среде - в коде ведь даже не видно, что за префаб установлен, и установлен ли вообще. Это не правильно, и к тому же приходится переключаться туда сюда, открывать эдитор.
>>602014 Медленнее распаковка (особенно на мобилах), больше памяти жрет. Еще вдобавок ко всему всё содержимое этой папки пакуется в билд, даже если фактически не нужно (особенно весело это если в проекте есть пачка third-party штук из стора, хранящих свои ассеты в ресурсах)
>>602018 Хардкодить пути к ассетам в коде тоже не самое мудрое решение. Если следовать подходу, который предлагает движок, никаких особых проблем с использованием ссылок и загрузкой ассетов быть не должно. Большая часть явно референсится в сценах (учитывая что их можно грузить аддитивно), остальное можно запаковать в бандлы (да и сцены можно туда же), и работать с ними как с обычными ресурс-паками.
>>602063 Я ScriptableObject'ы использую. В идеале, эдитор скрипт, который создаёт скриптейбл для каждой категории объектов и сам заполняет. Нажал кнопочку, все объекты из папочки залились в массив и готово. Пик для ебанатов от ебаната.
Есть ли в юнити такая штука которая увеличивает спрайт по соседним пикселям (как в фотошопе) чтобы его не размывало? Видел какое-то видео unity pixel perfect, но там о другом вроде
И у меня по итогу выполнения возник вопрос. В ходе урока, автор делает несколько доп классов для генерации объектов, сохранении и прочего. И такой подход существенно отличается от того, что я видел раньше в различных видеоуроках (как от самой Unity, так и от сторонних разработчиков).
Имеет ли смысл вообще так париться для генерации объектов, делать доп.классы и тд.
Насколько понял я на данный момент, автор использует язык на полную катушку. Имеет ли это смысл для большей производительности в более крупных проектах.
Например, функции сохранения и загрузки в уроке, почему бы не использовать уже какие-то готовые решения (сам не знаю, но уверен, что они есть).
>>602208 > Имеет ли смысл вообще так париться для генерации объектов, делать доп.классы и тд. Имеет. > почему бы не использовать уже какие-то готовые решения Внутри они выглядят так же. Там даже больше объектов.
>>602214 Я помню единственный момент в туторах от unity, когда делали подробные манипуляции с наследованием и переопределениями - это серия уроков про 2д top-down игру с игроком и зомби.
>>602208 По-моему, абсолютно энтрилевельный урок. Да. Нужно. Такого "уровня запарки" хватит на игру уровня гд, но для чего-то сложнее этого мало. Для обучения сойдёт. >автор использует язык на полную катушку. Ноуп. Он даже интерфейсы не использует, нет множественных наследований, да и виртуальные у него только методы, а могли быть и абстрактные классы нахуй, нет событий, объект менеджеров, экстеншенов и прочей хероборины. И близко не на полную катушку. Вон на пик глянь, это дефолтная юнити хуйня из ЕЦС. Одно <T> осознавать надо не меньше часа, а учиться пользоваться ещё дольше. Кек.
>>602231 >но для чего-то сложнее этого мало. ЧЕГО СЛОЖНЕЕ БЛЯ Он чо, свой Ассассин Крид делает? 99.99784% indie игр нахуй не нужна вся та хуета, что ты написал.
>>602231 >Одно <T> осознавать надо не меньше часа Lolwut, а использование GetComponent<T> с самого начального уровня обучения Юнити тебя не смущает при этом?
>>602233 У меня сейчас из установленных юнити игр есть только клифф эмпайр. Заглянём в код. Ух, не ассасин крид, но всё же. Вся сложная херота, о которой я писал, писалась в контексте "язык на полную катушку". Ну да, возможно, оно вам и не надо. Но, очевидно, с этим всем жить будет легче.
>>602234 Оно осознаётся, как GetComponent(typeof(T)). Чем и является по факту. Когда пишешь что-то вроде GetComponent<T>(this T ComponentData, ComponentSystem system) where T : struct, IJob это уже по-другому воспринимается.
>>602237 >У меня сейчас из установленных юнити игр есть только клифф эмпайр. Заглянём в код. Ух, не ассасин крид, но всё же. Вся сложная херота, о которой я писал, писалась в контексте "язык на полную катушку". Ну да, возможно, оно вам и не надо. Но, очевидно, с этим всем жить будет легче. Вот же тупой ретард. > 99.99784% i > https://store.steampowered.com/app/809140/Cliff_Empire/ CLiff EMpire, как и Skyline - эти самые 0, 003% тупой пездло. Если ты хочешь что-то доказать докажи что более 0,003% это нужно.
>>602240 У него там все ошибки в консоли, пусть исправляет.
>>602242 Мне предлагает за 120. Не просто, а очень просто. У них там есть переменные DULO, OBOJMA и логика в апдейтах. И геймплея кот наплакал, хотя задел интересный. Было бы заебок сделать такое в онлайне с соседями-сычами на ближних скалах. Вот ещё подороже Universim за 380 рублей, но тут уже и игра побольше, чем на 30 минут.
>>602246 >if (collision.GetComponent<Player>() != null Лично мне привычнее с нулом сравнивать. Или даже >var player = collision.GetComponent<Player>(); >if (player)
>>602451 В игре сколько персов на экране будет? Может у тебя по 100 юнитов там. Всего, наверное, не больше пары миллионов поликов должно быть на экране при hdrp чтоб и не сильно мощные машины тянули
>>602451 Для персов, если на экране их 5, разумный лимит 50к, включая шмот на них. Можно по 100к, если лоды хорошие. За всё что выше нужно ссать на ебало.
>>602459 Да все хуйню несете. Единственный способ проверить - это запустить движок и проверить. Все остальное пустые вскукареки ни о чем. Никакой игры все этот кирилл делать не будет.
>>602492 >>602505 ну так делай, лаль. по мне так уж лучше протратиться вдвое большими нервами и временем, запилив нормальную модельку, чем ебаться с полигонами в ебливом автостоле
Помогите по вопросу архитектуры. Как создать свою мини-библиотеку правильно? У меня например есть метод который возвращает всех врагов в определенной зоне, этот метод мне нужен во многих скриптах в неизменном виде. Я не совсем понимаю в каком виде это должно быть: Выделить его в отдельном скрипте как статический метод? Сделать статический класс может быть? Какие ограничения в этом случае накладываются на этот метод?
>>591908 (OP) Игра не загружает сцену. Игра на Android. Я тыкаю на кнопку, но она не переходит на новую сцену. Я только недавно начал заниматься Геймдевом и уже сломал голову почему не работает переход.
>>602707 Здесь что тогда? Нет, я не утверждаю, что это причина, но лучше не надо. Несколько лет назад какую-то программу для лепки скачивал, и она папку кидала куда-то в документы и из-за того, что имя компа было кириллицей не могла читать и падала при запуске.
>>602466 Это лучше чем высасывать из жопы абстрактное число треугольников. Фпс зависит от кучи деталей. Материалы, батчинг, производительность скриптов. Для своей игры выбираешь базовый фпс и стараешься делать так, чтобы он не проседал. Запускаешь профайлер и смотришь. Ага, на этой сцене со столькими-то моделями фпс проседает.
>>602728 Упёрся в дк, фиксишь-фиксишь, 60 фпс стабильно. Повод вздохнуть с облегчением? Разве что серануть в портки, ведь у тебя не самая днищекарта и не кор два дуо мобильный в троттлинге. Даже если у тебя всё заебись, всё равно откуда-то раздастся вскрик "тормозит!".
>>602773 Это с всинком? Это еще не говорит, что просадок. Например, твое железо тянет 100 фпс, а на сцене с просадками фпс падает до 70. Ты этого не замечаешь. Но пользователи с более слабым железом заметят. Надо без всинк тестить.
>>602791 ИМХО, понимаешь неправильно. Без компонента ...боди твой объект не влияет на физический движок. Коллайдер это всего лишь геометрия, как меш, например. Страшный грех - это статикбоди двигать.
>>602839 >Без компонента ...боди твой объект не влияет на физический движок. Коллайдер это всего лишь геометрия, как меш, например.
Доки говорят об обратном
https://docs.unity3d.com/Manual/MobileOptimisation.html >Never ever move a static collider (ie a collider without a Rigidbody) as it causes a big performance hit. It shows up in Profiler as "Static Collider.Move’ but actual processing is in Physics.Simulate. If necessary, add a RigidBody and set isKinematic to true.
https://docs.unity3d.com/Manual/CollidersOverview.html >Colliders interact with each other differently depending on how their Rigidbody components are configured. The three important configurations are the Static Collider (ie, no Rigidbody is attached at all), the Rigidbody Collider and the Kinematic Rigidbody Collider.
>Static Collider This is a GameObject that has a Collider but no Rigidbody. Static colliders are used for level geometry which always stays at the same place and never moves around. Incoming rigidbody objects will collide with the static collider but will not move it.
>The physics engine assumes that static colliders never move or change and can make useful optimizations based on this assumption. Consequently, static colliders should not be disabled/enabled, moved or scaled during gameplay. If you do change a static collider then this will result in extra internal recomputation by the physics engine which causes a major drop in performance.
>>602876 >>602869 Какой кошмар. Нахуя они это нахуевертили? Ну логически же коллайдер без тела не должен вообще никак влиять на физику. Потому что коллайдер, повторюсь, это всего лишь геометрия. В движках здорового человека, наличие коллайдер-ноды не являющейся субнодой тело-ноды игнорируется физикой.
Я хуею. Почему юнити такое говно. Почему нету нормальной документации по внутренностям их системы шейдеров. Я что, сам должен реверс инженерить их шейдерный код и догадываться как там все работает?
>>602963 Хуже террейна ничего нет. Тот долбоёб выше скорее всего писал про шейдер граф, потому что по шейдерам документация есть, а по графу нет. Но граф превью. Он охуенен, но технически слабый, ущербный, как и в уе. А кастом ноды пока не завезли, хотя обещают, но пока превью хуй дождёшься.
>>602956 >Я что, сам должен реверс инженерить их шейдерный код и догадываться как там все работает? По-моему, я где-то такой совет в документации видел.
>>602977 Рилтайм терраморфинг без фризов на полсекунды? Более адекватная сетка? Дыры, сквозь которые райкаст проходит, а не упирается в террейн? Переопределение материалов травы без ебли в жопу? А на hdrp даже ебля в жопу не спасает. Несколько материалов для террейна? Адаптивная деградация сетки? И при всём при этом террейн просто пиздец насколько тяжёлый.
>>602980 А там сабшейдер с сабпассом. Без поддержки геометрических и вычислительных шейдеров. Вообще никому в голову не приходило, что каждая нода шейдер графа делается через сабпасс сабшейдера, а 10-20 проходов шейдера на материал это многовато, никто так не считает?
>>602988 >А там сабшейдер с сабпассом Нет, там 2к строк шейдерного говнокода без возможности что-то изменить. Юнитивские материалы это полное убожество. Ты можешь или сделать unlit shader для 2д и пост-процессинга, или т.н. surface, который есть захардкоженный генератор шейдерной портянки. Все.
В том-же xenko например охуенная модульная система материалов.
>>603026 >Нет Да. Я про субноды писал. Добавил ты в граф ноду - а эта нода сабшейдер с проходом. Шейдер граф превью, он не готов, совсем не готов. Можно установить, потыкать, пользоваться нельзя. >без возможности что-то изменить Код генерируется по шаблону. Шаблон обещали дать изменить, пока фича не готова. Можно установить не из пакета, а из гита, изменить шаблон и проебать все шейдеры, которым нужен был старый шаблон. Можно делать кастомные субноды, если знаешь hlsl, но когда я тыкал в них последний раз, они были не готовы. >xenko Но это не отменяет того, что хенко хуже червя-пидора.
>>603027 Сетку с ландшафтом я и сам генерировать могу. Мне террейны нужны, а не сетки.
>>603029 >Я про субноды писал Я имел ввиду стандартный surface shader, а не shader editor.
>Добавил ты в граф ноду - а эта нода сабшейдер с проходом. С чего ты взял? Нету там такого. Там генерится что-то вроде обычного surface shader'а. В каждой ноде захардкожена строка, которую эта нода выводит в код шейдера и все.
>>602956 Ты про ShaderGraph? Он в бетке. Спрашивай свои вопросы напрямую на форуме. >>602965 >А кастом ноды пока не завезли Завезли буквально недавно (Custom Function Node).
>>603121 >буквально недавно Давно уже. Просто раньше оно называлось CodeFunctionNode и там ты скорее на шарпе писал шаблон для ноды, по которой генерировался код. И нет доступа к важным апи даже когда ты пишешь напрямую hlsl субшейдер.
Читаю тут про разные движки/конструкторы. Чтобы не выбрал, даже констракт с гамаком, все равно, рано или поздно придется писать переменные, какие-то функции, которые обслуживают игровой мир. Т.е. в принципе разницы нет. Можно сразу вкатываться в EU4, все равно везде одно и тоже. Только сразу придется синтаксис C+ учить, а не тратить время на мертворожденные языки.
>>603128 >Можно сразу вкатываться в EU4, все равно везде одно и тоже. Только сразу придется синтаксис C+ учить Если ты думаешь, что для тебя, как для полного нуба, какой-нибудь С# и С++ это "одно и то же", тебя ждет много открытий. Но на УЕ4 есть визуальное программирование, в которое для таких как ты намного проще влиться только не рассчитывай, что когда освоишься с блюпринтами, сразу перескочишь на С++
>>603153 >Но на УЕ4 есть визуальное программирование Так вы заманиваете ленивых ньюфагов в свою секту? Блюпринты это бесполезная игрушка для дизайнеров карт, чтобы интерактивные двери делать. Больше они ни на что годятся. Даже если бы эпики оставили unreal script, от него и то бы пользы было в 100 раз больше чем от всратых блюпринтов.
>>603170 >Даже если бы эпики оставили unreal script Они новый уже с января пилят, купили команду скукум скрипта и свиня писал что запиливают, но что-то нихуя не слышно.
>>603170 не ленивых нюфагов а неокученных зумеров с мышлением ГРОГ СОЗДАВАТЬ ОКОШКИ, ГРОГ ПРОГРАММИРУЕТ кто-то из них правда со временем начинает подозревать в чем наеб и соскакивают с этого хуя и идут учить настоящие языки (что от них честно говоря и требовалось кек)
>>603182 Неокученный зумер итт, так и пересел с playmaker на нормальный шарп когда заебался делать 50 кликов мышкой и 7 лагучих драгендроп окошек просто чтобы персонаж ходил и прыгал на пробел вместо пяти строк кода, ни о чем не жалею эта залупа помогла освоиться в среде юнити. А еще я охуел от возможностей ооп классов и прочих интерфейсов. Вспомнил еще ебучее - в плеймейкере онли одномерные массивы. Короче просто хотел сказать что визуальное программирование не такая уж и бесполезная вещь.
как лучше симулировать высоту на 2д гриде (скажем есть здание с 2-3 этажами): 1. несколько 2д гридов [x, y] вертикально, каждая нода с переменной h (патфайндер не будет считать маршрут всего здания, а только до лестницы к следующему этажу) 2. 3д грид [x, y, z] (патфайндер маршрутизирует на все три оси, не нужно ебаться с линкованием этажей, но насколько понимаю аллочится дохуя ненужных блоков, даже если они null?)
Что там вообще сложного в проганье? У меня самого опыт 12 лет, корочка программиста, но поверьте, программировать это несложно. К тому же вы тут все пилите несложные инди игры, а не йобы. Сложно это сценарий, графон, музон, геймлей, сеттинг, и прочее. Проганье по сравнению с этим просто отдых. Выучите следующие основы: переменные, циклы, массивы, функции и этого уже будет достаточно чтобы запилить шутер в юнити.
>>603205 сложно не само прогромирование, а проектирование подсистем, и поддержание всего говна что ты написал два месяца назад и не понимаешь нихуя почему эта блядина перестала работать
>>603205 Научиться говорить не сложно. Сложно написать "войну и мир". От того, что ты выучил синтаксис, ты не стал программистом, софтваре инженером. Ты стал в лучшем машинистом, который впечатывает надиктованный или спизженный откуда-то код.
>>603211 "Написал говна" это кодерство. Программирование это в том числе проектирование таких систем, которые легко дополнять и поддерживать. Программирование это пиздец, как сложно.
В одном чатике попалось мне тестовое задание от hr на мидл позицию разработчика.кто то репоснул https://docs.google.com/document/d/1HJLsUXklwVgaOJsnias0GoyW2i0tFmE4cae-IbUsq20/edit Я только начал изучать униту но с программированием я знаком немножко больше. Как мне показалось с точки зрения кода задача очень проста для мидла. Или она трудна и я просто не могу осознать этого в силу своих малых знаний? Я
>>603241 Наговнякать такое можно за полчаса. А потом окажется, что это для реального проекта и на самом деле требования немножко другие, так что у тебя технического долга на два дня, а надо пилить уже другие фичи. Сложность где-то на 4 из 7.
>>603255 Это фантазия специальная на алгоритмы. Есть художники которые классно раскрашивают, но построения проебывают, у них своя специальность, даже в рисовании разделяется, не говоря уже про разные области. 3дскульпторы в большинстве хуевые концептеры, про прогеров и говорить не приходится
>>603259 Так и получается. Кодеры не могут в арт. Артеры не могут в код. Так и сидят, фуфлыжно. Вместо того, чтобы объединиться и делать игры. ОП коворкинг-треда
>>603259 Не отрицаю. Но даже кодерство это творчество. Да и какое-никакое пространственное мышление развивает для ториде. >>603267 Кодерам так-то проще - либо халявные бандлы в интернете скачал, либо напроцедурил, либо ещё чего. А уж идея кооперироваться на двачах сама по себе оксюморон.
>>603255 >Без хорошей фантазии нормальный алгоритм не придумаешь. Какие ты собрался алгоритмы придумывать? На любой случай все алгоритмы уже давно придуманы, только подбирай нужные.
>>603275 Нихуя не придумано. А что придумано - за семью замками. >>603320 Описаны то, может, и описаны. Да только они и патентами защищены, и не подходят. Надо изобретать свои. Тем более, в играх.
>>603353 два дня назад спиздил из гугла астар в свободном доступе и спокойно вкрутил в свой проект (я в рот ебал сам такое придумывать, я не эйштейн) мимо