Это копия, сохраненная 27 ноября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Где шапка? Где ФАК? Хоть что нибудь? Почему так пусто и холодно......
Кто ищет, тот найден. Не будем опускаться до уровня безголовых годотеров.
Этот тред по сути бложек чтобы уютно обсудить новости мира юнити, пожаловаться на очередную проблему или показать прогресс.
Вероятнее всего ты просто очень стар, вот и помнишь
1152x632, 0:14
лол могу показать категоризацию и группировку агентов по целевому вектору движения. я вот полез в очень интересную тему.
>>588462
>Как же будет похуй, когда уже месяца три, когда она не рендерится вообще в одном из двух скриптовых рендеров?
траву то и сам рендерить можешь лол.
>Меканим написан с ипользованием SIMD библиотеки и совместим с ецс, Animation C# Jobs выкатили ещё в юнити 2018
не я не про это. одно дело вычисление блендинга анимаций и новой позиции для костей, другое дело что скелетная анимация как правило требует наличие скелета и прочее говно, что не так и просто двигать исключительно на видеокарте. вертексы там дрыгать процедурно типа хвостиков у рыбок легко, а дрыгать гуманойдом уже не так легко.
>У меня инстансируется дохуя объектов в рантайме, так что я заменил пару строк кода на код инстансирования из гитхабовского демо. Юнити это переварить не сумела, а GC вообще обезумел. Но кубы спавнятся исправно, работают быстро. Нахуй кубы.
в душе не ибу что и как ты там делал, хули.
>И что? Это говно говна по сравнению с юнитековским ецс. Всю магию без переписывания крестового ядра реализовать было невозможно. Да они, блядь, свой компонент на трансформы вешают, а ты мне говоришь, что это то же самое.
под капот загляни. сделать карту говна и совать все в биты чтобы удобно было таскать туда-сюда не так и много мозгов надо, а хранится будет все точно так-же в нескольких массивах и структах.
>>588638
делегаты на кнопках тоже ецс да? а тексты как у UI элементах то хранить?
1128x738, 0:52
да ладно помню в позапрошлом треде был занятный человек который делал ИК у рагдоллов. интересно достиг ли он успеха.
могу вот ещё показать клевое решение проблемы встречи на углах через приоритизацию агентов, вроде не показывал. очень вот не очевидная проблема.
Хочу вкатить я в юнити, в частности в изометрию. Посоветуй годный тутор, чтобы там мир нарисовать квадратиками, двигать-шатать всего
literally https://docs.unity3d.com/Manual/Example-CreatingaBillboardPlane.html
только это не единственный подход. чё делать то хочешь? если только квадратики рисовать то шейдор ебош. синтаксис даже к самому юнити мало отношения иметь будет.
Захотелось сделать один 3д-проект, но анрыл вконец заебал насаждением блюпринтов, так что снёс его к хуям и поставил таки юнити. Всё оказалось не так страшно, как я ожидал, но вот только...
Блджад, почему тут всё так бедно? Вообще нихуя нет, никаких фич и удобств в редакторе, которые, казалось бы, должны быть стандартом де-факто давно. Тайлмапы делать - боль, анимировать - боль, всё через боль или хардкодить. И это самый популярный движок? Как так вообще?
>Вообще нихуя нет, никаких фич и удобств в редакторе, которые, казалось бы, должны быть стандартом де-факто давно
Странно это слышать от уечебляди на реабилитации. Что ты имеешь ввиду под отсутствующими фичами?
В уече так-то вообще тайлмапов нет.
>от уечебляди
Выползай из чёрно-белого манямирка. Я вообще велосипедист так-то, для основного своего проекта собственный движок использую.
А так я в основном на отсутствие удобных средств анимации жалуюсь. После годотовского плеера анимаций тут всё пиздец бедно.
плюс юнити в том что его функционал можно быстренько допилить где надо. сделать быстренько собственное окошко для редактирования собственных данных, перехуячить инспектор чтобы вместо говна и палок все сверкало и пердело, чтобы гизмосами всю сцену засрало. и это, кстати, в юнити просто заебись сделали. это как раз то чему надо учится после самых базовых вещей: сериализация в юнити, скриптабл обжекты, окошки, IMGUI.
например хопа понадобилось указать маршрут патруля. и хули, патруль чтоли вручную там массив точек редактировать? разумеется нахуй такое, быстренько набросал редактор, чтобы кнопку нажал все случилось, другое случилось, чтобы в сцене патруль рисовался и его дрыгать можно было. удобно же.
ну а фича с анимациями она как бы есть. анимировать открывание двери, нажатие кнопки и тому подобное то с избытком хватит. для персонажей то его никто в своем уме не будет использовать.
Да я уже понял, что это конструктор "Сделай сам". С одной стороны это хорошо, но с другой стороны - жадные евреи блджад, даже базовые вещи не включают. Не, я понимаю, что 99% дохода у них идёт с ассетстора, но блджад.
>А так я в основном на отсутствие удобных средств анимации жалуюсь. После годотовского плеера анимаций тут всё пиздец бедно.
Перетостил
Ох, есть что-нибудь попроще для начала? Я практически 0 во всем этом, могу в графику, да слегка в программинг. Хочу пока просто экспериментировать, что-то типа песочницы-аркады, нов изометрии, т.к. не видел такого исполнения ещё. Понял что нужны ассеты, скачал несколько плиточек для основы, потом сам уж нарисую свои, пока просто бы понять куда тыкаться.
да ладно некоторые важные вещи теперь в пакаж менеджер суют. понадобилась хуйня для прототипирования уровней - ткнул "хочу пробилдер", понадобилось говно для камеры - ткнул "хочу синемашину", захотел графона - ткнул "хочу пост процессинг" и сразу всё как надо. и в ассет сторе куча бесплатных и платных инструментов на любой вкус. и самое то главное что новый функционал прикручивается легко и обычно не ломается с обновлением версии.
>>592012
если ты учишься, а не игры делаешь то ассеты тебе нахуй не нужны. в пэйнте хуй нарисуй и сойдет. если совсем ноль то хули, ты сам знаешь как тебе лучше учится. ролики там на ютубе посмотри, дохуилион всяких видосов "а сегодня мы двигаем куб", книжку прочитай. документацию почитай. официальный канал ютуба юнити наконец открой https://www.youtube.com/watch?v=Z0Z7xc18CcA&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B туда регулярно суют что-то.
да наверно и есть заточены под 2д говно то. для которого сейчас в юнити инструментов чуть ли не больше чем для 3д.
https://www.youtube.com/watch?v=2DsKCJsEzSA&list=PLX2vGYjWbI0TPcPOKW6GxwuY18eg7CjKZ
уж этого добра на ютубе то навалом.
>и самое то главное что новый функционал прикручивается легко и обычно не ломается с обновлением версии.
Есть какие-нибудь приличные уроки на эту тему? Только не видео!
у юнити в мануале горы золота зарыты
https://docs.unity3d.com/Manual/AdvancedEditor.html
особенно тут ваще заебись
https://docs.unity3d.com/Manual/ExtendingTheEditor.html
Понял, спасибо.
А вообще сейчас юнити востребован? Есть возможность на его знаниях копеечку лишнюю заработать, или его удел реализация собственных влажных идей + пара недо инди студий со школьниками?
Нигде ты ничего не заработаешь, даун, ты просто тупой. Иди в годототред, его все студии юзают.
>копеечку лишнюю заработать
>реализация собственных влажных идей
>множество недо инди студий со школьниками
Это одно и тоже
Опять ты выходишь на связь мудила?
>Есть возможность на его знаниях копеечку лишнюю заработать
Делаешь мобильные игры, зарабатываешь КОПЕЕЩУ.
У меня есть идея создания игры, смести RTS и TD, но я понимаю, что мне не помешал бы еще один программист. У меня уже есть два человека, я думаю через месяц завершить стадию прототипирования.
Если всё будет хорошо, может быть хочешь присоединиться к нам потом? Зарплата тоже будет
Если что, не прошу ответа сейчас, я как закончу с прототипом напишу еще здесь.
О, у них есть нормальный текстовый мануал, оказывается. А то я сунулся было в оффдокументацию на сайте, а там каждая ссылка ведёт на видео для даунов, я и забил.
Сам почти всё нашёл уже хотя, но всё равно спасибо.
В конце 6 главы там есть "УПРАЖНЕНИЕ: ИЗМЕНЕНИЕ СКОРОСТИ ГЕНЕРИРУЕМЫХ ВРАГОВ"
Как вы его решили?
Я сделал публичным OnSpeedChanged() у WanderingAI, а в SceneController для enemyPrefab и _ebemy поставил тип WanderingAI, чтобы после
_enemy = Instantiate<WanderingAI>(enemyPrefab);
добавить
Messenger<float>.AddListener(GameEvent.SPEED_CHANGED, _enemy.OnSpeedChanged);
Можно как-то по-другому сделать с большей инкапсуляцией?
Я не очень понимаю, как конструкторы работают с Instantiate? Их вообще используют?
Хуй знает че за таск, но я бы сделал корутину, которая принимает время на проход цикла, а в теле содержит инстантиейт, что-то типа
IEnumerator Zaloopa(float rpm){
while(true){
GameObject Hui = Instantiate (Resources.load("hui", typeof(GameObject)) as Gameobject;
Hui.transform.position = yourass.position;
Hui.transform.rotation = Quaternion.identity;
Yield return new Waitforseconds(rpm);
}
}
Капхед был сделан на юнити
Достаточно востребован
Октопат был сделан на анриле, тоже востребован
Хуй знает что было сделано на годоте
Спасибо, но там проблема в другом немного, если я верно понял твою мысль:
Есть класс WanderingAi. У него есть поле speed. В update он двигаетсч на значение speed.
При Awake() этот клас подписывается на эвент, связанный с изменением скорости.(есть приватный метод changespeed, который меняет скорость)
Есть класс настроек, где можно задавать скорость игры и, если это происходит, дёргается мессенджер и всем подписавшимся классам передается новое значение скорости.
Есть класс SceneController, он при каком-то условии создаёт новые wanderingai(там он представлен с типом gameobject). Но они не являются лисинерами мессенджер и изменение скорости на них не влияет.
Вопрос, как это поправить, чтобы это было максимально красиво?
Почему awake не используется после Instantiate?
Сори за опечатки, пишу с телефона.
Пусть Йоахим на этом сам попробует игру сделать. Типичный кукаретик не сделавший ни одной игры и не понимающий каким должно быть API движка. Зато в синтетических тестах быстро, ага.
Забавно, что когда в юнити делают свои мелкие демки вылезает куча неудобств и багов, из-за которых они перелопачивают движок. Юнити не приспособлен даже для таких мелких демок.
Набегайте, братцы, учитесь!
https://blogs.unity3d.com/2019/07/09/upgraded-and-updated-scripting-your-next-game-with-visual-studio-and-unity/
Гугли DOTS. Новый стэк технологий от юнити с повышенной производительностью. Работает от 2019 версии.
540x960, 0:15
Хули ты такой токсичный?
Забавно, что они отказались от своей новой сети. Таким же макаров откажутся и от своего ДОТСа.
пошел отсюда, элитист ебаный
Сделай скрин задания. Я приьлищительнт понял о чем ты, но там могут быть неточности.
Предварительно, я бы сделал так: в классе, содержащем метод changespeed создал публичный лист, куда бы помещал ссылки на вновь создаваемые wonderingai, а в самом методе пробегался по этому листу и менял значения в каждом wonderingai.
В классе wonderindai в функции Start пишешь типа:
Start(){
waiList.Add(this);
}
...
Awake вызывается единожды призапуске программы до загрузки сцены, причем независимо где в коде ты пропишешь вызов этой функции. Instantiate же можно вызвать только в загруженной сцене.
Я понял идею, спасибо, вечером попробую. (Тогда же смогу скрин кинуть)
В книге была подсказка, что нужно лисинер в scenecontroller запихнуть, но, мне кажется, однохуйственно, если все упирается в необходимость добавить публичные поля для wanderingai
Похоже то, что нужно. Добра тебе, анонус ;3
>Типа находимся мы вот в 3.12, а я нажал 1
При смене вкладки закрываются предыдущие начиная от корня
К примеру при открытии 3.1, он сначала закрывает 3,2 и 3,3 и только потом открывает 3,1
При переходе в вкладку 1, он закрывает 2,3, 4, причем при закрытии 1, должно автоматически закрываться 1,1 и 1,1,1
Делается просто, процедура заппускается при открытии вкладки каждый раз, памяти жрет минимум
Особенно тот где карты случайно генерируется в зомби дрпг, пиздец он там говно людям заливает, как такое пропустили
Лучше совсем никаких как в годоте, чем такие
>>592219
Да, так примерно и сделал. У меня вот есть инвентарь. Но ему нужен включенный геймобжект который при включении генерирует слоты инвентаря. Сейчас у меня этот обьект включается на старте и выключается функцией под инвоком спустя 0.1f, но на экране все равно это видно. Вопрос как эту инициализацию красивее запилить? Скрыть это экраном загрузки?
а хули оно ждет то? нормальную инициализацию может сделаешь? когда одна хуйня инициализирует другую в нужной последовательности?
да вообще так то много вариантов. но вообще если у тебя говно А зависит от говна Б, то просто инициализируй говно Б в момент когда А становится доступно. появился инвентарь, ты сразу вызываешь генерацию интерфейса для него и не ждешь как дурак 0,1 секунду.
Я думаю просто добавлю в сам обьект который нужно включать опцию что бы он один раз после включения сразу же вырубался.
Нужно с помощью черно-белой маски jpg отображать картинку тоже jpg чтобы получалось обрезанное изображение
Photoshop умеет сохранять маску в метадате, смотри если найдешь доки как ечитать
если для UI то там вроде был компонент который обрезает все по маске. но не помню может ли он это. если для всего остального то наверно ебош уже шейдор и в нем совмещай одно с другим.
просто вычисляй нормаль в самом шейдоре, хули. тебя интересует кросс-продукт. https://en.wikipedia.org/wiki/Cross_product
https://www.photonengine.com/en-US/Server
>нужно сделать сервер для игры, обязательно авторитарный
>обязательно авторитарный
Ты там третий рейх собрался возрождать штоле?
А есть ли подобная тулза для обычных мешей? Может среди платных ассетов встречается? Inb4 сабстенс пейнтер, но хотелось бы прямо в движке (для террейна же сделали, думаю можно и для любых мешей в принципе).
Есть, не помню как называется, у меня она плохо работала, гугли лучше
Вроде бы нет никаких. Лично я через враппер сохраняю в файлы если на ПК и в префы если другая платформа. Комплексные структуры типа настроек или сейвов лучше сериализовать (в json например) перед там как закинуть в префы. Так и быстрее и удобнее.
Хоть тыщу, главное чтоб не лагало
Есть мультиплеер без сервера. Один из клиентов выступает главным. Если он выходи, то главный(мастер) клиент сменяется.
https://www.photonengine.com/en-US/PUN
Другие решения тебе не подойдут.
анон что выше прав, но для
> Помимо поиска партнёра для игры планируется статистика, внутриигровые валюта и прочее.
тебе ещё понадобится playfab.
https://playerio.com/documentation/services/multiplayer/serverside
Туда можно загружать свою серверную логику. Но Photon, конечно, лучше заходит, особенно в риалтайм играх. И особенно для новичков.
ненене, гугл сервисы не дадут тебе свою полностью изменяемую базу данных. вообще, они не для этого сделаны, и, хотя ты можешь ОЧЕНЬ калечно их использовать в таких целях, возникнет целая гора проблем, которые тебя добесят нахуй.
Понятно, спасибо!
Мой луч, который я отправляю от координаты (x, y, z) до (x, y - 6, z), ловит коллайдеры, которые находятся вообще в другом месте (например, в (x, y, z + 20) координате), и их коллайдеры в теории никаким боком не могут быть пойманы рейкастом. В чём может быть дело?
Не понятно почему, но использование объекта Ray с направлением (0, -1, 0) заместо указывания конечной координаты исправило проблему. Скорее всего, Юнити тупит в ситуациях, подобной моей, но уже похуй.
А что это тогда может быть? До этого все прекрасно работало без использования Ray.
Еще раз говорю: всё работало до этого нормально, с таким же кодом, но без Ray.
Алсо есть другой проект, точно такие же настройки, шейдер рендерится нормально, а в том черным
Или может знаете, где можно найти?
Поищи на форуме сиджиперсии, если там нет то вряд ли где то еще есть
Угу, спасибо.
Производительность по GPU будет страдать. Чем меньше материалов, тем лучше. Используй атласы.
Некорректно задаешь вектор луча, раз луч направлен не туда, куда тебе хотелось бы.
Вектор направления задатся путем вычитания векторов: векторЦели - векторСтартаЛуча = направление.
Каждый материал - одна отрисовка. Твоя модель будет рисоваться 15 раз за кадр.
Можно, улучшит.
Схуяль нет, в window -> lighting настройки.
> Дело в том, что я привык, что начало системы координат начиналось слева вверху экрана (т.е. там должна находиться точка (0;0) ), но в юнити эта точка находится посередине
отвыкай, это говно из древних времён.
> А также там значения измеряются в своих "юнитах", т.е. 1 юнит = 100 пикселей, можно ли как-нибудь эти значения поменять,чтобы можно было измерять в пикселях, а не юнитах, и можно ли поменять расположения центра системы координат?
в настройках текстуры ставишь вместо 100 там пусть 32, если у тебя 32х32 основная сетка. потом крч у камеры масштаб задаешь в соответствии с высотой экрана и будет у тебя пихель перфект.
> можно ли поменять расположения центра системы координат?
нет. понятия "ЕКРАН" в юнети нету. там есть камеры и бесконечная плоскость.
из гамака вылез шоле
Пиши свой движок если ты настолько деревянный что не можешь перестроиться с какой нибудь либгдх параши на двигло богов.
1) тупо хреначить драг-дропом аудиоклипы в паблик массив аудиоклипов скрипта и грузить оттуда
2) запихнкть в ресурсы и юзать LoadAll
3) писать через system.io с чёткой пропиской всех путей
Что делать?
>Что делать?
У аудио клипов с музыкой задай Load Type = Streaming.
https://docs.unity3d.com/Manual/class-AudioClip.html
https://habr.com/ru/post/437474/
>Каждый тип данных за исключением Streaming по умолчанию загружает звук в ОЗУ и оставляет его там, пока сцена не будет выгружена.
>Note: Streaming clips has an overload of approximately 200KB, even if none of the audio data is loaded.
Короче говоря, делай всё красиво, со ссылками на клипы. Без ебатни с ресурсами и, упаси господь, с system.io. Главное настройки покрути.
>С чего ты это взял
Тогда это могло бы объяснить один мистический баг. Я уже и не знаю в какую сторону копать.
Если тебе надо мгновенной реакции, то объявляй классы игровых объектов в скрипте уровня как минимум (или в синглтоне открытого мира, который тебе динамически локации подгружает).
Далее логика такова:
Если (кабанчик != нулль) { ПустьКабанчикПорешаетВопросик( кабанчик, телДляСозвона ); }
С сендмесседжами ссаными же логика такова, ты посылаешь сообщение "Порешайте мой вопросик, ну кто-нибудь?" А уже внутри синглтона обработчика сообщений может найтись подписанный на это сообщение кабанчик, а может не найтись.
Да сам я не использую сендмессадж. Его использует фреймворк с которым я работаю. У меня игроки иногда проваливаются сквозь объекты после спавна. Игрок спавнится на полу, у него Y = 0 и тут хуякс он летит вниз за пределы карты, игнорируя коллайдер пола. Такое в целом возможно, но только если сендмесседж будет получен с задержкой в несколько кадров, например.
1. Спавни чуть повыше.
2. Сделай два слоя коллизии пола.
3. Брось каку и INSTALL GODOT делай всё сам без "фреймворков".
Анон, что есть "красиво" и с ссылками на ресурсы?
Я пробовал сделать через корутины в связке с WWW подгрузкой из StreamingFolder - оно работает, память не жрёт, но любая смена музыки стопорит игру на добрую секунду - фриз на 1 секунду - профайлер указывает на корутину.
Сейчас ради интереса закинул посмотреть сколько будет жрать оперативы прямое назначение через паблик в едиторе эти клипы и загрузка через присвоение клипа к источнику музыки и последующим UnloadAudioData - вроде норм, не лагает, память освобождает. Какие тут проблемы могут быть? Что ты имел ввиду.
Да и вообще аноны, кто может сталкивался -как правильно юзать много локальных аудио материалов в игре?
Вверху панель тулзов
мамкин нажиматель буквы Т
Уеч параша опять просочилась? Неделю назад же затыкали ссаными тряпками.
>Уеч
>ассеты
ты ничего не перепутал, болезный
> по сцене
так, я начинаю прозревать...
> прикручивают эффекты из коробки и думают что могут в графон
...да. симптомы явно указывают на тяжелую стадию ЮНЕТИ головного мозга
Делегировать. Прокладывай евент в свой обработчик
LAYER
A
Y
E
R
В инспетокре можно настроить слой (layer) для каждого объекта, потом также настраиваешь отоьрожаемые слои на каждой камере. Короче, в документации к юнити LAYERS.
Жми на N
Работает
Ничего особеного
Что происходит с префабами лежащими в SerializedField геймобжекта при его создании? Они тоже все создаются? Можно ли сделать так, чтобы не создавались до первого к ним обращения?
Допустим, у меня несколько десятков сериалайздфилдов со ссылками на префабы, многие из которых тяжелые, но активными одновременно бывают один-два. Как тут быть?
Нвм я просто ассет через жопу создал
>в шейлерграфе
Манька, шейдерграф не поддерживает вычислительные и геометрические шейдеры. Только ручками писать, да под легаси рендеринг пайплайн, пока они srp не допилят.
) незачем в полное окно разворачивать, всё равно не бывает таких длинных строчек кода, на полный экран делаешь и правая часть всё равно пустая.
На линии посмотри, как они гармонично сгибаются без пересечений, такой эффект могут сделать реально гении.
Например
15000 => 9999 если n = 4
15000 => 999 если n = 3
Ответ кажется очевидным но я что-то туплю
Короч засунул n*девяток в стрингу и запарсил его в инт, вроде лучшего решения нет
но ведь min
hAHA TIME FOR MICROBENCHMARK
benchmarkdotnet here i come to prove I'm right on the internet!
магия?
Спасибо, анон, теперь чувствую себя дебилом
Никак.
string nines = "";
for (int i = 0; i < digitAmount; i++) { nines += "9"; }
int result = 0;
for (int i = 0; i < nines.Length; i++)
{
char letter = value;
result = 10 * result + (letter - 48);
}
Народ! Ну-ка скажите-ка мне, где скачать анимаций для персонажа, чтобы как в ГТА 5 было?
А по умолчанию не так разве?
В LWRP включить SPR батчер - если меши не скиннед, то заработает. В HDRP включить DOTS Instancing. Не заработает. В легаси включить динамик батчинг. Хуй знает, заработает или нет, от фазы луны зависит.
Это невозможно, так как модели находятся в разных координатах.
Сколько террэйнов можно в сцене делать? Как лучше: заебашить один террэйн и сделать на нем больше разрешение текстур и полигонов или много дефолтных террэйнов сделать?
Второе лучше, но не идеально. Но гораздо лучше много маленьких террейнов, довоенный террейн энжин не заточен на большие размеры, интерактивность и быстродействие вообще.
Вот это я тупой
С любой. Ты сам должен управлять масштабированием.
https://github.com/nxrighthere/ENet-CSharp
Так что как включить specular на андроиде. Причем это только у стандартного шейдера, если я создам свой то он будет работать, значит где-то это отключается, где это включить?
Bump
Bump
Нахуй иди отсюда, свинья, со своими бампами в мертвом разделе. Тут за тебя игры никто делать не будет, это гд, а не клуб дружелюбных пидарасов.
Извинись и я уйду.
Почему ты еще не мониторишь раз в день реддит юнити? Что так сложно полторы минуты уделить?
Не обновляться.
Что будет вместо окошка?
Так заебись же.
Вот я хочу сделать так, дабы при выстреле из условной пушки у меня летел быстро шарик из дула в точку хита луча И ПОСЛЕ САМОГО ПОПАДАНИЯ ШАРИКА ПО ЦЕЛИ у меня делались разные вещи. Проще говоря, луч здесь используется как направление траектории полёта шарика и его конечная цель спавна, а не как точка спавна. Надеюсь понятно высрал что я хочу сделать.
Такое возможно сделать вообще? Есть какие-то подсказки как это реализовать, а то я уже не понимаю как это сделать.
Потому что чем ближе координаты к 0 тем лучше точность рассчетов, тем более на андроиде. В шейдерах настройка float precision есть и в мобильных шейдерах она зашакалена.
Да точно это оно, спасибо. Решил перемещением карты.
Пока что да. В будущем и в едитор завезут, не ну а чо б и нет, это же неплохо. Особенно если сложную менюху можно будет заебашить на одном ректТрансформе чтоб сложная система не жрала ресурсы и не нужно было ебаться с разбивкой на канвасы, кешированием и прочим шлаком когда у тебя сотни элементов
Кто это пилит? Просто меня интересуют все, кто как то связан с разработкой гонок т.к. сам этим занимаюсь давно.
Вроде гуглил, а чёт нихуя подобного найти не могу, только всякие автозаполняторы текста, которые просто пишут рандом хуетень и всю сразу, а не постепенно. На английском сформулировать мысль не удалось.
Может есть примерная конструкция для таких вещей?
нуфаг
как гейдизайнер крайне не рекомендую, уже на снесе эта хуйня была устаревшей. ищи по теу typewriter
обоссал все игры с диалогом
RectTransform.anchoredPosition vs RectTransform.position vs transform.position vs RectTransform.localPosition vs transform.localPosition
Почему именно твой вариант? Или вообще похуй?
>Temporal Anti-aliasing in the Scene View is only supported when Animated Materials are enabled.
Пацаны, где эта хрень включается?
Встречал эту хуйню только в ассетфлипах и в играх над которыми особо не старались
Незнаю как это делают в современном геймдеве, но по старинке у тебя есть объект данных и объект собственно вьюшка и вьюшку надо обновлять с новыми данными (новой буквой) после каждой анимации появления буквы которую уже делаешь как сам хочешь.
Эта мешюшка помогала от криворуких разрабов которые ленились в игру непопулярные разрешения вставить. Впрочем через конфиг я так понимаю никто не будет мешать это продолжать делать.
Обычно UI объекты в локальном контейнере (канвасе), посему локал?
Что лучше тогда использовать?
Опусти камеру ниже, сделай больше угол обзора
Это-то понятно. Знаю. А вдруг тот релиз был нестабилен? В общем я уже обновился.
Не вижу никаких проблем, всё просто реализуется. Создаешь ГО, инстансишь к дулу, задаёшь ему нужные параметры (скорость,направление etc.), следом он запускается, на этом обьекте висит скрипт в котором вызывается функция тригеринтер либо клааидер стэй ор интер, посмотри что тебе надо и используй нужную функцию она уже родная от юнити, ничего велосипедить не надо, и в конце как только эта функция срабатует тобишь обьект(шарик) соприкасается с целью делаешь нужную действия, всё изи.
Я наоборот стараюсь обновляться и проверять, все ли работает. Хороший код должен быть устойчив к ошибкам внешней среды и легко изменяться под новые api
В компьютерных играх ты смотришь через узкое окно монитора. Поэтому в играх все делают в несколько раз больше. Всякие эпические залы для 5-метровых людей.
Да просто камеру опустить. На первой пикче не видно верха холодильника, а на второй видно, поэтому кажется что он низкий
Вся магия заключена в поле обзора. F.O.V.
Камеру приблизь. И открой игру в юнити на весь экран, как в блендере. Не благодари.
ориджин значит смещение координат вершин модели относительно нуля. чтобы сменить ориджин тебе нужно изменить положения всех вершин.
Может написать скрипт который работает с Mesh если хочешь. Может в пробилдере можно это сделать. Но я бы лучше в блендере изменил на твоем месте.
>ориджин значит смещение координат вершин модели относительно нуля.
В блендере или юнити? Я нахожу центр модели через (сумма трансформ.позишенов всех детей) / (число детей), вроде бы с ориджином не совпадает.
Да, запоминать и записывать ориджин из блендера звучит как самое простое решение. В любом случае спасибо, знаю теперь, куда копать.
>В блендере или юнити?
Везде. Ориджин всегда ноль в локальных координатах. Когда ты в блендере изменяешь ориджин объекта, например опускаешь его вниз модели, то на самом деле происходит транформация всех вершин модели когда они перемещаются на столько же вверх. Ориджина как отдельного свойства модели нет.
В принципе если очень нужно, то можно в вершинном шейдере добавлять вектор к каждой вершине.
Не лучший, а единственный доступный тебе, необразованному плебею.
Это из-за Юнити
хотя какой полчаса, минут десять. Поставил на задний фон картинку с гугла, нанес грани и все
а все, пофиксил, надо было галочку поставить
Ебануться, 6млрдов долларов, и они нихуя не делают, один террейн за год подвезли и хуйню перелопачивают, которой никто не будет пользоваться
Ну как ничего не делают. Вот придумали новое маркетинговое название DOTS. Еще переименовали lightweight rendering pipeline в universal rendering pipeline. Видишь сколько полезного сделали.
>Ебануться, 6млрдов долларов, и они нихуя не делают,
На самолет амеры вообще триллионы "потратили"
Надо быстрее игры выпускать, пока юнитеки не ввели какие-нибудь лутбоксы чтобы инвесторам стабильный рост показывать.
Им не нужно ничего вводить, бизнес процветает несмотря на огромное усердие анриальщиков, сколько же денег они влили юнитям похуй. Будет смешно если и стим не пострадает.
Юнити анрилу не конкурент и никогда им не будет.
Пока на анриле пилят какие-нибудь условные mass effect, DmC, серию batman, deus ex, на юнити пилят очередной три в ряд и прочий подзалупный творог.
>Юнити анрилу не конкурент и никогда им не будет.
Будет, анриал уже столько бабла влил, а ничего не получается, юнити крепнет. 6млрдов это не шутки, сучка
>а ничего не получается, юнити крепнет
Хуепнет. Еще раз пост перечитай.
>Пока на анриле пилят какие-нибудь условные mass effect, DmC, серию batman, deus ex, на юнити пилят очередной три в ряд и прочий подзалупный творог.
Сколько бы он там не креп, шедевры продолжат делать на анриле.
Может продолжат, может не продолжат. Большинство шедевров делают на своих движках. Пока что у юнити все заебись, несмотря на потуги анриалщиков, уж не знаю, что должно случиться, чтобы у юнити начались проблемы.
Демагогически? Несомненно. Демагогически и твоя мать является шлюхой, потому что у неё есть пизда и рот.
Куротины! Он сказал куротины! Два раза!
Хочу писать игры на javascript или lua.
У лумбарьерда луа, дерзай.
Немного упрощенный C++ со сборщиком мусора. Такой-же косный и тяжеловесный.
Для игр нужны скриптовые динамические языки.
> многословесность
Сокращай, шакал.
> низкоуровневость
> лягуха пизданулась вконец, несите следующую.
> ждать компиляцию при любом изменении
Пекарню обнови.
> Хочу писать игры на javascript или lua.
Неее. Ты хочешь прокрастинировать. Постоянно изучать новые движки, оттягивать момент, когда надо уже начинать делать игоры.
> скриптовые динамические языки
Ой, всё, INSTALL GODOT и проваливай из треда.
Если бы ты написал хоть одну игру на скриптовом динамическом языке, ты бы меня понял. Это как всю жизнь прожить с закрытыми глазами, а потом внезапно их раскрыть.
>Это как всю жизнь прожить с закрытыми глазами, а потом внезапно тебе в губы упирается толстая запашистая сордэлька (хуй).
>Для игр нужны скриптовые динамические языки.
Ты скозал? Нет, не нужны, скриптовая динамическая дрисня не нужна, это прямой путь к тормозным и глючным играм. Строгая типизация исключает баги и косяки на этапе компиляции, позволяет писать софт, который не вылетает и не падает.
Если не хватает мозгов осилить полноценный код, пили логику на блюпринтах.
Это говорит мой опыт разработки игр. У программирования игр своя специфика и правила программирования для бизнеса здесь неприменимы. Для бизнеса главное надежность и поддержка кода, а для игр главное скорость разработки и частота итераций.
Одно только ожидание компиляции и типы замедляют разработку во многое число раз.
Судя по той хуйне, что ты несешь, разрабатывал ты только очко в своей жизни.
Всё верно, однако статическая типизация не защищает отрасль от долбоёбов. Погляди, какой экземпляр в шарпотреде в /пррр/ отписался. Пиздец просто.
Поэтому, если человек шарит в алгоритмах, он и на динамическом языке может конфетку сделать. Никого не защищаю.
В геймдеве это не нужно.
Статическая типизация это палка в колесе игростроя. duck typing намного круче и эффективнее для разработки игр
>>596627
> static typing
> алгоритмы
Чего вы за хуйню несете, тупые мамкины выродки, которых из ПТУ исключили? Static typing языки были придуманы для того, что бы не тратить время на бессмысленный дебаг такой мелочи как опечатки, неккоректное наследие типов или преобразования, и т.п. Это вообще ничего общего ни с алгоритмами, ни с парадигмами (прерогатива CS) не имеет.
Это как иметь ручку для ножа, вместо того, что бы хвататься за голое лезвие. Однако ручка не научит тебя арт выстругивать из дерева
>если человек шарит в алгоритмах, он и на динамическом языке может конфетку сделать.
Может, но это в разы сложнее, зачем рвать себе очко, если можно получить гарантии на этапе компиляции?
На динамическом языке проще и быстрее накидать что-то небольшое, типа скрипта на 50 строк, а при разработке большого проекта это только замедляет.
При статической типизации ты открываешь любой файл из нескольких сотен, и сразу видишь, какие типы данных на входе, какие на выходе, сразу в голове выстраивается полная картина. В динамической дрисне такого нет, ты открываешь код, который сам же писал пару недель назад, и начинаешь плыть, потому что не помнишь, какие данные приходят в метод, в каком формате, с какими ключами, и чтобы выяснить это, нужно или писать руками комментарии к каждому методу, как макака делая руками то, что дает автоматом статическая типизация, либо разгребать кучу файлов, восстанавливая в памяти цепочку вызовов.
>>596631
>Значит чловек сам криворукий долбаёб, если он умудряется попадать в аварию при езде без ремня и вылетать через лобовое стекло, пропахивавя ебальником об асфальт два десятка метров
> а то человек может забыть добавить лишнюю скобочку и создать продукт, который будут падать и зависать.
Как раза таки опечатка в статическом языке отлавливается на этапе компиляции и делает невозможным попадание таких багов в продакшен. Так что ты опять поссал себе на лицо, зачем ты так с собой?
Петух, ты обоссан с ног до головы. Шейдерграф - это четэ и блюпринты в уече, только для Cg, а не для крестов.
Чушь. В функциональных языках не указываются вручную типы, на питоне пишется много программ. Никто не жалуется.
Типы для безопасности и для улучшения читаемости это страшилка придуманная майкрософт чтобы зафорсить typescript.
Ты себе на голову ссышь, манька, в уе4 нет cg. Как в юнитевском шейдерграфе нет cg. Это hlsl, манька, хватит ссать себе в рот.
> страшилка придуманная майкрософт чтобы зафорсить typescript
??? Шизоид иль че? До тайпскрипта типо ни в одном языке не было объявление типа?
Просто примерно в это время стали появляются охуительные истории про такие преимущества типов как предовтращение каких-то там ошибок и читаемость кода для больших проектов.
Так типы действительно предотвращают тонну ошибок - они ещё до компиляции все в список выводятся, и требуют себя решить прежде чем позволят скомпилировать код.
Есть один спавнер префабов ака говнокод на подобие каста фаерболлов и он во время броска префаба по лейнкасту в игрока дамажит его 2 раза, хотя спавнится всего 1 префаб. Самое забавное, когда происходит типо смерть - он дамажит игрока 1 раз как положено, лол.
Код проверял, ссылки смотрел, префаб чуть ли не с лупой сидел разглядывал - всего 1 итерация нанесения урона и всего 1 спавн префаба на кадр. Где я проебался? Раньше мне от этого помогал костыль в виде задержки в спавне длинною в атак кулдаун, но чёт оно перестало помогать.
Пикрл 1 - скрипт реакции на коллюжн, пикрл 2 - сам лейнкаст и спавнер префаба, пикрл 3 - вырезка из скрипта АИ самого моба, где и происходит вызов самого начала цепочки методов. Да, я тупой даун и держу всё это в 3-х разных скриптах.
Перестань ссать себе на голову, просто признай, что программирование не твоё и больше не неси хуйню.
Destroy не сразу может срабатывать, отключай коллайдер на объекте после его срабатывания
Значит OnTriggerEnter вызывается 2 раза. напиши там Debug.Log($"{name} {other.name}"); и посмотри что с чем сталкивается
Какую хуйню? Я написал что из моего опыта динамические языки лучше подходят для кодинга игр. Игры пишутся быстрее и легче чем на C#. Недостатки отсутствия строгих типов сильно преувеличены.
Это начал верещать что-то. Попробуй написать хотя бы одну игру на lua или gdscript, а потом повтори это мне в лицо что я пишу хуиту.
О, спасибо, няша. Это вроде пофиксило эту парашу.
Сразу могу сказать по хуевости теней что у тебя у комнаты очень маленький масштаб, делай больше. А вообще на источнике света bias отвечает за "отступ" тени от объекта.
Райдер и вс код должны быть в списке если они есть на пеке, подхватывается автоматически.
Найс ты жопой виляешь, обоссаный петух, пытаясь увести тему разговора в другую плоскость. Нет, тухлодырец ты поебаный, ШГ допускает работу с геометрией, поэтому ты обоссан с ног до головы повторно, ну и в ротешник тебе струей зарядил для профилактики.
Столкновения (collisions) обрабатываются в фикседапдейте, а значит функции типа ontriggerenter, ontriggerstay и ontriggerexit могут вызывать за кадр несколько раз, потому-то у тебя и происходит несколько дамагов, судя по всему.
Включи contact shadows
Ты пизданутый долбоёб просто, тебе про одно, ты про другое. В шейдерграфе нет геометрических шейдеров, в шейдерграфе нет cg. Пошёл нахуй, манька.
Спасибо.
Я лучше сделаю scale сразу всех объектов, когда дом целиком будет готов. А в блендере я просто буду делать объекты с реальными размерами своего дома, а не делать на глазок и не тягать каждый раз новый объект в Юнити, чтобы посмотреть, как он отображается.
Например, эту комнату в блендере я создал с вполне жизненными размерами 7.6x3.6x2.5м. В сравнении с кубом в этой комнате, который имеет размер 1x1x1, это прослеживается. Потом создам стол, и тд
Я уже писал об этой проблеме, что в юнити все мелко >>595972 мне посоветовали настройки камеры покрутить, но я еще не пробовал, потом. Вроде field of view за это отвечает,
Проверь настройки экспорта модели, там вроде можно скейл задать (смотря каким форматом\экспортером пользуешься).
Заебца
>Nothing for me, but at least it makes us closer to 2019.3 with quick enter play mode option.
Резонно. С другой стороны, никто не запрещает накатить альфу прямо сейчас, оно того стоит.
хехса на даркмод нету
>quick enter play mode option
Чта эта, пананрэксы? У меня 2019.3 и входит туговато, долго, как включить смазку?
Эдит -> Проджект Сеттингс -> Едитор -> Ентер Плей Моде Сеттингс
Выключает рилоуд домейн. Плей мод реактивный, но статик переменные перестанут сбрасываться автоматически. У меня это проблем не вызвало ну вообще никаких.
Спасибо
480x360, 0:46
https://blogs.unity3d.com/ru/2019/07/30/heres-whats-in-the-brand-new-unity-2019-2/
>We have over 1000 developers dedicated to extending and improving Unity for you
>ProBuilder 4.0 ships as verified
>Polybrush is now available via Package Manager
и еще куча мелких фиксов. самым большим изменением является инкрементный сборщик мусора.
охуенно 1000 дармоедов за полгода фич наделали.
Дальше только хуже. Возможностей будет меньше и меньше.
Юнити уже в стадии агонии. Эту кодовую базу невозможно поддерживать и расширять.
Он уже идеален, очевидно же
Зато ты свой анус еще долго сможешь расширять, пидар.
Когда импортирую модель (из блендера или с Mixamo), обычно armature видно в иерархии и можно цеплять к отдельным костям всякое.
Что произошло сейчас не вдупляю - костей нет в иерархии, анимации каким-то раком работают, что за магия?
Как мне вынести кости в иерархию, чтоб их было видно?
Видимо в этой модели вообще нет костей.
Это реалии разработки, я делаю сайты на реакте, кодовая база так разрослась что я боюсь что то менять или внести фичу что бы что то не поломать, внесение фичи занимает все больше и больше времени.
Например разработчику нужно внести фичу в движок, но в коде объекты между собой взаимосвязанные, это значит что изменения в одной части кода будут иметь последствия на другие части кода, а так как в движке миллионы строк кода то разработчик в душе не ебет где там и что там может поломаться.
Что бы такой хуйни не возникало нужно в 2-5 раз больше времени на разработку движка, нужно в раз несколько лет переписывать движок под новые фичы, инвесторам это не выгодно ведь нужно побыстрее выкатывать фичи и обновления.
Во-первых, юнити это движок, а не конечная программа для пользователя, и юнитеки не могут переписывать движок постоянно как раз потому что у них есть пользователи, у которых от таких манёвров слетит всё нахуй. Это наоборот умный подход, что они вместо полных перелопачиваний выпускают модулями новые фичи и оставляют всё старьё у коде ради совместимости.
Во-вторых, юнитекам не нужно переписывать движок с нуля чтобы ввести какую-то фичу. Да-да, в отличие от годота юнити сделан хоть по каким-то стандартам качества и отвечает заявленным требованиям, модульный и вообще как раскладушка. В отличие от некоторых они могут ввести ЕТЦ, и у них не отвалится от этого ВСЁ.
В-третьих, скорее всего юнитеки не могут просто взять и выкатить официальную фичу, которая бы копировала фичу, сделанную кем-то и выложенную в магазине за деньги. Каждый раз они такое дело покупают у автора и только затем себе добавляют. Не уверен насчёт этого момента.
>не могут просто взять и выкатить официальную фичу, которая бы копировала фичу, сделанную кем-то и выложенную в магазине за деньги
Естественно не могут. С магазина они получают процент, там за них делает кто-то другой. А тут нужно делать самим и бесплатно!
В отличие от тебя они профессиональные программисты, могут написать вообще всё, что угодно, просто сегодня им лень и мешают все те люди в магазине у которых приоритеты в разработке другие.
Эти профессионалы тайловые карты делали 5 лет. А террейн уже 10 лет переделывают.
Мелкие фиксы и хуйня вроде генератора шейдеров (причем сделанно максимум криво и по уебански) - это предел их возможностей.
Этот их форс DOTS это их первая попытка сделать что-то по другому. И заодно их эпичный обосрамс.
Так там вроде разработчиков не осталось. набрали трапов и лгбт меньшинств по квотам для гендерного разнообразия, вот и паразитируют.
Как мне лучше всего это воплотить в жизнь? Не думаю, что с точки зрения движка будет здраво все 256+ частичек одной картинки одновременно рендерить, а потом ещё и выискивать где именно и кого именно из них мышь нажала. Собирать из них одну текстуру в рантайме? Ещё какой-нибудь вариант есть?
Ну и раз уж речь зашла - хочу чтобы как в веб 2.0 картинка не просто расширялась под масштабы окна, а резалась в нужных местах и повторялась в требуемых местах. Общую идею как это сделать я уже имею и кое-какие части её уже воплощены, но может какие-нибудь советы имеются?
и правда неплохо кродеться
Так это же торможной говнокод получится. Лучшим решением был бы массив тэгов, который бы хранился как битовая маска. Нахуя один тег-то делать? Неужели юнитеки не подумали, что может понадобиться 2 тега, или даже 3?
Только начинаю изучать юнити и пока какое-то разочарование, все его так хвалили, мол, лучший движок и все такое. Но что-то пока такое себе. В плане работы с ассетами, анимациями, посасывает у анрила. Удобство работы с префабами посасывает у прости господи, системы сцен годота. Скриптовое АПИ какое-то хуёвое, антипаттерн на антипаттерне, MonoBehavior просто какой-то огромный перегруженный god object, неужели не могли сделать отдельные базовые классы для компонентов, поведения, сервисов. Надо ECS попробовать вкурить, может хоть там можно чистую архитектуру без говнокода запилить.
>юнити сосет у уеча во всем, но игру я буду делать на юнитиговне!!! Теги не зделоли мам, ну и говно!
классика))))))
Я для 2д изучаю юнити, потому что уеч для 2д это перебор, для этого, а годот слишком глючный.
А в плане 3д да, пока из всего, что видел - сосет у уеча во всём.
> Почему нельзя назначить объекту несколько тегов?
А что, нельзя штоле? Групп нету?
мимоперекатывающийсясгодота
А если я в поле тега запихну словарь с тегами? Какой там тип? (Да, на гугле забанен.)
Не запихнешь. Ты сначала в настройках проекта создаешь набор тэгов для этого проекта, каждый в виде строки. И потом любому объекту можешь назначить только один из этих тегов.
Открываешь инспектор, назначаешь тэг объекту. Он может быть только один. Т.е. если ты назначишь тэг player, ты не можешь назначить ему второй тэг, отвечающий за класс, команду или расу, чтобы потом фильтровать объекты по нему.
Почему он мне вот такое пишет? Я ничего не нажимал. Мои тэги реально удалятся, как только я закрою?
Это для удалённых тегов, чтобы они исчезли, надо переоткрыть проект. Добро пожаловать в лучший движок для создания игр.
> Добро пожаловать в лучший движок для создания игр.
Я оттудова и не уходил. Я как вкатился в гейдев, сразу ебанул анриал, юнити, годот, блендер и сижу, довольный, в белом пальто.
И так работает и эдак. Ну всё, щас я точно сделаю игору мечты!
Тоже орнул сегодня.
А ещё можешь сделать так: носить в объекте такие-то и такие-то строки, а когда идёт проверка на тэг влезаем в объект, смотрим на строки, если чекается, на время проверки меняем тег на необходимый, а потом обратно.
Сделай компонент с массивом тегов, который добавляет этот объект в static Dictionary<string, List<GameObject>>
делов 5 минут.
Студия какая-то тормозная и тяжеловесная по сравнению с code, дает ли она какие-то профиты, чтобы перевесить удобство и скорость?
Все нахваливают документацию юнити, говорят, что она лучше анриловской. Но там даже такая простая вещь не описана.
Т.е. влияет ли их размер или нет?
тут нужно учитывать число вершин, число пикселей на экране которое займет объект после отрисовки (для каждого физического пикселя будет вызвана функция пиксель шейдера) и сложность шейдеров (материала).
масштаб в юнити не играет никакой роли
Понял, то есть кваду физически не забрать на себя больше пикселей, чем занимает экран, верно?
А у юнити может быть несколько компонентов одного типа? Во дела. Я-то безопасности ради каждый компонент-дитя в отдельный геймобжект, привязанный к главному делаю, а оно вон как можно.
Может, там даже отдельный метод есть, GetComponents, который возвращает массив компонентов заданного типа. Что же ты в апи референс не заглядывал?
>не могут переписывать движок постоянно как раз потому что у них есть пользователи, у которых от таких манёвров слетит всё нахуй.
То та я вижу блядь что стандартные ассеты не работают когда выходит новая версия.
>Во-вторых, юнитекам не нужно переписывать движок с нуля чтобы ввести какую-то фичу. Да-да, в отличие от годота юнити сделан хоть по каким-то стандартам качества и отвечает заявленным требованиям, модульный и вообще как раскладушка.
Откуда ты знаешь что их код пиздец какой охуеный сделанный по всема стандартами разработки. Если бы было как ты говоришь, то фичи были бы более пиздатые и частые.
>В-третьих, скорее всего юнитеки не могут просто взять и выкатить официальную фичу, которая бы копировала фичу, сделанную кем-то и выложенную в магазине за деньги.
Все они могут, просто вносить кардинальные изменения в код они не могут так как все может поломаться.
Если бы у них был охуенный код, они бы не зассали выложить его в опенсорс, как анрил сделал.
Раньше это можно было объяснить коммерческой тайной, но после того, как это сделал анрил, уже нет причин скрываться, кроме как говнокод в ядре движка.
Нет, это скриптовое апи на сишарпе, которое и так можно было вытащить дизассемблером.
Большая часть юнити написана на плюсах. как анрил, и эта часть остается закрытой.
>Если бы у них был охуенный код, они бы не зассали выложить его в опенсорс, как анрил сделал.
Ты так ненавязчиво наекаешь что код анрила БОЖЕСТВЕННЫЙ.
А ты сам его видел? Точно видел, сучечке пиздливый? Потому как я сношался с ним месяц, делай кастомный парсер ассетов и я знаю что за говно их код.
Пидрило. Съеби нахуй всвоб помойку-тред.
Исходники 4-ой версии есть в сети
>делай кастомный парсер ассетов и я знаю что за говно их код.
А мог бы игры делать вместо ковыряния в говне.
> и я знаю что за говно их код.
Тут скорее обратная проблема, ты страдаешь синдромом NIH, как Хуан.
Хуан видит бесплатные охуенные текстовые редакторы, типа visual studio code, но не может позволить себе запилить интеграцию с ними для своего движка. Его анус болезненно сжимается, когда он видит код, написанный другими людьми. И неважно, хороший ли это код, или не очень, одна лишь мысль о том, чтобы использовать код, написанный посторонними людьми, заставляет волосы на анусе Хуана вставать дыбом. И Хуан идёт пилить кривое, убогое подобие текстового редактора, по фичам и юзабилити покрывающее 5% условного visual studio code. Кривое, уродливое, неюзабельное говно, зато своё, родное. При мысли о том, что Хуан сам написал этот редактор, потратил на него несколько месяцев времени, за которые мог бы например допилить рендеринг до приемлимого состояния, или пофиксить сотни багов, его крошечный сморщенный член, заросший густыми кудрявыми волосами, наливается кровью и привстаёт, Хуан начинает яростно дрочить его и кончает через 20 секунд, размазывает желтоватую вонючую сперму о внутреннюю поверхность своего рабочего стола и идёт переписывать классы строк и контейнеров для годота, т.к. по идеологии Хуана в годоте запрещено использовать стандартные классы из stl. Примерно так выглядит разработка годота. По этой причине годот не использует SDL, Box2d и десятки других библиотек, ставших стандартами индустрии.
У тебя, видимо, та же история, раз ты решил, что стандартных фич для работы с ассетами тебе мало и полез пилить что-то кастомное. Разработчикам условных mass effect и devil may cry хватило этих фич, а пидорашке с двача - нет, и она полезла пилить кастомный парсер. Так что проблема не в коде анрила, а в твоей голове, к сожалению.
> его крошечный сморщенный член, заросший густыми кудрявыми волосами
Часто фантазируешь о крошечном членике Хуана?
Я сам непонихуя. Они там умные слишком. Поесните по нашему.
>ряя, я кавырялся в коде уеча, там фсе сложно и нипанятна((
>поставлен на место
Проиграл. Ты бы еще поссал себе на голову при людях, и сказал, что этим ставишь их на место.
Все, что ты доказал - что дети и умственно отсталые неспособны разобраться в коде уеча, это вроде и так всем было понятно.
И не первую юнити игру такую встречаю.
> Это нормально вообще
Это проприетарщина с бойлерплейтом вендорлока. У да, я люблю баззворды!
На самом деле меня не существует. Я всего лишь образ в твоей голове. Потому что ты не принял таблетки.
> 2 часа спустя высрался ответом
> ни одного доказательства хорошего кода УЕча
кек
as expected
ur told, son
Если это обычное 2D без лишних наворотов, то какие подводные камни могут возникнуть? Может быть есть какие-то тонкости, с которыми анон уже сталкивался?
Может быть какие-то ограничения по фпс или размерам файлов, которые следует учитывать? Какая-то особая настройка проекта?
Двачую
>т.к. по идеологии Хуана в годоте запрещено использовать стандартные классы из stl.
Прямо запрещено?
бакенд юнит - делоет патфайндинг, скорость, ну вся важная дата короче
фронтенд юнит - геймобжект манябехевиор который нихуя не решает а просто двигается и делает анимации, когда игрок уходит со сцены, просто удоляется. а бакенд переходит в слоу мод, чтоб не сильно грузить проц своей "жизнью".
Двигать юниты решил по 2д массиву.
Понимаю что это почти как сервер-клиент, хотя у меня опыта по этой хуйне нет.
Есть ли у кого литература почитать про этот "сетевой" подход? Лучше на англ конеш.
Из того что нашёл в основном предлагают делать скриптабал объекты, но этож надо будет хранить 200+ таких для каждого внутриигрового предмета.
И второй вариант это парсить не юнитовские форматы файлов типа XML.
Так второй вариант лучше и стоит с ним работать? Или есть ещё другие варианты, хранения кучи разных предметов.
Ну вот например, string и vector. Хуан просто взял и нагородил свои велосипеды, вместо того чтобы взять из std.
https://github.com/godotengine/godot/blob/master/core/ustring.h
https://github.com/godotengine/godot/blob/master/core/vector.h
Всё зависит от масштаба твоей игры. Если объектов немного или средне, скажем так, то юзай файлы. Если прям дохуя, то смотри в сторону баз данных.
А можно в текстовых файлах хранить путь до префаба?
Т.е., например, сделать БД предметов в виде json массива в файлике, в нём будут поля для названия, стоимости, веса, и нужен еще префаб, который будет спавниться, если предмет достали из инвентаря.
Наоборот, у тебя в префабах должна быть инфа о текстовых данных. В файлах же ничего не должно быть известно о потрохах юнити. Просто абстрактные данные, типа
{
"uasia": "loch",
"age": 24,
"strength": 12,
"expirience": {
"anal": 2,
"oral": 4
}
}
А как связать префабы и текстовые данные? Если у меня в json 1000 объектов, как мне назначить каждому из них свой префаб? Или даже один и тот же префаб на насколько бъектов, но с разными настройками?
Префаб настраивает себя по данным из базы. Неважно какая у тебя база данных, текстовые файлы или реляционная БД. Префаб в старте получает из своей настройки индекс на данные, чем он будет в игре. Ну, в общем случае, само собой. Например префаб-фурнитура с полем kind равным "терелка", в старте ищет данные о тарелке и загружает их в себя. Путь до меша тарелки, координаты где тарелка лежит и т.п.
>>597788
Дам тебе менее абстрактный пример. Более насущный.
Допустим у тебя в игре есть города с населением. И всё это неписи. На них на всех есть префаб "NPC", который у себя в скрипте, в старте, загружает себе меш, морфы, диалоги, маршруты на навмеше. Всё это реально численно инкапсулировать в текстовых файлах (или БД), не используя эти самые меши, держа их так же в единственном экземпляре.
Допустим у тебя имеется процедурный генератор. Однако ты же не будешь сразу всех генерировать, нет, генерация будет идти лениво, чтобы не создавались неписи во всех закоулках, в которые игрок даже не зайдёт. Процедурная генерация может быть весьма ресурсозатратной, поэтому ты можешь в первый раз генерировать непися и все параметры записывать в файл сохранения, например (лучше конечно в отдельный файл, сделать отдельную папочку кэша в юзерской директории и ебашить туда файлы с васями, машами и петями). Таким образом, при первом посещении локации непись генерируется, в следующие посещения просто поднимается уже сгенерированный непись из файла.
В скриптовых языках ты просто создаешь скрипт предмета и все.
В С# надо решать сложную инженерную проблему лол.
Синдром Даннинга-Крюгера детектед.
В скриптовом языке у тебя будет сцена "NPC.tscn" (ну ты понел), которая у себя в скрипте, в _ready, загружает себе меш, морфы, диалоги, маршруты на навмеше. Всё это реально численно инкапсулировать в текстовых файлах (или БД), не используя эти самые меши, держа их так же в единственном экземпляре.
Не понял что ты там инкапсулировать в текстовых файлах собрался и причем тут предметы.
Тащемта скрипты это тоже текстовые файлы, и их не нужно парсить чтобы получить данные.
Хватит обсираться, серун. Там была речь про создание ассетов предметов.
Научись вопросы задавать правильно.
> Хватит обсираться, серун.
Когда ты повысишь квалификацию и избавишься от синдрома - тогда ты осознаешь насколько смешны были твои слова.
Так и в юнити можно создать 1000 скриптов для 1000 предметов, но так только говнокодеры делают. Нормальный подход - создать один общий скрипт, отвечающий за предмет, а различные вариации получать комбинациями атрибутов. Если еще ECS добавить, то вообще очень гибко получается, можно представлять предмет как набор компонентов, логика поведения которых разнесена по разным подсистемам. Например, пока макака пытается захардкодить меч на скрипте, с ECS подходом ты собираешь этот меч из компонентов, назначаешь ему модельку, иконку, вес, стоимость, признак оружия, тип урона - режущий и т.д. Какая-нибудь броня будет тоже иметь вес, стоимость, но не будет иметь компонент оружия, вместо него будет компонент брони. Фляга может иметь компонент объема, что позволит хранить в ней воду или любое зелье. Такой подход позволяет собирать составные предметы, например, можно совместить в шлеме компонент брони и оружия, добавив ему атаку рогами. Или добавь броне компонент емкости, чтобы можно было носить воду во встроенной фляге.
Я понимаю, что скриптовой макаке сложно осознать все плюсы такого подхода, но ты хотя бы попытайся.
>Почему он (Unity) не подтёр мне жопу сразу после того как я посрал?
Ставь visual studio code. И начинай уже постепенно сам подтирать жопу, никто за тебя этого делать не будет.
Слышь обезьяна. Я вообще то спросил почему он так делает, а не как мне установить нужный редактор кода. Давай тогда вместе с юнити вместо компилятора C# устанавливать Pascal.ABC. Не, ну а чо, нужно же постепенно начинать вытирать за собой жопу.
>Давай тогда вместе с юнити вместо компилятора C#
В юнити свой компилятор c#, который идет в комплекте. Вижуал студио это отдельный софт от других разрабов, не связанный с юнити. То, что юнити запускает инсталлер от этого софта еще не значит, что оно может что-то там тебе дополнительно установить. Настроить вижуал студио через инсталлер, чтобы там были компоненты для c# - твоя личная забота и проблема.
>>597823
>Слышь обезьяна
Зачем ты так про своего батю, что он тебе сделал плохого в этой жизни?
VS Installer, изменить, пикрил (можно поотключать "необязательное" в правой части окна)
...
В этом видео в конце чувак говорит что-то про интермидиэт левел. А где серия видео для бегинеров?
D=
Импортнул тайлсет с анимациями на сотню кадров со spriters resources, час сидел в спрайт эдиторе, размечал кадры анимаций руками, потому что там не было выравнивания по гриду. Потом понял, что импортнул с билинейной фильтрацией, нажал на ре-импорт, не выскочило даже никакого предупреждения - вся моя разметка на кадры проебалась, тайлсет снова превратился в один большой спрайт.
Это что, шутка какая-то? Даже в гондоте такой хуйни не было.
что-то блокирует рейкаст
1275x860, 0:21
А если я хочу, чтобы персонажи бегали, а не летали подпрыгнув, и не упирались в границу уровня, мне что надо сделать? Unity pro купить?
Обосрался на 6-ой секунде.
Когда кодовая база движка разрослось настолько что внесения любого изменения в код влечет за собой непредвиденные баги которые ломают даже стандартные ассеты.
1676x895, 1:08
Где почитать, как сделать "не хуйню", чтобы было без таких глитчей? Делаю все стандартными средствами, по официальной документации, пока получается только хуйня.
>И как с этим жить?
Смирится и научится обходить баги.
>Использовать движок как низкоуровневый фреймворк, и велосипедить всё самому?
Займет дохуя времени и будут те же баги.
Здесь нужно придумать новые принципы программирования, например довести до ума визуальное програмирование что бы вся сложная часть была спрятана под капотом а пользователь только проводил линии между блоками.
>Походу так и придется перекатываться на анрил
Перекатись, потести, скажешь нам есть ли там баги
Нахуй тебе эти навмеши, делай хардкорные вейпоинты как в певрой халфе!
Скажи пожалуйста, как мне кнопку обычную UI нажать через пробел, а не через нажатие мышки по ней?! Кнопка обычная Button, на неё накидано много разных действий, надо просто её нажать через пробел а не мышку!
С меня тонна нефти.
Хуй знает появился-ли в новых версиях юньки удобный способ это сделать, но самый наивный способ это добавить на твою кнопку скрип который по нажатию хоткея будет инвоукать onClick ивент на самой кнопке. m_Button.onClick.Invoke()
Можешь попытать счастья с NavMesh Components, это более up-to-date ветка Юнити навмеша, доступно на Гитхабе.
Но так же есть вероятность что ты хуй и делаешь какую-то хуйню (а мог бы делать игры), и вместо того что бы поправить свой код нашёл первый вайнер тред по запросу фича_нэйм из багд и сидишь довольный, ведь главное что ты не лох.
Спасибо большое, спас меня, от Юнити блин, на кнопку уже нажать нельзя нормально. Думал уже убрать ету кнопку и сделать все скриптом голым, а вот оно как получилось, спасибо :3
Вообще-то, в больших и сложных приложениях (а игры безусловно таковы) принято создавать менеджеры действий (action manager) которые содержат в себе реально выполняемый код этих самых действий, а кнопки, хоткеи, тач-ярлыки и любой другой ввод только обращаются к экшонам экшонманагера.
И тут мы снова упираемся в невежество
https://learn.unity.com/tutorial/create-a-simple-messaging-system-with-events
Я ето понимаю всё да, спасибо. Уже сам пожалел, что не сделал такую штуку. Просто нет времени, тороплюсь на джем, лол.
Сдаётся мне у тебя ссылка на что-нибудь побилась. При копировании/реактивации кнопки попробуй заново расставить все переменные как надо.
Чтобы кнопку "видела" мышка в кнопке должна быть картинка с включённым рейкастом и альфа-каналом выше нуля. Сам текст, вроде, тоже можно целью рейкастов задать, но насколько я помню один только текст плохо или и вовсе не работает.
> Уже сам пожалел, что не сделал такую штуку. Просто нет времени, тороплюсь на джем, лол.
Лучше день потерять, а потом за 5 минут долететь. Чем дольше живу, тем чаще вспоминаю эту шуточную фразу из мультика в детстве.
У тебя навмеш агент не настроен или контроллер персонажа, тупой ты еблан.
Кури туториалы, потом обвиняй движок. Почему я в своей игре смог нормально настроить фолловинг сопартийцев за мейн чаром без строчки кода? Я что, маг-чародей?
Вангую, что они у тебя бегали по ровной плоскости без подъемов, на которых навмеш криво генерится.
Установил лайтвайт рендер по инструкции: https://answers.unity.com/questions/1535235/shader-graph-error-the-current-render-pipeline-is.html
Всё по пизде пошло. Я так охуел, что аж руки трясутся.
Не трясись, всё нормально.
Я вот сегодня импортнул тайлшит размером 1024 на 1024, и пытался порезать на слайсы, так у меня юнити завис, и пришлось прибивать процесс через диспетчер задач.
Просто прими факт, что ты жрёшь говно, но альтернатив нет, гондот еще хуже, а анрил слишком тяжеловесный для инди и небольших игр.
В годоте у меня не корраптился весь проект, если допускаешь ошибку в ресурсном файле.
Было недавно такое. Изменил шейдер, сохранил, откатил назад, опять сохранил и всё норм стало. На прошлой версии такой хуйни не было.
> Установил лайтвайт рендер
Ну так и материалы через соответствующие шейдеры ебошь. Или вот эту хуету въеби
А от чего охуевать? Откатываешь к бекапу и пробуешь снова. Ты же делаешь хотя бы ежедневные бэкапы?
Одно другому не мешает. VCS для кода хорошо, а для остального не всегда хорошо. Плюс VCS может сам себя похерить и никак не защищает от пиздеца вида умер винт.
> VCS может сам себя похерить и никак не защищает от пиздеца вида умер винт
Что, простите? Я из любой точки мира могу на голую винду скачать любую ревизию любого своего проекта.
Потому что у тебя твои репозитории забекаплены удалённо. Чистая VCS совершенно не подразумевает этого.
Ладно, уговорил. Но зачем бэкапы когда есть гит, меркуриал или, прости господи, коллаборейт из коробки?
Могу по своему опыту сказать - скорость и отсутствие мозгоёбства. Проект на 100гб разворачивать и собирать из VCS будет намного дольше (и не факт что успешно с первой попытки) чем просто из бэкапа образ достать. Т.е. что бы отследить изменения, в команде работать и т.д. - конечно VCS, но если в обед сгорел HDD, то куда как проще и быстрее просто развернуть утренний образ системы и продолжить работать.
Но судя по дрожащим рукам, этот "разработчик" ничего вообще не делал для сохранности своей работы.
Да.
OnValidate тебе в помощь. Ну или на хоткеи повесь, если тебе в рантайме надо.
Ещё вопросик, каждый раз когда я создаю обьект на сцене он появляется хз где, так что приходится часто жать "reset position". Полюбому есть решение чтобы это можно было забиндить на клавишу, подскажите если знаете.
>когда я создаю обьект на сцене он появляется хз где
Ничего не поделать, так юнити устроен, в только в рандомной точке может создавать объекты.
>Не в рандомной, а в центре сцены.
И куда он денется если когда он в центре нажать "reset position"
Да, но по дефолту объект создастся в центре пространства относительно точки зрения во вкладке сцены.
Чем твой воображаемый хоткей будет отличаться от двух кликов, которые занимают меньше секунды?
А, ты про примитивы
А что если я скажу тебе, что можно не переходить, а юзать оба движка параллельно?
>>598335
О, спасибо, неочевидная хуйня.
>>598355
Таки да, вкатился недавно. Читаю, смотрю, делаю тестики. Хотел один свой существующий проект по быстрому воспроизвести в юнити, чтобы заценить хвалёную простоту и скорость разработки. Но чот обосрался.
> а юзать оба движка параллельно?
Зачем жрать забагованное говно из двух вёдер параллельно, когда есть божественный анрил?
А что если я скажу тебе, что можно юзать три движка параллельно. Инбифор, крайэнджин. А что если четыре?
Это да. Впрочем, современные движки всё равно используют мэйнлуп с коллбэками. Можно приноровиться. А иначе как лучший движок выбрать? Только щупать лично.
Теперь поможет только переустановка виндовс.
Студия в которой я работаю пользуется инхаус втулкой для конвертации флеш анимаций в плоские меши (вертекс колоред, по мешу на кадр) которые потом используем в движке. Со сложными градиентами правда что-то там не срослось (нам и не надо, рисовка специфичная). Ну и т.к это покадровая анимация, мячики плющит, ноздри натягиваются заебок.
Но открытые ассеты для такого ищи сам, чё ахуел?
Не вариант, потому что в ходе цикла может выпасть прерывание цикла, а действие нужно выполнять после полной проверки. Тащемта -1 к длине помог.
Да, действительно лучше брейк. Хотя и так работало из-за проверки статуса.
Вот это переобувания в полете, мань. Ты обоссана повторно.
Тормозной код - это чекать массив ссылочных типов данных(тегов), долбоебина ты малолетняя. Вместо того, чтобы кукарекать какой ты тупой, сел бы нахуй на 5 минут и на бумажке по таблице раскидал группы призаков под определенный тег, еб твою мать.
Visual studio - самый мощный инструмент. Прочие редакторы хуй посасывают с причмоком.
Щас бы в 2к19 вручную линки выставлять и закрывпть приложение до сохранения данных. Тебе рано игрульки делать, манька. Сначала жеппу научись подтирать с соплями.
Маня, а ты в график-сеттингс внес профайл шейдерграфа?
Не слушай этого обоссаного дауненка..>>598593
На самом деле можно использовать один материал, просто во время запуска приложения можно получать доступ к материалу и менять его цвет.
Переименуй один из кубов на сцене в CubeZaloopa, создай файл скрипта, помести его на камеру, допустим...
Чисто для примера:
void Update()
{
If (Input.GetKeyDown(KeyCode.Q))
{ Gameobjet.Find("CubeZaloopa").GetComponent<MeshRenderer>().material.color = Color.red.
}
}
При запуске игры, если нажмешь q - цвет куба с белого на красный должен поменяться. При этом на оьоих кубах будет один и тот же материал, но там где сменится цвет, будет создан экземпляр материала.
Прыгать между шарпом и крестами один хуй мозг сломишь.
>мэйнлуп с коллбэками
Я к ецс приноравливаюсь, есть мейнлуп, а есть некая абстрактная асинхронная ебатория. В принципе, мне нравится даже.
>>598601
А можно использовать MaterialPropertyBlock и рисовать два куба с одним материалом и разным цветом всего за 1 дроуколл.
> А можно использовать MaterialPropertyBlock и рисовать два куба с одним материалом и разным цветом всего за 1 дроуколл.
Можно. Можно и атласами решит эту же задачу. Можно и писю в попу принять. Вот только судя по вопросам задающего, ему в такие дебри лезть рано, только запутается больше.
И это получается гораздо свободнее. Юнити может реализовать иерархию годота, а годот не может реализовать иерархию юнити.
Хотел это в движкосрач запостить, но у меня нет цели сраться. Просто инфа к размышлению для адекватов.
>Сравнивает суперпрофессиональный двиг за 6млрдов с хобби поделкой ленивого композитора хуанга
>адекват
>>598611
>MaterialPropertyBlock
С каждым днём я всё больше убеждаюсь что юнититред знает ответы на все мои проблемы, но выдаёт он их рандомными интервалами случайным людям и с неопределённым количеством ненависти направленной на них. Просить ответы бесполезно, нужно только терпеливо ждать, и тогда вселенская истина сама к тебе придёт. Может быть.
Больше бери. Весь двач так работает. С 2007-го года (в 2006-м это была мелкоборда для своих).
Мань, компонентная система и задумывалась юнити-разрабами как более гибкая альтернатива прямому наследованию. Чтобы хуяк-хуяк, накидал компонентов и в продакшн.
Пернул с этого философа. Не расскажешь, сколько игр уже зарелизил с таким подходом?
> Чтобы собрать в юнити годот-стайл сцену, вы должны делать все геймобджекты только с одним компонентом и одним скриптом.
Попробовал сейчас так сделать. Сцена моментально затормозила. При запуске сначала пусто, потом из пустоты вываливается этот композитный кадавр пиксрилейтед. Хотя рядом с ним такой же на одном геймобджекте появляется моментально и скачет по канве. Кажется, я начинаю понимать суть ЕЦС.
да меня итак движок обоссал а ты еще на шею насрал
А теперь представь сколько возможностей бы открылось, если бы прочитал документацию.
>это чекать массив ссылочных типов данных(тегов)
Минуточку. Когда ты сравниваешь interned строки из массива, то происходит просто сравнение указателей. Никаких данных по этим указателям не загружается.
Это тоже самое как если бы был массив интов.
Я не умею читать документацию
>https://www.youtube.com/playlist?list=PLX2vGYjWbI0RfcpqpKlmLEy7NteIog8g4
Понял все что делает код, но не представляю как я должен придумывать такие конструкции сам.
>https://www.youtube.com/playlist?list=PLX2vGYjWbI0RZ3M5zSs-cegtIzv-FBi4q
Ну тут понятно, простейший курс
>https://www.youtube.com/playlist?list=PLX2vGYjWbI0SKsNH5Rkpxvxr1dPE0Lw8F
Понял только первые четыре видео, дальше идет полный пиздец, который в игре даже проверить нельзя, потому что для того чтобы увидеть изменения нужно написать еще миллион функций и классов.
Посмотрел в факе https://noobtuts.com/unity Но по моему тут слишком легкие примеры. Наверное в каждом 80% содержимого будет руководство о том как загрузить спрайт в геймобджект.
Как дальше развиваться? Я впринципе могу начать делать игру, но мне кажется я буду писать дикий баганый говнод от которого я заплачу и брошу изучение юнити навсегда
> Как дальше развиваться?
Гугли и кури материалы по шарпу. Тебе нужно общее копутер сцаенс, чтобы быть уверенным в себе и писать говнокод, от которого ты не заплачешь, а заухмыляешься. Особенно когда у другоих от твоего говнокода бомбанёт. Ни с чем не сравнимое ощущение.
Так. Кроме шуток. Учи шарп. Учи алгоритмы. Учи паттерны.
Там не трёхмерные объекты, обычные фотографии, никакой анимации/движения и прочего. В стиме есть мод, но автор уже года два как забил на него, я думал продолжить.
Тебе нужно где достать коммерческий проект в опенсорсе или стать йоба программистом который сам придумывает оптимальную архитектуру приложения, но для этого нужно логическое мышление.
С обычными рогаликами вроде все понятно. Там просто состояние игры представлено как данные, которое изменяются каждый ход, а потом просто каждый раз перерисовывается заново.
А как быть в юнити, я же не могу просто удалять и создавать объекты каждый фрейм. К тому-же хочется сделать разные анимации и т.д. В общем непонятно.
Есть у кого-то опыт нормальных пошаговых рогаликов на юнити?
Привет. А вот ты понял что автор пикрила накодил?
Просто менять позиции не вариант?
Хуя себе как у скотопидорахи разворотило очко. Тебе разработчики юнити кончали в горло и клали потные яйца на лицо, что ты их так рьяно отстаиваешь?
К посте нет ни слова о том, что надо хранить набор тегов как массив, есть более оптимальные способы, такие как битовые поля (упомянут в посте, на который ты бомбанул), сеты. Теги необязательно хранить и применять внутри движка как ссылочные типы данных, можно запросто приводить их к инту как enum.
Ну не пизди, даже не самый быстрый двиг типа юнити не стал бы тормозить на трех гейм обжектах на сцене.
А еще смак в том, что раньше в юнити нельзя было делать вложенные префабы, и Хуан выебывался своим наследованием сцен, мол, уникальная фича, ты можешь сцену внутри сцены внутри сцены внутри другой сцены, и так до бесконечности. Но потом юнитеки запилили вложенные префабы и Хуан жидко пукнул со своими сценами.
>Как дальше развиваться?
Переставать СМОТРЕТЬ и начать делать. Что же за зумеры нынче пошли, только смотрят и смотрят, а высрать ничего не могут, это есть то самое клиповое мышление?
ЛЕГАСИ
Е
Г
А
С
И
Уверен, если бы они сейчас запилили двиг с нуля, в его последнем состоянии, отбросив все говно мамонта 10 летней давности, он получился бы легковесным и быстрее в несколько раз. Но нельзя вот так просто выбросить поддержку легаси говна, в мире полно калоедов, которые продолжают дрочить на старьё, типа тех, кто продолжает сидеть на хп, не переходит на блендер 2.80 с 2.79, сидит на втором питоне вместо третьего, и т.д.
>Не ужели их код настолько обдрочаное говно что в нем нельзя добавить строчку что бы все в пизду не развалилось?
Да это так, они набрали пидаров и фемок, типо они не хуже нормальных людей, и теперь у них пиздец полный
> не переходит на блендер 2.80 с 2.79
Этой проблемы вообще бы не было, если бы они не перепутали интерфейс. Нахуй это было делать? Есть вообще еще примеры чтобы большие проги перепутывали интерфейс просто так? Ведь там все то же самое везде, просто панель слева убрали, все перетасовали, делать нехуй.
Они неспроста это сделали. Над новым интерфейсом работали спецы по UX и юзабилити, этот интерфейс делали в том числе и с учетом пожеланий крупных студий и профессионалов (сейчас вот юбисофт начал в блендере 2.80 анимировать).
Так что надо просто смело отбросить привычку и идти вперед, навстречу прогрессу, а не быть калоедом-пидорахой, поднимающим вой. Поверь, все изменения обдуманы по 100 раз, разрабы понимали, что калоеды поднимут вой, но все равно нашли силы сделать эти изменения, и правильно сделали, потому что легаси нельзя поддерживать вечно. Старой схеме все-таки уже больше десятка лет было.
Ну вообще да. Просто хуяришь всё подряд, набиваешь шишки и надрачиваешься. Через время придёт просветление.
Именно так, берешь и делаешь, только не крузис, а какую-нибудь мелочь для начала, тетрис, марио, змейку какую-нибудь. Главное доводи до конца, даже с говнокодом. В следующем проекте будет уже меньше говнокода, появится опыт, сделаешь ошибки и в будущем уже не будешь их допускать.
>этот интерфейс делали в том числе и с учетом пожеланий крупных студий и профессионалов
Что ты пиздишь хуйню, долбоеб, такого интерфейса нигде вообще нету, они ничего не изменили по сути, только местами одну понель поменяли, пиздабол.
Есть 2д проект.
Есть анимация того, как персонаж стоит.
Есть анимация того, как персонаж идет.
Есть анимация переходит из "стоит" в идет". (и обратная)
Как корректно осуществить переходы? Анимация "перехода" из "стоять" в "бег" должна быть отделена от бега?
На рилейтед пике мой вариант. Все ок, кроме того, когда переключаешь резко справа налево (или наоборот) - повисает в анимации перехода вместо бега.(если отключить has exit time для анимации "перехода", то он ее вообще игнорирует почти что)
А смысл поддерживать легаси если проект нельзя обновить без тонны ошибок? Вот например тарков пилят на 5 юнити, и че блядь они вот так просто смогут обновить проект? Да хуй там, придется все заново тестировать, переписывать большую часть скриптов.
Если я правильно понимаю, то ты хочешь бленд три. Нажми на любом стейте анимации и жмакай сделать бленд три, там можно делать разные группы и ветви анимаций.
Установил в юнити, вставил скриптбл в нужный слот, где его надо вставить и в итоге у меня вместо текстур - розовая залупа без текстур. Без этой ебалы у меня всё нормально, но мне охота сделать пару шейдеров, ибо графон уровня б ещё и лоу поли игра, лол.
Пиши код шейдера как белый человек
Орнул с порвавшегося хуесоса. Щас бы лепить костыли из битовых масок, переходных enum-ов вместо использования instanceIDs. Тебя, пидорана, какая блядь высрала из своей разъебанной сраки, а потом костылем пизданула по твоей обоссаной башке да так, что ты теперь без костылей жить не можешь, чмошка?
Сощдай рендер профайл и его установи в график сеттингс. Вы, бляди, хоть немножко читайте документацию, прежде чем лезть куда-то.
Бесполезное дело. Чтобы это в памяти осталось нужно пользоваться им постоянно. Ну, пролистаешь ты документацию, поможет это тебе в деле? Это, может, ты у нас из компуктер сцайенс вышел, у тебя на занятиях сформировали память таким образом, чтобы документация по полочкам раскладывалась. Но мы-то здесь самоучки с вышкой в каком-нибудь маркетинге а то и вовсе без образования, нам-то какой толк от документации? Вот ты инструкции к стиральной машине новой читаешь, ты сразу весь функционал запоминаешь и можешь из памяти использовать?
В Юнити половина фич незадокументирована.
Сейм шит, тоже застрял на этом. Все туториалы по простейшим вещам, а такого, чтобы достаточно прокачать опыт с движком для того, чтобы начать уверенно ориентироваться и что-то делать самому нет.
Объективно новый интерфейс лучше. Просто если привык к старому, то это неудобно. Ну это само собой.
Попробуй BlendTree
Вся проблема в том, что нет единого решения для какой то задачи. И в каждом туториале люди показывают тот или иной вариант. Поэтому важно понять как работать именно с инструментами, а как уже из них слепить что-то желательно думать самому. Ну и лично по моему маняопыту, когда сам даже говнокодишь но ты понимаешь как это работает и как это можно улучшить, чем когда повторяешь за кем то, даже если он хорошо обьясняет.
Я нашел серию уроков Ruby's Adventure. Сейчас пройду и буду пилить свою йобу
https://blogs.unity3d.com/2019/08/06/dont-miss-unite-copenhagen-where-creativity-and-technology-converge/
То состояние движка, когда даже уже на пиар-вечеринках нечего рассказывать.
Сказками про ECS уже все объелись видимо.
А чо с ECS кстати? Мне такое пригодилось бы, как вкатиться? Норм гайды на ютабе есть? Документация? А то не встречал еще ничего годного.
Все как всегда. Сделали превью и забили хуй. У них вроде визуальное программирование новая тема.
Нахуя она нужна, дурик. Только для задротов каких-нибудь.
Вижуал скриптинг полностью поверх ецс, так что переключиться на новую хуйню не выйдет.
Во-первых не на ютубе, а на оф. сайте.
Во-вторых, документация для уточнения а не для обучения, опыта работы с движком она не даст.
Кажется, ты ищешь слои.
Только потом жмакни в нём по шестерёнке и покрути там Weight и Blending
Разберёшься
>документация для уточнения а не для обучения, опыта работы с движком она не даст
Ебать дебил.
Документация даст тебе представление об устройстве движка и его возможностях. Прочесть документацию - это первое что ты должен сделать перед использованием программы. А ты тратишь время на бесполезные ролики с ютуба.
Ты пытаешься решить проблему с помощью инструмента, не зная инструмента. Не зная инструмента, ты можешь самостоятельно составить план решения проблемы, поэтому тебе как тупому дауну только остается как макаке повторять за идиотами с ютуба.
Иди бегом читай все доки от корки до корки.
Дело в том, что "мастера" из ютуба (и даже авторы официальных туториалов) используют только базовые вещи. Как объекты двигать, как коллизии чекать, риджидбади ебать, рэйкастики кидать и всё такое.
Хуеву кучу возможностей они не используют. Вот, например, захочешь ты себе упросить жизнь и автоматизировать рутину, а нихуя не знаешь как использовать 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
>GetColorBlindSafePaletteGets a palette of colors that should be distinguishable for normal vision, deuteranopia, protanopia, and tritanopia.
Ммм, уже чувствую, как растет понимание движка.
Или мануал, про то как скрипты добавлять и компоненты настраивать?
Нет, мне нужна не инфа по отдельным частям, мне нужно усвоить как это все вместе использовать. Т.е. не учить словарь и грамматику, а пожить год в среде нэтивспикеров, если проводить аналогию.
Хватит выебываться своим Даннинг-Крюгером.
>мне нужно усвоить как это все вместе использовать
Использовать то, не знаю что. Пиздец, зумерки реально ебанутые.
Что "вместе использовать"? Никто тебя не научит делать игры вообще.
Объясняю еще раз для даунов как это работает. Ты сам должен решать эти проблемы. Чтобы что-то сделать, ты должен составить план в голове "чтобы получить такое-то конечное состояние, мне нужно сделать такое-то и такое-то действие в юнити". Так как ты нихуя не знаешь какие действия ты можешь делать в юнити, ты самостоятельно не можешь решить проблемы. Поэтому тебе остается только повторять по шагам что показывает в роликах.
Это не обучение, а копирование.
>Даннинг-Крюгером.
>зумерки
Хватит одни и те же словечки в каждый второй пост пихать, это не добавляет убедительности..
Во-первых, о степени моих знаний о том, что можно делать в Юнити ты можешь только догадываться.
Во-вторых, твое мнение я понял, хватит его навязывать. Тем более, что я о нем не спрашивал.
Потому что юнити нихуя и не делает. Только спрайты загружает. Все остальное - самому.
Не преувеличивай. Ну может еще дописать пару строчек скриптов из туторов на ютубе.
Делают долго геймдизайн. Сделать перемещение спрайта по экрану быстро. Только это еще не игра.
А вот как все увязать вместе - этому нигде не учат. Потому что у тебя уже должны быть базовы знания. Типичный ютуб-сенсей этими знаниями не владеет, а кто владеет тому не интересно преподавать азбуку. В лучшем случае поделитсях на уровне "дорисовать остаток совы".
>Во-первых, о степени моих знаний о том, что можно делать в Юнити ты можешь только догадываться.
Эта степень знаний стремится к нулю, очевидно же. Чего еще ожидать от просмотрщика ютуба, который только СМОТРИТ, как другие делают, вместо того, чтобы делать самому, фундаментально изучать вопрос и нарабатывать опыт на практике.
Ну даже если из двух. Все равно не понимаю хули так много времени тратят на разработку
Посмотри на код из реальной игры
https://github.com/NoelFB/Celeste/blob/master/Source/Player/Player.cs
Даже заставить спрайт нормально двигаться - это не хуе-мое.
В оригинале правило 20/80, но чтобы оно заработало, нужно чтобы были готовы все необходимые вещи на 80%. Если ты реализовал пару основных фич в прототипе, то это нифига не 80%, ибо еще надо графон, звук, интерфейс и все прочее пилить.
Так-то прототип за пару дней можно наляпать. Но за 10 дней ты не доведешь его до отличного состояния.
Это пиздец какого уровня говнокод, просто солянка из анти-паттернов.
Но в целом ты прав, хороший физон и управление для платформера сложно запилить, нужна алгоритмическая подготовка, есть десятки нюансов, нельзя просто взять и навесить ригид боди на спрайт.
>Целый год геймдизайнят?
Год это еще мало. Контент, геймплей, дизайн уровней.
Прототип игры можно запилить за пару месяцев. Сложность в том, чтобы сделать так, чтобы в это было интересно играть.
По опыту своей работы, могу сказать что это действительно пиздец насколько дольше, чем кажется. Особенно если вас не сильно дохуя.
Графон — это пол беды. Для этого художники есть. Но и с ним проблем хватает. Дохуя времени уходит чтобы его вставить, чтобы везде всё ровно было, ничто друг на друга не налезало. Ненавижу графон в юнити вставлять, а особенно его анимировать.
Но всё это хуйня. Самый ад — это правки. Сколько бы диздоков у вас не было — проект будет меняться. В процессе разработки постоянно вылезают какие-то нюансы, которые могут привести к перепиливанию большого участка кода и контента. И чтобы всё это не превратилось в башню из костылей — ты будешь рефакторить. И не один раз. И заново вставлять перерисованный графон. И интерфейс. И звуки.
И да, я же говорил что после каждого нового модуля (или перепиливания) это всё надо тестить? А это опять же время, которое тебе приходится тратить.
Хотя, у нас ещё и вечные войны с психологами и методистами (у нас довольно своеобразный контент, без них никак), которые постоянно свои правки вносят, и их мало ебёт сколько всего для этого придётся менять, так что не уверен что те же разрабы Хотлайна сталкивались и такими проблемами тоже.
И да, хуярить 3D намного быстрее, чем 2D. И дешевле.
Рендер подключи новый и создай новую версию текстурки.
> сделали за месяц
В такой игре только на то чтобы сделать перемещение персонажа "как надо" требуется полгода как минимум на вылизывание. Делать игры - это сложно.
Да, крутой скрипт там. Я не думал, что столько переменных можно вообще в один скрипт пихать, я думал он вообще взорвется из-за этого :D
Так это xna, в юнити им разве что прыжки по стенам долго тестить нужно было бы.
Ну ахуеть с такими темпами екс будет готов к 5000 году.
Мёртвая штука от Microsoft. Нынче есть опенсорсная реализация по имени MonoGame. И это близко к Юнити не имеет отношения.
Маня-мир. В юнити скрипт был бы точно такого размера, там кастомная физика. И на юнити бы пришлось делать кастомную, чтобы оно ощущалось как надо, дефолтная юнитическая ощущалось бы как генерик говно
>В юнити скрипт был бы точно такого размера
В юнити скрипт был бы такого размера, каким его бы написал программист. У меня конечно все скрипты маленького размера. У таких говнокодеров как ты и авторы celeste скрипты по 5к строк.
Зависит от изначального скилла. Если ты новичок, то берись за более простые проекты: крестики-нолики там, арканоид какой-нибудь. У людей с опытом не возникает вопросов как сделать умную камеру.
> У меня конечно все скрипты маленького размера.
Потому, что у тебя нет игр, ты никогда не программировал полноценный геймплей, а то, что перепечатанный туториал с ютуба помещается в 20 строк, это нам всем понятно, можешь не рассказывать.
>И да, хуярить 3D намного быстрее, чем 2D. И дешевле.
ну да, камера сама тебе и тени, и перспективу и прочее отобразит как надо, а в 2d это все рисовать надо
"У класса есть некие состояния, весь вывод берет на себя некий другой код"
Это говорили к тому, что не надо из скрипта player выводить сразу на UI значения.
И у меня нубский вопрос- как правильно передавать значения из одного скрипта в другой?
Я пробовал использовать сначала просто static переменные, лол. Потом научился передавать сам скрипт. Сейчас вот пытаюсь понять интерфейсы и синглтоны. Но не догоняю пока.
Наверное вопрос платиновый и гугл знает лучше, но скажите, я вообще в правильном направлении копаю?
Вот например у такой код, это норм таким образом цифру передавать на _health игрока?
public void SetHealth (float currentHealth)
{
_health = currentHealth;
}
Ето рофл такой? Я просто слышал, что его лучше не юзать.
Как правильно передавать значения между классами это весьма абстрактный вопрос.
В случае с UI примером, можно пользоваться ивентами.
В игроке у тебя есть ивент
public event System.Action<float> OnHealthChanged;
тригеришь этот ивент из какой-то внутренней функции обновляющей хп или из сеттера проперти,
Есть так же скрипт PlayerUI, который на OnEnable подписан на ивент игрока (не забудь отписаться на OnDisable)
m_PlayerReference.OnHealthChanged += UpdateHealthUI;
и реагирует на него фунцией а-ля
private void UpdateHealthUI(float health) {}
которая что-то там делает.
В итоге весь вывод состояния (а точнее изменения состояний) таки берёт на себя другой класс, о существовании которого класс игрока даже не догадывается (и ессесна не контролирует).
Можно это всё ещё сильнее абстрактировать при желании и сделать UI елемент-хелсбар которому только и нужен реф на носителя IAlive (интерфейс всех живых - имеющих ХП болванок). Но у задающего вопрос, как мне кажется представления о композиции нет, так что похуй.
>>599397
Забудь про это дерьмо и никогда не юзай.
Щас бы харкодед функциями передавать броадкасты в пустоту
Нет уж, дружек, никогда не программировал полноценный геймплей тут ты. твои соло огрызки не в счёт
Если ты считаешь что скинутый код сниппет это норма, то ты как раз и являешься представителем ютуб туториал макак которые считают что от сложности код маштабируется только в длинну.
5 блядских тысяч строк отборного говна никак не взаимосвязаных друг с другом. Класс должен выполнять одну очевидную функцию, в данном примере же они решили впихнуть сюда хендлинг всех возможных контролов, тут у тебя и передвижение, и прыжки и вол джампы и даже какие-то специальные абилки доступные только наличием каких-то специальных предметов в инвентаре, специальные эфекты того как тебя в какой-то катсцене отбрасывает босс (!) и, внезапно, даже вообще отдельный котроллер для какого-то Star Fly State, очевидно не имеющему отношение к чему-либо из 3 тысяч строк выше.
Оболтусы которые это писали даже распилили свои испорожнения регионами (видимо что бы сворачивать куски которые им не нужны в редакторе), но не додумались что можно просто подумать больше 15 секунд об архитектуре своей игры и разбить всё это на компоненты поменьше.
Но макак типа тебя это всё равно впечатляет, мол, ебать какие боги геймдева, аж 5к строк в скрипте!
мимопрограммист
Как ты научился всему этому?
Я пробовал читать книжки по шарпу, но они или слишком простые, или слишком углубленные. Понимаю, что надо изучить разные фабрики, подробнее изучить все классы и функции, лямбда выражения и вот это всё, а еще ООП понять окончательно и блин, столько всего надо знать.
Много времени у тебя ушло на это? Учился на прогера?
Я вот попробовал курс купить Unity для профессионалов | От Junior до Middle Да, ебобо совсем, многого не понял до конца, но мне кажется, что-то проясняется потихоньку.
Что вообще посоветуешь? Больше кода писать? Больше книжек читать? Или всё вместе, еще присыпать бессонными ночами и тогда может быть месяцев через 6 у меня начнет что-то получаться нормальное не вырвиглазное?
О, вот я с тобой согласен.
Но по сути у них видишь, всё работает. Игру делали всего 2 человека. А написание хорошего кода требует больше времени, как мне кажется. А они решили поступить просто- экономят время на коде и отрабатывают геймплей. Поэтому игра и стала такой хорошей. А не из-за того, что там код в 150 абстракций обернут.
Но это опять же моё мнение новичка.
Если есть большая команда то конечно, поставить спец программиста и пусть пишет идеальный код. А когда там всего 2 человека, им же важнее геймплей отработать и иметь стабильный простой скрипт.
Ну я вообще о событиях недавно узнал только, хотя уже почти год программирую потихоньку, лол. Как-то без них обходился. Недавно еще интерфейсы начал изучать, но пока не вьехал, как их использовать правильно.
Но их игра стала игрой года, они теперь могут не работать остаток жизни. А ты мимо-программист, сосущий хуй за копейки. Тебя правда греет мысль, что ты что-то там шаришь в архитектуре?
Какая разница, что у них не идеальный код, важнее, что получился хороший продукт. Игры создают не для того, чтобы потом игроки сидели и охуевали "ебаать, да там ни одного файла больше 50 строк, все разбито на компоненты, ебать там архитектура".
Да всем похуй на это. Главное - конечный продукт.
Вылизанный код не сделал бы игру лучше, он только убил бы кучу времени и игра могла бы выйти позже или вообще не выйти.
Так что не еби мозг, всем поебать на твою архитектуру ровно до тех пор, пока в ней не возникла острая необходимость. Ты бы еще до хелло ворлда доебался, что там паттернов мало, абстрактные фабрики не юзаются и все в одном файле.
> уже почти год программирую потихоньку
Ну если "потихоньку" это пара часов в субботу вечером, то для года это ещё относительно нормально.
Если устроишься куда-нибудь джуном, то будешь по 8 часов в день хуярить и, возможно, чужой код перелопачивать, вот там быстро придётся понять что к чему.
Не согласен.
Хороший модульный код разбитый на абстракции (в здравых количествах) упрощает и ускоряет работу. Геймдев это сверх итеративный процесс, ты постоянно вносишь куда-то изменения. Чем проще твой код читается и понимается, тем проще тебе будет через две недели поймать странный баг с неправильно переключающимися стейтами или добавить специальный кейс для супер-прыжка при наличии спец предмета. Чем меньше времени ты тратишь листая вот такой пиздец на 5к строк и добавляя костыли костылям, тем больше времени у тебя есть реально заняться геймплеем.
Не имея опыта собрать проект с адекватной архитектурой конечно очень сложно, и каждый напишет пару полотен по тысяче+ строк перед тем как познает дзен (потому этот процесс в реальном продакшене обычно курируют бородатые дяди в свитерах, а не мы с вами двачеры-дегенераты), но я блядь уверен что не нужно иметь семь пядей во лбу что бы увидеть [на этапе продакшена] что скинутый код это просто пиздец и надо менять подход.
Закончили разработку, наверное, чисто на мотивации никогда больше этот понос не видеть.
Ух блядь, я забыл, игры это исскуство, а миллион мух не могут ошибаться!
Смысл в архитектуре в том что он ускоряет, а не замедляет процесс. И если бы они писали всё по-человечески - было бы больше времени посвятить реально важным моментам разработки. Потому что как ты заметил, главное - конечный продукт, а наступая самому себе на пятки добиться чего-либо как минимум сложнее.
Ну и, просто что бы ты понимал, если уж они открыли исходники и они были выложены тут, возможно в целях того что бы показать вкатыльщикам как должен выглядеть код, есть смысл обьяснить почему этот код хуёв и стремиться к нему не надо. К их успеху и решениям в геймдизайне - да. К коду - нет.
и чет орнул с сосания хуев за копейки, ты-то уж точно добился успехов вместе с разработчиками игры, ух, тоже наверное до конца жизни не будешь работать и сидя у мамки на шее строчить хуйню в юнититреде?
В команде 7 человек, продано чуть больше полумиллиона копий по цене меньше 20 долларов. Если после налогов, поборов торговых площадок и рекламы к ним добралась хотя бы треть - хорошо.
Не так и много надо двачеру что бы не работать до конца жизни.
Ну давай разберем по частям тобою написанное.
500000 20 / (7 3) = 428к долларов.
Что примерно равно 28 миллионам рублей. Если представить, что ты будешь жить еще 40 лет, то это 700к в год, или 60к в месяц. Так что таки да, можно не работать до конца жизни. А если еще и с умом подойти к этой сумме, можно её и приумножить.
> 60к в месяц
Тебе разве этого достаточно, чтобы "не работать"? Не, если никогда не болеть, никуда дальше своей мухосрани не выезжать, все проблемы с жильём свалить на мамку, то, наверное, более чем. Но оно всё немного не так.
мимо шёл, дальше пошёл
Вот только разрабы из Канады, и тут получать, скажем, 100к/год в большом городе это не так и много. Не говоря уже про то что разрабатывая игру, разрабы скорее всего делали это фулл-тайм, следовательно их расходы за период разработки стоит вычесть из профита.
Хватит жить в маня-мирке, далеко не все успешные инди девы выстрелили как Нотч. Они заработали себе приличные суммы, но даже не в стравнении с фулл-таймом на какой-то большей кодо-галере. В инди идут за другим.
Например выставляю Input.GetButtonDown("cancel") - ноль эмоций.
Выставляю Input.GetButtonDown("pause") - работает?
Что за ебанина? Настройки одинаковые.
Эти быдлокодеры издеваются надо мной?
Отдельно объект с анимацией и отдельным объектом коллайдером или все в одном объекте?
Проблема в том, что чарактер "застревает в текстурах" при смене анимации
У тебя от анимации коллайдер деформируется что ли?
Хочу одновременно клаву и геймпад подружить.
Сейчас понял, что кажись не работают инпуты, которые задваиваются. Например x у меня ещё под горячий слот забита.
Но всё равно, не могли сделать, чтобы это нормально распознавалось.
Тупое говно тупого говна.
Проверь что бы у тебя GetButtonDown чекался в Update(), а не FixedUpdate(), у меня с таким были проблемы. FixedUpdate() скипает кадры и может скипнуть кадр где кнопка была зарегистрирована нажатой (этот метод возвращает положительный ответ равно один кадр - проебал - сасаи).
Вряд ли проблема в этом, раз при биндинге другой кнопки у него всё в порядке.
Я когда увидел, что так можно, ахуел и подумал что было бы очень круто такое реализовать. Там игра на компанию, на телефон выводятся разные штуки типа (выбери кто из твоих друзей смердящая мошонка) и всё в таком духе.
Видели? Узнали? Помните?
Интересно, юнька так сможет? Там телефоны вроде по вайфай к ней подключались или типа того.
Каждый тред этот вопрос задаю сам, лол. Так и не запомнил.
Обычно тыкаюсь там, пока не получится. Иногда не получается, тогда велийи мегамоск юнити треда дарит мне свои ответы.
Совет с гридом? С картиник не работает
airconsole.com если ты о таком говоришь, там и на юнити игры есть
В импорте спрайта ставишь MeshType: Full Rect
В SpriteRenderer'e со спрайтом ставишь Draw Mode: Tiled
Tiled говорит о том, что, внезапно, спрайт надо тайлить, а не растягивать. В принципе, это даже достаточно, в большинстве случаев Full Rect даже включать не надо. Это, скажем так, сугубо для подстраховки что меш твоего спрайте — это прямоугольник, а не полигон.
Спасибо!
Есть компонент, который отвечает за горизонтальное движение персонажа.
Есть компонент, который отвечает за какое-то особое движение (рывок, например)
Допустим, в компоненте горизонтального движения есть булева переменная, которая определяет, разрешено ли горизонтальное движение для персонажа.
Как корректно менять эту переменную из других компонентов?
Вариант 1: Просто задавать ей значение через сеттер (свойство)
Вариант 2: Сделать нотификацию через систему ивентов (компонент горизонтального движения будет подписчиком)
Почему компоненты отвечают за логику? Они ведь должны за данные отвечать, а за логику - системы?
Тогда я некорректно понимаю что-то. still learning Под компонентом я имел в виду срипт приаттаченный к объекту.
ЧТо ты имеешь в виду?
О, загуглил, нормас, спасибо!
> На компоненте галочка стоит, за счет него передвижение персонажа работает.
Тогда в настройках импорта модели в анимациях ищи что-то про position и rotation, точно не вспомню, давно это было
>m_PlayerReference.OnHealthChanged += UpdateHealthUI;
>В итоге весь вывод состояния таки берёт на себя другой класс, о существовании которого класс игрока даже не догадывается
Еще бы UI не знал о классе игрока и было бы как надо.
>Не, если никогда не болеть, никуда дальше своей мухосрани не выезжать, все проблемы с жильём свалить на мамку, то, наверное, более чем.
Для этого 15к достаточно, хотя откуда москвобляде знать
Ты из будущего? Когда в Юнити ECS полностью запилят?
Тыщ 110, видимо
Мидл, фулстак на шарпе 3 года, миллионник
Работаю в мухосрани, работаю год, за свой юнитидрочинг получаю 50к.
Постепенно перекатываюсь в прикладные вещи, потому что юнити-макак за кодеров особо не считают
другой хуй
Ну в игре вряд ли только игрок и интерфейс будут.
Я начал проект с попыткой сделать всё на ЕЦС, начал просто по фану сетевое приложение - юнити ецс и сервер дотнет с самописным ецс, чтобы глубже осознать концепцию, так сказать. Начал скатываться в момент, когда понял, что не нужен ецс для одиночных компонентов - тот же контроллер камеры или персонажа. Создал отдельные классы, не монобех, просто подписанные на события апдейтов. Потом понял, что мне нужен объект, который будет кешировать ссылки на компоненты. С моей колокольни получилось, что дата ориентед подход нужен, но ецс говно.
Ты можешь литру по паттернов посоветовать?
Там же в секунду будут создаваться тысячи переменных?
все локальные переменные "создаются" в момент вызова функции в стеке, у каждой переменной фиксированный адрес. Где ты их объявляешь не имеет значения
Ты можешь пример своего кода привести? Update такой же метод, как и все
Весь юнити распидорасит. Или убирай циклы, или переходи на годот.
А если циклы в другие потоки выводить?
Ты может сначала подождешь когда его до продакшн-реди допилят, и потом уже охуевать будешь?
>все локальные переменные "создаются" в момент вызова функции в стеке,
Не все, зависит от типа. Сложные типы могу и в heap идти, лишь референс на стеке
>>599601
> Само собой зашквар. Выноси всю эту херню за циклы. Был бы в юнити шарп - таких проблем бы не было, но у нас древнее говно мамонта МОНО.
Хуету сморозил.
>>599605
Не используй unsafe никогда в Юнете. Там с++ база может двигать вещи местами и ты можешь нехуева так акесс вайлануться.
так ты каждый раз создаешь новый массив. это не имеет никакого отношения к локальным переменным.
>так ты каждый раз создаешь новую локальную переменную. это не имеет никакого отношения к локальным переменным.
Ты создаешь новый массив, полуебок.
for (int i = 0; i < 100; i++) {
new int[1000];
}
Смотри здесь нет локальных переменных
И что это доказывает?
Ты пытаешься найти способ сделать игру вообще без аллокация данных? А где ты их будешь хранить? В astral plane?
Курс информатики пройди и возвращайся через годик-два с базой CS
>что быстрее, копировать память 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);
В релизе конпелятор должен такие вещи вроде создания статик struct'ов легко оптимизировать.
Да, я куда-то не туда в мыслях забрел, сначала так и делал, а потом подумал, какой смысл одной и то же переменной присваивать, а это и интересовало изначально анона.
Cпасибо, анон. Ты дал мне логичную причину не делать игру ещё лет пять-семь.
При нажатии один раз ТОТЧАС ЖЕ test.x = 9999999 станет. Если ты хочешь, чтобы при нажатии один раз test.x каждый фрейм на единичку больше становился делай корутину. В начале корутины ставь проверку на то, бежит ли уже экземпляр этой корутины, внутри цикла ставь yield return null
Молодец, с треда съеби еще и заебок нам тут будет
Я это говно через словарь-посредник делал + через него же байндинг кнопок куда хочешь. В словаре каждому NewCode в ключах (твои pause и cancel) соответствует лист KeyCode'ов в значениях, потом чекаю на нажатие всех кнопок из листа, и если да, то выдаёт тру.
Молодец, к успеху идешь. Скоро будешь пилить шедевры как кудесник из этого треда >>599527 (OP)
Есть разница между значимыми и ссылочными типами. Значимые типы создавай в цикле, хоть усрись. Память под них выделяется в стеке один раз за запуск приложения (а потом просто адреса переназначаются, если это нужно) и их объявление ни как на производительность не влияет. Значимые же типы, совсем другая история. Память под них выделяется в куче, потому каждое такое объявление ведет к новой аллокации памяти каждый раз,когда этот кусок кода выполняется. В твоем примере ты выделяешь память под массив, который является ссылочным типом. Потому у тебя и и происходит пиздосий с производительсностью. Попробуй заменить свой массив на любой значимый тип (int, float, bool etc).
>у тебя и и происходит пиздосий
У меня не происходит, я так не делаю никогда.
>заменить свой массив
Давай на строки? Вот хочу я и всё, мне на дваче сказали, что можно так делать, какая-то умная хуйня про аллокацию и всё такое. Ну или второй вариант, аж юнити перезапускать пришлось.
Нет таких
unitylist com
Может процессор сгореть
Мань, ты похоже говна объелась, хуйню несешь какую-то обоссаную. Если у тебя трудности с ECS, посмотри гайды на ютюбе типа CodeMonkey.
Я корутинами иконки по интерфейсу двигаю, во все стороны по своей собственной корутине и ускорение через запуск нескольких корутин в нужном направлении разом. Процессор пока не сгорел.
>используюзие это гавно
С чего ты взял, что раз я это опубликовал в вопросе, то использую и в кодинге, уебок?
Поясните неофиту, чем под капотом шарпа
List<BlaBla> MamkuEbal = new List<BlaBla>();
отличается от
var MamkuEbal = new List<BlaBla>();
И так по инициализации понятен тип, разве нет?
Мне наоборот решарпер постоянно говорит, мол, не еби мозги, юзай var
Не надо его слушать?
Нет, не слушай всяких долбоёбов с двачей, для шарпа вообще похуй, что ты пишешь - вар или тип. Он всё равно сделает по-своему. Хотя я вот вар не использую, потом смотришь в код и сразу ясно, что в переменной должно быть.
О, спасибо, а я-то уж думал там это как-то на производительность может влиять, лол
Так а в чём тогда претензии, если похуй? Только в том, что по левой части сразу не понятно что там объявлено? Или типа моветон?
Нет никаких претензий, 708, 709, 710 посты просто от местного шизика-серуна. Наоборот, мелкомягкие советуют юзать вар.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
>это как-то на производительность может влиять
Хуй там, шарп строго типизированный. В говне вроде джаваскрипта или пхп повлияло бы, а тут похуй.
Благодарю, милсдарь
Пиздец вы тут ебанулись.
var это чисто синтаксический сахарок, чтобы не писать
MySuperList<MySuperClass> a = new MySuperList<MySuperClass>();
Вместо этого пишешь
var a = new MySuperList<MySuperClass>();
И экономишь себе 5 секунд времени, всё. Типизация никуда не пропадает, компилятор знает тип по правой части выражения.
Это нужно чтобы не дублировать два раза тип. Всё. Ни типизация, ни производительность никак не меняются. Внутреннее представление у обоих этих примеров будет одинаковое.
А вы тут просрались на десяток постов как дауны.
Всё так. Мы просто прикалываемся. Не кипишуй.
Я мог бы рассказать, почему вар это плохо. Но я ещё вчера написал всё то же, что сейчас пишешь ты, ёбаный ты слоупок.
написано же, shit.
Тебе внутри метода в принципе не нужно знать конкретные типы объектов. Типы нужны конпелятору.
Зависимость от конкретных типов это все последствия процедурного мышления. Ты рассматриваешь переменные как данные, а не как объекты.
Наверняка у тебя бы там был какой-нибудь код shit.x = 10; shit.collection.Add(new Object()); и т.д.
Так в таких случаях не надо, мелкомягкие же все расписали
>// 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();
Потому что переменные и есть данные, сейчас же дата драйвен кодинг в тренде. Если выбирать между array of structs и struct of arrays, я возьму второе.
>shit.x = 10
Shitter.AddShit(shit, shitsCount);
Надо же отслеживать обновление данных, события вызывать. Можно, конечно, через геттеры, но тогда классы будут длинные, не особо люблю такое, лучше менеджеров наворотить.
>>600086
Значит, иногда вар всё-таки плохо. Но плохо не для конпилятора, очевидно, а для самого кодера.
>Do not use var when the type is not apparent from the right side of the assignment
Ага, а когда тип возвращаемого значения потребуется изменить на другой, то придётся менять его во всех консумерах которые его используют. Охуенный совет конечно.
совет имеет смысл только для встроенных типов.
если кто-то не знает что возвращает метод, то и тип ему ни о чем не скажет.
короче, пиши var и не выебывайся. на практике знать возвращаемые типы ни к чему.
Профайлером прохожусь по андроид билду на своем телефоне, профайлер показывает, мол, все отрисовывается быстро, около 100 фпс, хотя на телефоне явно виден просед до ~25 фпс (тоже самое говорит и средство диагностики, встроенный в ось андроида). Меня наебывает профайлер? Или это я долбоеб?
Хуй знает что произошло, сейчас показывает так как надо.
Хуярить пол и стены одним мешем всё-таки хуже, чем делать модульные? Occlusion culling не работает при таком раскладе и всё добро честно просчитывается.
Или делать модульные меши, но с одним текстурным атласом на все объекты?
Как оно будет работать, если оно объекты считает, я и грю, одна сетка - один объект, если уровень делать как один объект работать не будет.
Сразу видно маня-петуха, который в жизни не работал в командном проекте, а лишь налрачивает спагетти-код в одно рыло. Твои петушрные var-ы хуй разберешь к какому типу данных принадлежат вот так с ходу. Пернул тебе под нос.
Модульные уровни через бандлы самое заебися. Чтобы все охуенно было еще держи в уме, что батчинг на статические объекты (пол, стены и т.п. что помечено ыладком "статик") выполняется при вертекскаунте не более 900. Этого вполне достаточно для модуля.
И второй. В билде тени перестают быть мягкими и становятся очень грубыми, как будто soft shadows выключен. В едиторе все в порядке. Использую lightweight pipeline renderer. Чому так?
>раздутым
Наоборот, они сейчас активно выносят функционал в подключаемые пакеты, пытаясь минимизировать "голый" движок.
Вот ты сложную задачу задал отбитому юнитидебилу. У него при слове var сразу глаза кровью наливаются, как у того быка, и начинает бормотать себе под нос: гондот гондотю гондотиры пидарасы хуан чмо
Петух малолетний, где они там советуют вар использовать? Они, наоборот, не рекомендуют его использовать, особенно там где возвращаемый тип неочевиден, еб твою мать! А то что ты там накукарекиваешь var-ом при объявлении переменных, только путает людей, тухлодырец ты проткнутый.
Хуесосина двухизвиленная, тебе, бляди тухлодырой в голову не приходит, что на практике свободных от контекста данных не бывает, кроме как разве что в дебаг-логах каких-нибудь обоссаных, где все на вывод идет сразу?
Пидрилы, блядь, ебаные, мозгов ни на что не хватает кроме как везде пихать сови обоссаные var, даже в свои анусы. А то чот код нечитаем становится, вам, кириллам проткнутым, невдомек. Обоссал тебя дауненка.
var iEnemyCount = 10;
var fPlayerHealth = 98.99f;
var v3PlayerPos = new Vector3(2f, 13.3f, 10f);
var sPlayerName = "Yebanashka";
Вопросы?
Хуй соси, даун, когда у тебя десятки полей, пока ты среди десятков варов найдешь нужное поле, уже нахуй второе пришествие настанет, еб твою мать, дебил ты ебаный. Не знаю как унтерменши, а люди читают слева на право, поэтому быстрееиискать переменную с приписанным типом данных. Конечно, для хеоллоуворлдщиков обоссаных типа тебя, это, допускаю, не актуально, но в крупных проектаз только так.
bool playerActive = true;
int enemyCount = 10;
float playerHealth = 98.99f;
Vector3 playerPos = new Vector3(2f, 13.3f, 10f);
string playerName = "Yebanashka";
Вопросы?
То есть не осилишь. Ну так и иди нахуй отсюда, говно не профпригодное, твой уровень - свиньям хвосты крутить.
Альзо
>на практике
На практике я таких как ты ебалом в толчок заталкивал.
Ты заебал. Проблема высосана из жопы. Просто не существует такой проблемы, не нужно знать типы локальных переменных. Они ни к чему. У тебя есть имена функций, имена переменных. Используй их для документации кода.
Я уже писал что само по себе знание типа Petuh petuh = new Petuh(); ничего не значит
>Func(GetA(), GetB());
>Нипанятна!
>A a = GetA();
>B b = GetB();
>Func(a, b);
>Вот теперь заебись!
Лол, ебать ты порвалась в бессильной злобе, машка. Повторно нассал тебе в глотку.
Вряд ли всё дело в юнити, там бы хватило на самом деле пяти файлов. Я же учитываю только папку "Code", а не все пакаджи.
>>600490
Мне норм. Это только это окно такое, так оно светло серое на темном фоне.
Куб имеет наглость пересылать своё положение по сети во время движения. Так что, 16 папок, 43 файла ответного дотнет приложения. Я получаю позицию куба.
Нахуя мне знать тип? Если бы мне понадобилось узнать тип то в нормальном ide можно просто навести мышкой.
>Давай на строки?
Строки это тоже ссылочный тип. И память под них выделяеся в куче, а не в стеке.
https://metanit.com/sharp/tutorial/2.16.php
> люди читают слева на право, поэтому быстрееиискать переменную с приписанным типом данных
Ради такой мелочи создавать дублирование информации (т.е. типа) и тем самым усложнять модификацию кода в дальнейшем? Нет, спасибо, сомнительное это удовольствие.
>в крупных проектаз
Вот как раз внося большие изменения в крупный проект и увидите воочию какую могилу себе вырыли.
Алсо, любой класс, это тоже ссылочный тип. Попробуй то же самое со структурами.
>написать var pf 0.3sec versus навести мышкой а потом написать ILongAssCustomClassName
fuck offretard
https://blogs.unity3d.com/ru/2019/08/13/faster-c-scripting-with-jetbrains-rider/
jetbrains занесли чемоданы юнити.
как-же заебали пиарить везде свое тормозное bloatware, жрущее всю оперативную память..
Далее, типов данных по пальцам пересчитать, каким надо быть долбаебом, чтобы, например, сначала от фонаря выбрать целочисленный тип, а потом, скажем, с плавающей точкой. Да даже децималы всякие с лонгами - оин хуй, если ты такой долбаеб что не в состоянии загодя определить назначение той или иной пепеменной, то тебе не программированием надо заниматься, а посасывать хуй за свободной кассой.
Я, конечно, понимаю, нынче высралось поколение двухизвиленных долбоебов-зумерков, у которых уже мозгов не хватает даже на два хода вперед думать, либо это 30-летние вкатывальщики, но это еще не повод жертвовать внятностью кода в угоду сваливания полномочий на компилятор самостоятльно назначать тип данных просто потому что у обоссаного кодерка не хватило мозгов понять нахуя ему нужна эта переменная в программе. Не говоря у же о том, если кому-то со стороны придется работать с этим говнокодом.
>либо это 30-летние вкатывальщики, но это еще не повод жертвовать внятностью кода в угоду сваливания полномочий на компилятор
мимо 30-летний вкатывальщик
>типов данных по пальцам пересчитать, каким надо быть долбаебом, чтобы
Я продолжаю усиленно нипанимать логику залётного ентерпрайзника с крупными проектами:
var listOfKnownEnemies = RaycastStorageClass.SelectMetod<EnemyClass>();
vs
list<EnemyClass> KnownEnemies = RaycastStorageClass.SelectMetod<EnemyClass>();
>если кому-то со стороны придется работать с этим говнокодом.
Давайте будем честны, никому не обосралось работать с чужим говнокодом. Большинство тут сидящих соло пилят что-то в стол и иногда высирают это в стим, ни о какой работе в команде не идёт речи. И хуевертить там они могут что душе вздумается, лишь бы сами понимали свои простыни.
Минутка тупых вопросов от ньюфагов
У меня есть ХП систем. В скрипте в апдейте я проверяю:
if (HP == 0) ты умер;
Вопрос: нормально ли в if апдейта проверять такие штуки, типа умер игрок или нет, и можно ли изьебаться и не делать такие проверки каждый кадр?
Это ж влияет на производительность, наверное? Или не влияет и я ебнутый и можно спокойно в if апдейта проверять всякую хуйню?
Если обьект один то в апдейт не сысь засовывать проверки, если обьектов дохера, в их лучше не пихать.
Так же если сомневаешь в производительности и то как нагружается система от проверок, включаешь вкладку профайл и смотришь загрузку.
Если хочешь то можешь проверять только когда изменяешь значение.
Я думал я один такой, хех.
Но думаю если поизучать его хорошенько, то мб все станет понятней когда-нибудь
Хуй знает, анон, лично я бы сказал, что ты ебанут поболее моего.
Почему какая-то сторонняя система знает о параметрах персонажа игрока? Инкапсулируй, сучка! Персонаж сам считает свои ХП, и посылает сообщения о своём состоянии, на которые подписаны, например, ХУД, ему прилетают сообщения с пакетом данных, хп, мана, стамина, хуйнина; и система гейм-овера, ей прилетает сообщение "игрок умер" - она активируется и показывает экран смерти.
Что может быть проще и понятнее?
А теперь продолжим мысленный эксперимент и вместо одного поля списка енемикласс, зададим пару десяток полей разных классов, где указание типа/объекта будет справа. В такой куче параши искать нужное поле я ебал твою мамку.
Хм, маньч не лучше ли изначально все делать правильно? Сегодня ты инцел-одиночка и колерок-красноглазик, а завтра найдешь тягку мечты, которая взглянув на твой говнокод, уйдет к ерохе, который кодит по-людски.
>Почему какая-то сторонняя система знает о параметрах персонажа игрока?
Вот у меня, например, все системы хорошие и секретов друг от друга не имеют! Наша сила в доверии!
Я ебал делать отдельные методы для смены одной-двух переменных, которые затем всё равно надо возвращать через ещё один метод назад. Прямой публик сокращает количество кода в разы.
Вообще охуеть, зачем юниту самому своё здоровье регулировать? Как вы собрались для сотни юнитов, например, серьёзные вычисления статов относительно друг друга делать? Допустим, шкала инициативы - куда вы её инкапсулировать собрались, где инкапсуляцию внутри юнита делать? Юнит это вам не предмет, который никому кроме одного другого класса не нужен, это ёбаная херь которая со всеми остальными системами бодается. Даже если распилить юнита на куски и засунуть статы для шкалы инициативы в один кусок, статы для боёвки в другой, статы для баффов и дебаффов в третий, всё равно необходимо это говно смешивать, а потом для уменьшения количества головной боли и для понятности кода в том числе необходимо открывать прямой доступ к полям и свойствам.
У нас нет будущего, маня. Все уже гниём. Перспектив нет, тяны не будет никогда, гроб гроб кладбище, и ты тут ещё сидишь и указываешь нам, какие мы пидоры что конвенций/рекомендаций программирования не соблюдаем при пилении в стол.
двачую
Ну во первых что значит правильно? Для меня правильно как мне удобно и если оно работает збс. Для больших студий правильно по другому, что мне неудобно и не нужно. Во вторых, ТНН. Я потом продам свою игру за 100500 миллионов в стиме и ещё десяток таких шаболд будут готовы прыгнуть мне на хуец, увидев мои доходы.
>>601675
Лол.
>>601589
О, прикольная система, попробую так сделать. Я правда до сих пор не особо понимаю как именно следует пользоваться Get и Set (хотя это самые основы, но я как-то без них обходился всё время)
>>601683
Всплакнул. А я думал вот выпущу игру и сразу тяночки появятся, ых.
Вы заебали. Где не удобно, не используй. Где удобно, используй. Никто не заставляет всюду var пихать.
мимо
жиза. Бесит.
Но, кстати, лично я никак не могу принять, что в C# методы пишутся с большой буквы. Мне кажется более логичной система именований джавы, где классы - с большой, а члены классов (ну, методы, поля) с маленькой.
>другой анон, если чё
С создания
Тоже поначалу не мог привыкнуть, но теперь так даже лучше кажется.
Нахуя? Я только-только перекатываюсь с camelCase. Глупо выглядит на длинных именах. PascalCase ничем не хуже.
У меня такое получается физически легче и быстрее чем, печатать верхний регистр
Есть только одно безальтернативное IDE для юнити: vs code. Остальные - а это штудия и еще более лагучий райдер - даже не рассматривай.
У меня точно так же, НО сверху в комментах написано ещё, как и куда эти a, b и c используются.
> Я правда до сих пор не особо понимаю как именно следует пользоваться 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; и ты сразу получаешь камеру. Причём, при первом обращении юнити достаёт компонент камеры (здесь я привёл без обработки ошибок, но ты можешь добавить таковую в геттер) а в последующие обращения компонент уже получен, хранится в свойстве и выдаётся сразу.
Спасибо большое анон, я о таком не знал совсем!
Я просто в функции "public void takeDamage(int damageAmount) {...}" делал проверку на смерть, мол если <= 0 то умер, лол. А оно вон как можно. Круто очень. Спасибо.
А
А у вас бывает такое, что вы целый день сидите в IDE, а потом заходите сюда отправить пост и нажимаете ctrl-s чисто на автомате?
>нажимаете ctrl-s
На доп кнопку на мыши кодируй последовательность нажатий у меня так когда на одном мониторе был сохранялось и юнити открывалось и запускалось тут же.
Это что за ебанина? Т.е. чтобы что-то загружать из кода, это что-то должно быть в специальной папке? При том, что как бы уже есть Assets. А сразу предупредить нельзя было? Пиздец, в такие моменты не хочется продолжать пользоваться движком.
Глаза протри, сказано же "в коде".
Буду я каждый раз в эдитор лазить, ага.
Короче нужно подключить неймспейс эдитора и использовать AssetDatabase, ну спасибо что хоть так.
Ну так в коде и референси.
Если ты дебил тупой пыфтаешься декомпильнуть Ассембли и оттуда залезть в ассетс то сразу скажу ты нахуй тут пойдешь.
inb4: сосу конец
Какие нахуй ассембли, обычный префаб инстанснуть.
Чтобы куча обьектов не вызывала в Update дурацкую проверку if(), а только в определенный момент вызывала ивент.
Спасибо, долго ж я до этого допирал.
>Короче нужно подключить неймспейс эдитора и использовать AssetDatabase, ну спасибо что хоть так.
Бля, как жопой чуял. В билде конечно же не работает.
Пиздец конечно, придется над струкутрой проекта измываться. Начинаю понимать откуда в геймдеве такое отношение к пользователям движка.
>референси из ассетов.
А если мне динамически в коде надо решать какой именно префаб загружать?
Вообще я охуеваю, такая простая банальная вещь как загрузка ресурсов в юнити превращается в эпопею. Охуенный движок, где половину вещей можно только дрэг-н-дропом в эдиторе делать.
Через что загружать-то блять? Есть Resource.Load, но чтобы он работал, нужно чтобы префаб лежал в папке Resources. Что значит, придется хуй пойми как переделывать структуру проекта. Есть еще AssetDatabase, но оно только в эдиторе работает. Как еще можно получить объект по указанию пути?
>Есть Resource.Load, но чтобы он работал, нужно чтобы префаб лежал в папке Resources.
Так точно.
> Что значит, придется хуй пойми как переделывать структуру проекта.
СУКА НЕТ БЛЯТЬ
RESOURCE LOAD ВООБЩЕ ДЛЯ ШЕНАЙНИГАС В ЕДИТОРЕ ТОЛЬКО ПРИДУМАН
ОН ДЛЯ ФИНАЛЬНЫХ БИЛДОВ ВООБЩЕ НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ
Але, а AssetDatabase для чего тогда? Resource.Load именно для билда, смысл этих папок в оптимизации, так в доках сказано. Но это порнография, создавайте файловую структуру проекта внутри файловой структуры проекта, да проще тогда просто сразу держать все в Assets/Resources.
>>601968
В любом нормальном движке можно загружать ассет из кода без танцев с бубнами.
Корень твоей проблемы в том, что ты думаешь об Assets как о простой папке с файлами, хотя на самом деле это нихуя не так. Это система по учёту данных, которая подгружает когда нужно и выгружает когда можно. Её не ебёт, что ты хочешь "все префабы из той папочки" - она хочет конкретные, блядь, референсы на объекты.
На практике, когда возникает такая необходимость, есть два стула: либо на этапе эдитора нужные ссылочки автоматически собираются с помощью AssetDatabase (правильно) и сериализуются в массивчики, либо используется магическая папочка - Resources (легче). Вот это именно та папка, о которой ты говоришь в других движках. Данные, которые ты сам, лично контролируешь - в т.ч. выгружаешь.
Стало понятнее, дорогой друг?
>она хочет конкретные, блядь, референсы на объекты.
Путь к файлу - недостаточно конкретный референс? Ну ок, буду держать все ассеты в Resources, надеюсь пару мегабайт юнити осилит без всяких стримингов и сборок загрузить.
Нет, ты можешь можешь его использовать, это то, что старые версии Юнити (2-3) юзали до ассетов. Enjoy your 10fps and 5m load times
Нет, иначе бы при перетаскивании из папки в другую весь сетап нахуй бы ломался. Реф можно найти в .meta файлах.
Используя Resources, не забывай первого правила: после среньк-среньк ещё и подтираться нужно. © Конфуций.
Поправлю этого джентльмена:
ОН ДЛЯ ФИНАЛЬНЫХ БИЛДОВ ВООБЩЕ НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ 99% маняюнитиразрабами.
Assets, Asset Bundles
>Enjoy your 10fps and 5m load times>>601998
С чего бы у меня было 10 фпс из-за загрузки маленького спрайтика пару раз за игру, например?
>>601998
>Нет, иначе бы при перетаскивании из папки в другую весь сетап нахуй бы ломался.
Ну, наверное это для юнитигоспод большая проблема, а если я негодую от невозможности через код загружать ресурсы напрямую из файловой системы, наверное мне привычен такой воркфлоу.
>С чего бы у меня было 10 фпс
Ну из-за спрайтика пару раз за игру бы не было. Но по факту все загружали чуть ли не "топ 100 сочных негров 2011 HD" с порнолаба. Поговаривают, что это главное причина почему о юнити в народе ходят слухи как о лагодроме.
Псст, в C# есть System.IO, в который есть класс работы с файловой системой.
Это зависит от того, что ты собрался загружать. В юнити есть методы для создания ресурсов вроде Texture2D.LoadImage(), Sprite.Create(). Загрузить fbx или шейдеры будет сложнее.
Если ты дохуя костылебоярин, то никто не мешает тебе грузить все ресурсы из файловой системы, и вообще забить на понятие ассетов, только вот нахуя?
Если по какой-то причине ты брезгуешь использовать GUI, и все делаешь через код, то запихай все свои ассеты в бандл и грузи их из него. Хоть не так тормозить будет, как если ты будешь ресурсы использовать, которые действительно легаси и лучше дальше прототипов нигде не использовать.
С чего ты взял что ресурсы тормозят? В ресурсах файлы уже в конвертированном виде, в оптимизированной виде хранятся.
Для небольшой 2D игры, я думаю, нормально будет.
>Если по какой-то причине ты брезгуешь использовать GUI
Для дизайна, например указывать ссылке на интерактивные связанные объекты на уровне, или для каких-то уникальных событий - удобнее в редакторе, не спорю. В других случаях это не только отнимает время на лишние телодвижения, но и ухудшает целостность кода, когда часть внутренней логики зависит от каких-то внешних факторов, определяется в другой среде - в коде ведь даже не видно, что за префаб установлен, и установлен ли вообще. Это не правильно, и к тому же приходится переключаться туда сюда, открывать эдитор.
Медленнее распаковка (особенно на мобилах), больше памяти жрет. Еще вдобавок ко всему всё содержимое этой папки пакуется в билд, даже если фактически не нужно (особенно весело это если в проекте есть пачка third-party штук из стора, хранящих свои ассеты в ресурсах)
>>602018
Хардкодить пути к ассетам в коде тоже не самое мудрое решение.
Если следовать подходу, который предлагает движок, никаких особых проблем с использованием ссылок и загрузкой ассетов быть не должно. Большая часть явно референсится в сценах (учитывая что их можно грузить аддитивно), остальное можно запаковать в бандлы (да и сцены можно туда же), и работать с ними как с обычными ресурс-паками.
Пернул с этого фаталиста
Каких проблем?
Я ScriptableObject'ы использую. В идеале, эдитор скрипт, который создаёт скриптейбл для каждой категории объектов и сам заполняет. Нажал кнопочку, все объекты из папочки залились в массив и готово. Пик для ебанатов от ебаната.
scaling убери
В настройках импорта спратйта Filter Mode - Point
Вот недавно доделал урок на catlikecoding из серии object management.
https://catlikecoding.com/unity/tutorials/object-management/persisting-objects/
И у меня по итогу выполнения возник вопрос.
В ходе урока, автор делает несколько доп классов для генерации объектов, сохранении и прочего.
И такой подход существенно отличается от того, что я видел раньше в различных видеоуроках (как от самой Unity, так и от сторонних разработчиков).
Имеет ли смысл вообще так париться для генерации объектов, делать доп.классы и тд.
Насколько понял я на данный момент, автор использует язык на полную катушку.
Имеет ли это смысл для большей производительности в более крупных проектах.
Например, функции сохранения и загрузки в уроке, почему бы не использовать уже какие-то готовые решения (сам не знаю, но уверен, что они есть).
> Имеет ли смысл вообще так париться для генерации объектов, делать доп.классы и тд.
Имеет.
> почему бы не использовать уже какие-то готовые решения
Внутри они выглядят так же. Там даже больше объектов.
Я помню единственный момент в туторах от unity, когда делали подробные манипуляции с наследованием и переопределениями - это серия уроков про 2д top-down игру с игроком и зомби.
По-моему, абсолютно энтрилевельный урок. Да. Нужно. Такого "уровня запарки" хватит на игру уровня гд, но для чего-то сложнее этого мало. Для обучения сойдёт.
>автор использует язык на полную катушку.
Ноуп. Он даже интерфейсы не использует, нет множественных наследований, да и виртуальные у него только методы, а могли быть и абстрактные классы нахуй, нет событий, объект менеджеров, экстеншенов и прочей хероборины. И близко не на полную катушку. Вон на пик глянь, это дефолтная юнити хуйня из ЕЦС. Одно <T> осознавать надо не меньше часа, а учиться пользоваться ещё дольше. Кек.
what the actual fuck
>но для чего-то сложнее этого мало.
ЧЕГО СЛОЖНЕЕ БЛЯ
Он чо, свой Ассассин Крид делает? 99.99784% indie игр нахуй не нужна вся та хуета, что ты написал.
>Одно <T> осознавать надо не меньше часа
Lolwut, а использование GetComponent<T> с самого начального уровня обучения Юнити тебя не смущает при этом?
Ну бля само собой. Я к тому, неужели кто-то кодит на юнити используя постоянно дженерики и даже ни разу не глянул в гугле что это захуйня.
У меня сейчас из установленных юнити игр есть только клифф эмпайр. Заглянём в код. Ух, не ассасин крид, но всё же. Вся сложная херота, о которой я писал, писалась в контексте "язык на полную катушку". Ну да, возможно, оно вам и не надо. Но, очевидно, с этим всем жить будет легче.
>>602234
Оно осознаётся, как GetComponent(typeof(T)). Чем и является по факту. Когда пишешь что-то вроде GetComponent<T>(this T ComponentData, ComponentSystem system) where T : struct, IJob это уже по-другому воспринимается.
>У меня сейчас из установленных юнити игр есть только клифф эмпайр. Заглянём в код. Ух, не ассасин крид, но всё же. Вся сложная херота, о которой я писал, писалась в контексте "язык на полную катушку". Ну да, возможно, оно вам и не надо. Но, очевидно, с этим всем жить будет легче.
Вот же тупой ретард.
> 99.99784% i
CLiff EMpire, как и Skyline - эти самые 0, 003% тупой пездло.
Если ты хочешь что-то доказать докажи что более 0,003% это нужно.
300 рублей ака 12$ баксов
У него там кастомный прокген как минимум, где ты там просто увидел?
У него там все ошибки в консоли, пусть исправляет.
>>602242
Мне предлагает за 120. Не просто, а очень просто. У них там есть переменные DULO, OBOJMA и логика в апдейтах. И геймплея кот наплакал, хотя задел интересный. Было бы заебок сделать такое в онлайне с соседями-сычами на ближних скалах. Вот ещё подороже Universim за 380 рублей, но тут уже и игра побольше, чем на 30 минут.
Было
>var player = collision.GetComponent<Player>();
>if (player != null)
>{
>player.Poo()
>}
Стало
>if (collision.GetComponent<Player>() is Player player)
>{
>player.Poo()
>}
>if (collision.GetComponent<Player>() != null
Лично мне привычнее с нулом сравнивать. Или даже
>var player = collision.GetComponent<Player>();
>if (player)
Только если прешел на последний фремворк в 2017+
А с областью видимости там как? Останется объявленным ниже?
>
Хочу предложить свои услуги по созданию музыки для ваших инди-игр . Вот группа с примерами моих работ https://vk.com/sentaimask
Россия
А еще так
public static UIManager Instance => _instance ?? throw new System.Exception ("UI manager is null");
Environment.Exit(0)
В игре сколько персов на экране будет? Может у тебя по 100 юнитов там. Всего, наверное, не больше пары миллионов поликов должно быть на экране при hdrp чтоб и не сильно мощные машины тянули
Ну да. А что, разве нет?
Для персов, если на экране их 5, разумный лимит 50к, включая шмот на них. Можно по 100к, если лоды хорошие. За всё что выше нужно ссать на ебало.
Да все хуйню несете. Единственный способ проверить - это запустить движок и проверить. Все остальное пустые вскукареки ни о чем.
Никакой игры все этот кирилл делать не будет.
Железо у всех разное. Хуярить что-то с расчётом только на 2080 и выше не особо разумная идея.
я вам говорил, что чибиков в 3д не сложно делать
https://www.reddit.com/r/Unity3D/comments/crpt46/working_on_a_harvest_moon_style_deposit_box/
Ну ладно, говорил. И что, какое отношение это имеет к посту с реддита?
Можно создать Extensions и туда его статиком.
99% будущим покупателям пох, ибо 99.9999991% из них вообще не знают даже что такое Sketchfab
Ещё омерзительнее.
Вот а я о чем
Игра не загружает сцену. Игра на Android. Я тыкаю на кнопку, но она не переходит на новую сцену. Я только недавно начал заниматься Геймдевом и уже сломал голову почему не работает переход.
Им не надо знать даже что такое юнити, чтобы увидеть популярный ассет и понять что это вонючий ассетфлип.
https://youtu.be/jsh0q_22leU?t=115 1:15
Здесь что тогда? Нет, я не утверждаю, что это причина, но лучше не надо. Несколько лет назад какую-то программу для лепки скачивал, и она папку кидала куда-то в документы и из-за того, что имя компа было кириллицей не могла читать и падала при запуске.
На твоих картинках, СЕРЁЖА, на твоих картинках, СЕРГЕЙ.
Повезло тебе, что ты лишь на 50% долбоёб и обошёлся без фамилии.
Этим и хорош юнити. Железо у всех разное, а тормозит одинаково.
Это лучше чем высасывать из жопы абстрактное число треугольников.
Фпс зависит от кучи деталей. Материалы, батчинг, производительность скриптов.
Для своей игры выбираешь базовый фпс и стараешься делать так, чтобы он не проседал. Запускаешь профайлер и смотришь. Ага, на этой сцене со столькими-то моделями фпс проседает.
Упёрся в дк, фиксишь-фиксишь, 60 фпс стабильно. Повод вздохнуть с облегчением? Разве что серануть в портки, ведь у тебя не самая днищекарта и не кор два дуо мобильный в троттлинге. Даже если у тебя всё заебись, всё равно откуда-то раздастся вскрик "тормозит!".
Это с всинком? Это еще не говорит, что просадок. Например, твое железо тянет 100 фпс, а на сцене с просадками фпс падает до 70. Ты этого не замечаешь. Но пользователи с более слабым железом заметят.
Надо без всинк тестить.
ИМХО, понимаешь неправильно. Без компонента ...боди твой объект не влияет на физический движок. Коллайдер это всего лишь геометрия, как меш, например.
Страшный грех - это статикбоди двигать.
>Без компонента ...боди твой объект не влияет на физический движок. Коллайдер это всего лишь геометрия, как меш, например.
Доки говорят об обратном
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.
Вдогонку
https://forum.unity.com/threads/what-exactly-is-considered-moving-static-colliders.159434/
>Moving a collider that doesn't have a rigidbody is moving a static collider.
Двигать и ебать!
Материалы действительно самая устаревшая и технически слабая часть юнити. Даже в годоте система материалов лучше.
Хуже террейна ничего нет. Тот долбоёб выше скорее всего писал про шейдер граф, потому что по шейдерам документация есть, а по графу нет. Но граф превью. Он охуенен, но технически слабый, ущербный, как и в уе. А кастом ноды пока не завезли, хотя обещают, но пока превью хуй дождёшься.
>Я что, сам должен реверс инженерить их шейдерный код и догадываться как там все работает?
По-моему, я где-то такой совет в документации видел.
"Добавили к старому террейну полторы фичи" и "завезли новый террейн" это очень разные вещи.
Рилтайм терраморфинг без фризов на полсекунды? Более адекватная сетка? Дыры, сквозь которые райкаст проходит, а не упирается в террейн? Переопределение материалов травы без ебли в жопу? А на hdrp даже ебля в жопу не спасает. Несколько материалов для террейна? Адаптивная деградация сетки? И при всём при этом террейн просто пиздец насколько тяжёлый.
>>602980
А там сабшейдер с сабпассом. Без поддержки геометрических и вычислительных шейдеров. Вообще никому в голову не приходило, что каждая нода шейдер графа делается через сабпасс сабшейдера, а 10-20 проходов шейдера на материал это многовато, никто так не считает?
>А там сабшейдер с сабпассом
Нет, там 2к строк шейдерного говнокода без возможности что-то изменить. Юнитивские материалы это полное убожество. Ты можешь или сделать unlit shader для 2д и пост-процессинга, или т.н. surface, который есть захардкоженный генератор шейдерной портянки. Все.
В том-же xenko например охуенная модульная система материалов.
>И при всём при этом террейн просто пиздец насколько тяжёлый.
Есть там приблуды, конвертирующие террейн в сетку.
Но всё за денюжку.
>Нет
Да. Я про субноды писал. Добавил ты в граф ноду - а эта нода сабшейдер с проходом. Шейдер граф превью, он не готов, совсем не готов. Можно установить, потыкать, пользоваться нельзя.
>без возможности что-то изменить
Код генерируется по шаблону. Шаблон обещали дать изменить, пока фича не готова. Можно установить не из пакета, а из гита, изменить шаблон и проебать все шейдеры, которым нужен был старый шаблон. Можно делать кастомные субноды, если знаешь hlsl, но когда я тыкал в них последний раз, они были не готовы.
>xenko
Но это не отменяет того, что хенко хуже червя-пидора.
>>603027
Сетку с ландшафтом я и сам генерировать могу. Мне террейны нужны, а не сетки.
>Я про субноды писал
Я имел ввиду стандартный surface shader, а не shader editor.
>Добавил ты в граф ноду - а эта нода сабшейдер с проходом.
С чего ты взял? Нету там такого. Там генерится что-то вроде обычного surface shader'а.
В каждой ноде захардкожена строка, которую эта нода выводит в код шейдера и все.
>буквально недавно
Давно уже. Просто раньше оно называлось CodeFunctionNode и там ты скорее на шарпе писал шаблон для ноды, по которой генерировался код. И нет доступа к важным апи даже когда ты пишешь напрямую hlsl субшейдер.
Чтобы не выбрал, даже констракт с гамаком, все равно, рано или поздно придется писать переменные, какие-то функции, которые обслуживают игровой мир.
Т.е. в принципе разницы нет. Можно сразу вкатываться в EU4, все равно везде одно и тоже. Только сразу придется синтаксис C+ учить, а не тратить время на мертворожденные языки.
Удачи, только такое вкатывание у тебя займет гораздо больше времени, если ранее не погромировал.
Нет, анриал это топсуперсложно прогать, юнити легче, констракт самое легкое. Все остальное в среднем как юнити
Это шейдер, который рисует превью, а не финальный
>Можно сразу вкатываться в EU4, все равно везде одно и тоже. Только сразу придется синтаксис C+ учить
Если ты думаешь, что для тебя, как для полного нуба, какой-нибудь С# и С++ это "одно и то же", тебя ждет много открытий.
Но на УЕ4 есть визуальное программирование, в которое для таких как ты намного проще влиться только не рассчитывай, что когда освоишься с блюпринтами, сразу перескочишь на С++
>Но на УЕ4 есть визуальное программирование
Так вы заманиваете ленивых ньюфагов в свою секту?
Блюпринты это бесполезная игрушка для дизайнеров карт, чтобы интерактивные двери делать. Больше они ни на что годятся.
Даже если бы эпики оставили unreal script, от него и то бы пользы было в 100 раз больше чем от всратых блюпринтов.
>Даже если бы эпики оставили unreal script
Они новый уже с января пилят, купили команду скукум скрипта и свиня писал что запиливают, но что-то нихуя не слышно.
не ленивых нюфагов а неокученных зумеров с мышлением ГРОГ СОЗДАВАТЬ ОКОШКИ, ГРОГ ПРОГРАММИРУЕТ
кто-то из них правда со временем начинает подозревать в чем наеб и соскакивают с этого хуя и идут учить настоящие языки (что от них честно говоря и требовалось кек)
Неокученный зумер итт, так и пересел с playmaker на нормальный шарп когда заебался делать 50 кликов мышкой и 7 лагучих драгендроп окошек просто чтобы персонаж ходил и прыгал на пробел вместо пяти строк кода, ни о чем не жалею эта залупа помогла освоиться в среде юнити. А еще я охуел от возможностей ооп классов и прочих интерфейсов. Вспомнил еще ебучее - в плеймейкере онли одномерные массивы. Короче просто хотел сказать что визуальное программирование не такая уж и бесполезная вещь.
Мечты инфантильных чмонек которые боятся взять в руки учебник по программированию.
1. несколько 2д гридов [x, y] вертикально, каждая нода с переменной h (патфайндер не будет считать маршрут всего здания, а только до лестницы к следующему этажу)
2. 3д грид [x, y, z] (патфайндер маршрутизирует на все три оси, не нужно ебаться с линкованием этажей, но насколько понимаю аллочится дохуя ненужных блоков, даже если они null?)
Нахуй нужен этот проприетарный VasyanScript. Лучше бы lua встроили. Ой долбоебы. Долбоебизм уровня гондоскрипта.
сложно не само прогромирование, а проектирование подсистем, и поддержание всего говна что ты написал два месяца назад и не понимаешь нихуя почему эта блядина перестала работать
>Что там вообще сложного в проганье? У меня самого опыт 12 лет, корочка программиста, но поверьте, программировать это несложно.
Научиться говорить не сложно. Сложно написать "войну и мир".
От того, что ты выучил синтаксис, ты не стал программистом, софтваре инженером. Ты стал в лучшем машинистом, который впечатывает надиктованный или спизженный откуда-то код.
Не перестаю проигрывать с этой пикчи. Как-же комично выглядит гипертрофия мышц на дрищах.
"Написал говна" это кодерство. Программирование это в том числе проектирование таких систем, которые легко дополнять и поддерживать. Программирование это пиздец, как сложно.
Если все вокруг начнут ебошить пиздатый совершенный код, qa тестеры останутся без работы. Так что говно макаки тоже нужны.
https://docs.google.com/document/d/1HJLsUXklwVgaOJsnias0GoyW2i0tFmE4cae-IbUsq20/edit
Я только начал изучать униту но с программированием я знаком немножко больше.
Как мне показалось с точки зрения кода задача очень проста для мидла.
Или она трудна и я просто не могу осознать этого в силу своих малых знаний?
Я
Наговнякать такое можно за полчаса. А потом окажется, что это для реального проекта и на самом деле требования немножко другие, так что у тебя технического долга на два дня, а надо пилить уже другие фичи. Сложность где-то на 4 из 7.
Я не могу выделить джва часа между харкачами и смищными картинками, чтобы наговнякать свою ецс синхронизацию между кубами
Тут только прогеры выебываются, ничего у них конечно не получается, это антитворческая специальность, единицы могут, а эти будут сосать
Это фантазия специальная на алгоритмы. Есть художники которые классно раскрашивают, но построения проебывают, у них своя специальность, даже в рисовании разделяется, не говоря уже про разные области. 3дскульпторы в большинстве хуевые концептеры, про прогеров и говорить не приходится
Так и получается. Кодеры не могут в арт. Артеры не могут в код. Так и сидят, фуфлыжно. Вместо того, чтобы объединиться и делать игры.
ОП коворкинг-треда
И что ты можешь?
Боится что два с половиной двачевских калеки напишут негативный отзыв в стиме и все продажи упадут до нуля
Полторы калеки обмажут твою дверь говном и все узнают, что ты двачер. После этого пути к нормальной жизни уже не будет.
>Без хорошей фантазии нормальный алгоритм не придумаешь.
Какие ты собрался алгоритмы придумывать? На любой случай все алгоритмы уже давно придуманы, только подбирай нужные.
Хуйню несёшь.
Если бы алгоритмы были нигде не описаны, я бы их описал и сделал на этом свой первый миллиард.
два дня назад спиздил из гугла астар в свободном доступе и спокойно вкрутил в свой проект (я в рот ебал сам такое придумывать, я не эйштейн)
мимо
Ну и нахуй тебе древнесемитское божество пиздить
Да нахуя нужно велосипед изобретать объясните мне?
https://2ch.hk/gd/res/603386.html (М)
https://2ch.hk/gd/res/603386.html (М)
https://2ch.hk/gd/res/603386.html (М)
да, удоляй виндовс и пиши сам свою
Почему тогда все выбирают Анриал с проектами сложнее слендер мэна.
Нормальные программисты берут чужие алгоритмы чтобы сэкономить время, а не потому что не могут сами написать.
Это копия, сохраненная 27 ноября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.