На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны? - Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны? - Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity? - На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity? - Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры? - Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать? - Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты? - Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки? - Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
- Бесплатен ли Unity? - Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
- Движок Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка. http://www.ozon.ru/context/detail/id/34792570/ Также посмотри на видеотуториалы с официального сайта: https://unity3d.com/learn/tutorials Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь: http://catlikecoding.com/unity/tutorials/ Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху: https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unity В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Я про разраб юнити, но очень узкой специализации Graphics Engineer. До этого работал только на дядю, а теперь хочу перекатиться в индюшатник. Сразу споткнулся о недостаок знаний о дженерик геймплэй программировании. При любом расширении геймплэй в ширь код очень быстро превращается в кашу. Туториалы на ютубе особо не помогают, там обычно всё упрощено до предела и показывается как сделать какую-то одну механику. Мож есть какие нибудь книжки в стиле "архитектура геймплэй", только не для начинающих, а для продолжающих?
В целом идея сводится к тому, чтобы код был как можно проще. Для этого желательно разбивать его на мелкие части, каждая из которых отвечает за какую-то одну область. Как бы сама компонентная архитектура юнити на это намекает.
Только не тащи в геймдев всякие паттерны и принципы из ентерпрайза. Так можно будет вечно писать код.
Привет, почему это не работает? https://rextester.com/QSYV55013 NullReferenceException: Object reference not set to an instance of an object UI_playerSkills.Start () (at Assets/script/UI_playerSkills.cs:50) Я уже заебался.
>>752662 Всё объявлено, плайерлисте объявляется в UI_playerSkills и содержит, помимо указанных выше, кучу кучу функций, обрабатывающих действия с получением скиллов. Скиллдата - массив со скриптаблобжектами, где инфа по скиллам.
>>752666 >абыл инициализировать плайерскилс Не, он инициализирован, там есть другие функции и они работают (дебаг с них идет до момента инициализации класса Test. >можно, но конструктор исопльзовать низзя А как тогда создать внутри такого класса сруктуру с данными?
>>752671 >playerSkills.testList.Add(new PlayerSkills.Test(skillData)); Так у тебя в коде нихуя непонятно. Вот это твой playerSkills, что это вообще такое? Непонятно. SkillData у тебя вся null, playerSkills не существует, а вызов конструкторов не монобех скриптов в твоём конкретном случае должен быть глубоко похуй. Ищи, где ты обосрался, по доставленному тобой коду этого не угадать.
>>752673 > playerSkills, что это вообще такое? Класс без моно. Внутри него есть класс Test, который через конструктор будет заполняться данным из массива скриптаблобектов SkillData, > SkillData у тебя вся null SkillData не нулл, там 9 объектов. >playerSkills не существует playerSkills объявляется в awake в UI_playerSkills
Я не обосрался, это юнити говно. Делаю все по заветам про гуру уровня выше, чем маэстро Роман Сакутин.
>>752673 Ты хочешь сказать, что у меня где-то в другом месте ошибка? Лол, там около 400 строк кода в UI_playerSkills, включая 3 внутренних класса со структурами данных. И около 200 в playerSkills Всё работает как часы, не считая этого говна. Дело здесь в юнити.
>>752675 >Я инициализировал, зуб даю, но в коде этого нет >Тут нет ошибки, что класс начинается с заглавной, а вызываю я его с прописной >Не обосрался! Не обосрался! https://rextester.com/ERB38963 Прошёлся по твоему говну своей струёй, так работает.
>skillData = new int[10]; > skillData = i; Зачем это нужно, если он заполняется из редактора. >PlayerSkills playerSkills = new PlayerSkills(); Объект создается в классе-менеджере, а в UI_playerSkills передается ссылка. public void SetPlayerSkills(PlayerSkills playerSkills) { this.playerSkills = playerSkills; }
>>752690 >Для чего это нужно? Сначала хотел оставить использование этого класса-контейнера, но его в коде небыло, потом понял, что ошибка не в этом, а вычистить полностью забил. >заполняется из редактора Зачем это нужно? Я ничего из редактора не заполняю и ты так делай. >Объект создается в классе-менеджере, а в UI_playerSkills Ну ты же понимаешь, что чтобы ловить ошибки нужен минимально воспроизводимый пример? У меня не было никаких менеджеров, потому что их небыло в оригинальном куске кода. Так что всё непроинициализированное нужно инициализировать. А гадать, что там где есть, а чего нет, имея на руках буквально ничего - это бессмысленно, чел.
Аноны, в чем разница между этими способами https://rextester.com/GXRY71585? foreach выкидывает ошибку: ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
>>752699 Я юнити второй день изучаю. До этого программировал только на html и css. Почему вариант с for работает как надо, а foreach заканчивается ошибкой? Я добавлял выход из перечисления brake, но так же ошибка.
>>752701 А что список это часть неймспейса System.Collections.Generic тебе ни о чём не говорит? Хочешь делать форич, попробуй сделать foreach (var item in noMaxLvlSkill.ToList()) Но лучше закешируй длину списка в локальную переменную. А форич пытается проходить по коллекции, которая уже была изменена, естественно, что генерируется ошибка.
>>752703 > форич пытается проходить по коллекции, которая уже была изменена Форич пытался удалить по индексу. В фориче нужно было использовать noMaxLvlSkill.Remove(item); break;
>>752746 Или не забанен моча не дурак? Ну раз такое дело, назрел вопрос, юзал ли кто appodeal для рекламы как аналог адмобу? Нередко встречаю его восхваления, может кто поделится опытом?
Направьте меня на путь истинный. Помогите написать функцию скорострельности. 1 / (количество пуль за секунду), т.е получаем время через которое должна спавнится пуля. Как это лучше сделать? Через корутины или time.deltatime? Или есть ещё какой-то способ?
Скорострельность 2 пули за секунду. Почему одна пуля летит, а вторая нет?
Пачаны, как вкатиться в Юнити имея си++ головного мозга (10лет разработки)анрил не предлагать, при условии что времени особо нет и надо учиться концентрировано
Посоны, в туториале на 2:52 поясняют как менять скины у спрайта импортированного из PSB файла. Но у меня в sprite editor нет ни категории, ни лейблов, хули я ни так делаю? Если спрайт на сцену кинуть то просто два обьекта будет, а не как на видео один обьект и можно переключать спрайт
Хочу написать класс DataSource, который хранит определенные данные и поддерживает их актуальность, отслеживая события.
Подписка на события будет в конструкторе этого класса. А вот отписку думаю сделать через IDIsposable (плюс ещё в деконструкторе, если вдруг я по какой-то причине забуду вызвать Dispose). Это норм так использовать этот интерфейс?
>>753083 Если не считать агрессивный пеар, то кабанчики его выбирают из за: shader graph, srp batcher, vfx graph. НО! Амплифай на 2 порядка более функционален, с появлением BatchRendererGroup надобность srp батчера вообще сомнительна, а на vfx графе я не видел чтоб кто-то что-то делал.
>>752990 Хули. Если начал ебошить то: флоат текущееВремя = тайм.дельтаТайм вайл(текущееВремя -= времяВыстрела больше 0) Ебош() а в апдейте прибавляй к текущееВремя тайм.дельтаТайм тогда можно стрелять в один кадр больше чем одним снарядом, если будешь использовать временное значение и прибавлять к нему время между кадрами и убавлять то сколько времени тратится на выстрел как "цену" за выстрел по времени.
>>753268 Коллаборейт я так понял это Unity version control пакет, он не обновлялся, сам он как работал так и работает. Ошибка появилась после обновления самой юнити
>>752992 вкатился от скуки. зачем ты в каждом кадре проверяешь закончились ли патроны? можно же проверять сразу после выстрела и/или после смены оружия
>>752992 Запомни самое важное правило в юнити. Никогда, ничего не делай в апдейте, максимум это корутины каждые 0.1/0.2сек и т.д. Апдейт это рак который губит всех новичков.
>>753449 Чел говорит, что апдейт плохой потому, что может вызываться чаще корутин, скорее всего отсылая к проблеме 10000 вызовов. Хотя по факту, если у тебя не десятки тысяч геймобжектов это никакой роли не сыграет. А только добавит ебли с порядком вызовов корутин, их жизненным циклом, хот релоад сериализацией и ещё каким нибудь говном.
>>753453 Так же думаю. Наверно у него были какие-то проблемы в какой-то своей игре, и он начинает распространять свои болезненные выводы на всё. Или наслушался всяких оптимизаторщиков.
>>753419 >НИКОГДА НЕ ИСПОЛЬЗУЙТЕ АПДЕЙТ, КОРУТИНЫ ЛУЧШЕ >Под капотом каждый апдейт вызывается корутина и сверяется, прошло ли указанное время со момента последнего вызова >ФИКСЕДАПДЕЙТ ВЫЗЫВАЕТСЯ ОПРЕДЕЛННОЕ КОЛИЧЕСТВО РАЗ В СЕКУНДУ >Фикседапдейт вызывается каждый апдейт и проверяет, прошло ли нужное время с момента последнего вызова
Но по факту апдейт зло потому что все расчёты выполняются гораздо больше раз в секунду, чем нужно любому адекватному человеку.
>>753462 Ну да, а куда этому деться, если все компоненты и ресурсы менеджит внутренний с++ сервер. Может юнитеки там и придумывают какие нибудь батчи для этих вызовов, но так же быстро как из шарпа вызывать другой шарный метод это вряд ли будет.
>>753466 >Но по факту апдейт зло потому что все расчёты выполняются гораздо больше раз в секунду, чем нужно любому адекватному человеку.
засунул в апдейты проверку состояний статик переменных, при срабатывании сразу сбрасывает локальную переменную в условии на false и повторных срабатываний не происходит, сразу же через инвок запускаю восстановление локальной переменной обратно на true(секунды через 2, когда событие уже будет не активно). брат жив
>>753480 Можно слоями нарулить, чтобы одна группа объектов проходила через другую например. Еще можно настраивать через код, чтобы конкретные коллайдеры друг с другом не сталкивались, в виде исключения, но это как-то медленно работает.
>>753466 Я читал на хабре, что для телефонов вообще не стоит использовать корутины. Это была статья разработчика из топовой студии, пилящей игры для мобилок.
>>753590 Я от корутин полностью отказался, они нужны в очень редких случаях на самом деле. А все апдейты просто подписались на событие апдейта синглтона.
>>753590 >для телефонов вообще не стоит использовать корутины Видимо из-за того, что программисты создают WaitForSecond и прочие объекты. Студии помешаны на такой хуйне. Лишний объект создал, всё пиздец, трагедия. for each или linq использовал - увольнение нахуй.
Как только я расставил нпц по сцене и делаю билд, юнити их переводит в подкапотный формат и больше сцену трогать нельзя? Ок я понимаю что это правильно наверно, но как обновлять состояние нпц? Допустим игрок убил гоблина в сцене1, ушел в сцену2, вернулся в сцену1. Юнити снова отставнило гоблина, но мне надо мертвого.
Есть два стула, какой выбрать/правильнее?
1. Гоблин в Start() запросил данные о себе и если мертв, убивается. (простенько но как то хз) 2. Я не расставляю гоблина в editor-time, а делаю свою таблицу данных какуюто, по которой мой менеджер будет спавнить его, если он жив. Т.к. он мертв, менеджер не спавнит. Этот метод кажется честнее, но гемморойнее.
>>753662 Юнити загружает сцену в том виде, в котором она была при билде. Если ты хочешь, чтобы какие-то данные изменились, то их нужно сохранять. Сериализуй json, схороняй на диск, читай данные, заполняй поля. У меня реализован сорт оф твой второй вариант, но это только потому что я ебанутый.
>>753677 Т.е. вариант 2 - грузить нпц/труп самому? Непонятно только зачем специальная сцена, когда игрока в сцене нет, труп может и не существовать (я же не симуляцию делаю).
>>753680 >схороняй на диск, читай данные, заполняй поля. Да, сохраняю на диск, хотел просто понять как с точки зрения ахритектуры Юнити я должен делать такие вещи (нелюблю велосипеды городить без надобности). Если ты делаешь так же как 2, то нас как минимум двое ебанутых. А как сделал бы не-ебанутый?
>>753691 >игрок у тебя как перемещается между сценами? игрок живет в аддитивной сцене, там же где и камера и прочая UI. Предлагаешь никогда не выгружать уровни чтоли? Держать все как опен ворлд? Разве они не жрут память? Можно ли сцену как то "заморозить", как в редакторе? Я вроде не находил такого.
>>753688 >хотел просто понять как с точки зрения ахритектуры Юнити я должен делать такие вещи Через файлы сохранений, очевидно же. Как ты их реализуешь сам это уже твоё личное дело. Главное, чтоб не через PlayerPrefs. >А как сделал бы не-ебанутый? Не так выразился, просто у меня идеология в минимизации вмешательства редактора в построении уровня, это уже сорт оф ебанутость, так что я первый вариант даже не рассматривал. В принципе, сделать простой первый вариант это тоже вариант. Можно ещё хранить состояние всех нпц в памяти, но тогда их состояние будет храниться только в пределах сессии. Плюс расход памяти, но сейчас у всех памяти дохуя, я уже расход 10гб+ не замечаю. >Держать все как опен ворлд? Так в опен ворлде куски уровней выгружаются и загружаются аддитивно, иначе гроб-гроб-кладбище-3 фпс
>>753698 >хранить состояние всех нпц в памяти, Сомневаюсь что это вариант, как только я сцену выгружу эти нпц станут null или разлинкуются 100%. Манябехевиоры живут только в сценах жи есть.
>>753699 Юнити снова загрузит живого гоблина, которого надо убить, потом двигать труп на его место. Зачем держать труп в памяти? На пике у тебя пасхалка была вообще.
>>753710 >Ты ее не контролируешь? Нет конечно. Если гоблин был в билде, юнити его будет грузить всегда, при новой загрузке сцены. >Ты же можешь на уровне хранить точки спавна, Это я и имел ввиду когда спрашивал про грузить нпц вручную из данных. Т.е. ты тоже за 2 вариант, спасибо. >Нет, это они так технически сделали. Пасхалка в том, что в это место игроку нельзя было заглядывать. Предполагаю что там совсем другая архитектура и точная симуляция энтитей, нпц ходит по дорогам даже когда игрок на другом конце карты. Возможно проще было просто кидать трупы куда то, чем возится с их подтиранием. Anyway не мой случай явно (покачто).
>>753704 >как только я сцену выгружу эти нпц станут null или разлинкуются 100%. Статик класс, в нём массив булов "жив-мёртв". Каждый нпц знает свой id и в инициализации обращается к массиву. Всё просто, но слегка черезжопно. Зато быстро.
>>753725 Вот тоже думал про это, остановило только что надо возится с этим массивом, если он изменился, т.е. перераздавать новые индексы всем кто в нем сидит (если это динамичсеский массив) Если простой массив,то тогда надо трястись над тем чтобы не превысить размер и тд... хмм... (а так заранее и не скажешь сколько на сцене будет говна, а аллокировать 10.000 как то всрато).
>>753662 По-хорошему у тебя должно быть полное разделение статичных и динамических объектов. Все что может изменить свое состояние - динамический объект. Загружаться со сценой должны только статичные. Динамические объекты должны подгружаться после загрузки сцены исходя из отдельно сохраненных данных.
Т.е. загружаешь сцену без гоблинов, потом читаешь из файла живые гоблины или мертвые должны спавниться и в каком месте. И уэе согласно сохраненных данных уже спавнишь их.
Главное чтоб заспавненные не разлинковывались с данными, чтобы убитый смог откалбечить назад что он был убит например. (пока по своей копии индекса находят, быстро но если массив данных нпц шифтанется, будет очень злой баг).
>>753988 > Посоны, в профайлере Text.Onenable().Invoke лагает и создает относительно много мусора. Как пофиксить можно? Можно перейти на нормальный движок. Как вариант.
(Автор этого поста был предупрежден.)
>>754010 Думал об этом, но весь проект сделан через Text.UI переводить все на TMP заебусь, попробую сначала не активировать\деактивировать весь обьект с текстом, а выключать только канвас рендерер
Можно ли забить на предупреждение о циклических ссылках, когда делаешь в объекте переменную того же типа? Пишут, что глубина вложенности больше 10, но это хуйня, она у меня на деле будет максимум уровня три, и все вложенные объекты в рантайме не меняются, настраиваются руками в инспекторе.
>>754053 Цыклические ссылки не сериализуются стандартными средствами. В юнити после десереализации это будут 10 разных несвязных инстансов, хотя должно быть 2. Если тебе с этим норм, то похуй.
>>754157 Кому похуй кому нет, я из-за этого не мог на юнити добиться идеально плавного геймплея, когда как на ue4 с этим все хорошо, при том что кстати там разброс дельты большой, но видимо там в закромах рендера все работает не совсем так, как в юнити.
>>754160 Забавно. С одной стороны dt поправили. С другой - новый InputSystem срёт событиями невпопад, так что 3 кадра может пропёрдывать, а на следующий - высрать сразу двойной вызов события.
>>754157 > когда уже наконец-то апи станет потокобезопасным. Никогда лол. Ставь локи там где нужно сам, любая синхронизация сказывается на перформансе и ради 0.01% юзкейсов они ее не будут ухудшать.
>>754232 >любая синхронизация сказывается на перформансе Не в синхронизации дело, я даже трансформы двигать не могу не из мейн треда. Да что двигать, из них даже инфу хуй получишь в фоне. Это пиздец ёбаный. Но всё это хуйня, есть же ецс, правда я его палкой потыкал, оно даже скиннед меши не поддерживает, для реального использования нот реди ет.
Посоны, туплю пиздец, пилю простой платформер, сделал проверку стоит ли персонаж на земле через OverlapCircle в FixedUpdate. Плюс у персонажа есть 2 экстрапрыжка, при нажатие на пробел один отнимается. Когда проходит проверка на стояние на земле экстрапрыжки восстанавливаются.
И вот в чем проблема если прыгать из воздуха, то все норм, 2 прыжка можно сделать. А если с земли, то 3 прыжка, так как после нажатия на пробел сразу же проходит проверка на землю и экстрапрыжки восстанавливаются до 2х. Никак не могу придумать как пофиксить
>>754256 ДжобСистем вроде возвращает измененную ентити. Можно придумать как с ней изъебаться, чтобы передавать ей примитивы трансформа и потом аплаить результат в мейн тред. Но лучше нахуй. Можно ещё корутины йелдить, но это не про многопоточность конечно. А зачем тебе второй тред?
>>754262 Можно начинать восстанавливать через какое то время после прыжка, а не сразу. Нажал пробел и только после 0.1 сек восстановление будет возможным. Можно отключить проверку на землю тоже на какое то время после прыжка.
>>754269 Ты серьёзно? В момент приземления начинаешь складывать в какой-нибудь флоат все дельтатаймы, по нажатию прыжка чекай и всё.
>>754263 >А зачем тебе второй тред? А зачем мне восьмиядерный процессор тогда? Я хочу 8 потоков как минимум. >передавать ей примитивы трансформа В ецс была пакетная обработка трансформов, вроде, без одиночного варианта, только пакетная. Но там и апи менялось и ещё хуй знает что происходило, не хотелось связываться. Корутины хуйня полная. Я один раз упоролся на отличненько, генерировал в мейн треде задачи для фоновых тредов, в фоновых тредах делал всё подсчёты, а потом из фона генерировал задачи опять же для мейн треда. Работало нормально, но я быстро начал путаться в типах задач. Сейчас считаю самым адекватным винегрет из классического монобеха и ецс. Потому что монобех без многопотока, а ецс без фич.
>>754274 > А зачем мне восьмиядерный процессор тогда? Я хочу 8 потоков как минимум. Ну может хочешь какие нибудь долгие вычисления делать из за которых фпс проседает. Хотя их можно растянуть на несколько кадров. Если нет кейса зачем так ебаться. Преждевременная оптимизация корень всех бед, как говорится.
>>754281 В идеале я бы хотел максимально разгрузить мейнтред, чтобы оставались ресурсы для подкапотных процессов самого движка. >Если нет кейса зачем так ебаться Я из тех ебанутых, что пилят игру мечты, а потому ебаться придётся в любом случае. Вопрос только в том, как много и когда именно. Если заранее не предусмотреть возможность распараллеливания, то можно насосаться хуёв. Опять же, у меня достаточно производительный процессор, но это не значит, что он у всех игорьков такой. Выкатывать системные требования "2 ядра по 10 ггц" всё-таки припизднуто больше, чем я могу себе позволить.
>>754357 Если всё в одном канвасе, будет много лижних обновлений.
>Используйте для динамических элементов отдельные или вложенные холсты. Так вы минимизируете затраты на сортировку и перестройку структуры холста, содержащего большое количество элементов. Вложенные холсты более удобны, т.к. наследуют настройки родительского холста. В то же время, при изменении родительского холста перестроятся и все вложенные. Такое довольно редко, но происходит (например при смене разрешения экрана). Учитывайте, что объекты из разных холстов или вложенных холстов НЕ запекаются для совместной отрисовки. Рекомендуется разделять холсты по регулярности обновления элементов. Статичные элементы нужно поместить в отдельный холст, тогда они будут отрисовываться лишь один раз. Если есть элементы, которые постоянно меняются, то лучше их объединить в другой холст, т.к. они все равно будут вызывать перестройку друг друга. Изменяющиеся объекты также можно разделить на несколько холстов по частоте обновления. Например, элементы, обновляющиеся каждый кадр положить в один холст, а элементы, обновляющиеся реже — в другой.
Перенес проект в версию 2020, предварительно создав в ней urp проект. ФПС в игре упал в 8 раз, цвета совсем другие, намного темнее. Некоторые визуальные эффекты практически не видно Изначально проект создавался в 2019 юнити, как обычный 3d, urp было добавлено отдельным пакетом. Теперь придется везде настраивать цвет, чтобы гамма была идентична версии в 2019 или там в настройках что-то есть? Сеты графики стандартные удалил, оставил только импортированные, в настройках их поставил.
>>754395 Создал в 2020 обычный проект и импортировал из стора urp. Цвета стали прежние. Что не так с юнити, чем отличается urp из стора и urp из "создать urp прожект" в хабе?
>>754384 >Перенес проект в версию 2020 Как переносил? По уму нужно зайти в папку ассетс, там выделить свои папки, кроме папок плагинов, в частности настроек srp. Метафайлы корневых папок тоже лучше не копировать. >ФПС в игре упал в 8 раз Какая-то хуйня на самом деле, у меня hdrp и фпс сопоставим с легаси рендерингом. >в настройках их поставил Корректный волюм в сцене есть? В проджект сеттингсе указаны дефолтные волюмы и глобал сеттингс?
>>754398 Фэпос так и не вырос. >Как переносил? Экспортировал весь проект, вместе с ассетами и вообще со всеми папками. А потом импортировал. cpu main около 7 ms, в 2019 меньше 2ms >Корректный волюм в сцене есть? В проджект сеттингсе указаны дефолтные волюмы и глобал сеттингс? Я не понял.
>>754406 Просто создай новый urp проект через хаб и в него закинь свои ассеты. Без настроек urp, папок urp, папок плагинов и прочей хуйни. Настройки с пика будут по дефолту корректными.
>>754398 >Как переносил? По уму нужно зайти в папку ассетс, там выделить свои папки, кроме папок плагинов, в частности настроек srp. Метафайлы корневых папок тоже лучше не копировать. Разве при экспорте в пакет всякое говно тянется в файл?
>>754437 >В настройках плеера РТФМ. Оно просто переехало в настройки Srp. В hdrp вообще заныкано и похуй. Но тебе ещё шейдеры нужно проверять, поддерживают ли они srp батчинг, скорее всего нет. Пересоздавай через шейдер граф, если нет. >статик при этом есть Один хуй только в билде работает. >юнити чудит Нет, просто ты справку не читал нихуя. >>754439 А, хуй знает. Я не экспортировал в пакет никогда, просто копировал ассетсы. Потому что апгрейд через просто выбор новой версии юнити в хабе может и будет порождать косяки.
>>754442 Именно в этом была причина ебанутого цвета. Храни тебя господь, на будущее буду знать. >Нет, просто ты справку не читал нихуя. Всё равно юнити чудит, пусть и не в батчинге. Сейчас создал в 2019 версии новый прожект, импортировал пакет, фпс точно такой же, как в оригинальном проекте. А в 2020 пиздец какой-то.
>>754462 Да что ж у тебя сплошные отмазки в стиле "юнити виноват, а не я долбоёб"? У меня на 2021 с hdrp около 120 фпс на нескольких миллионах полигонах с анимированными шейдерами, скиннед мешами, постэффектами и smаа. Без батчинга. Подрубай профайлер и смотри, где у тебя жопа.
>>754511 >Pre 2020.2 it reported timings differently so that might explain why it looks like performance regressed while nothing in terms of performance actually changed. Там даже в треде написано, что никакой ошибки нет.
Там в треде сидят петушки, которые в итоге так и не помогли человеку. Заметил, что в 2020 как-то по-другому работает окно "scene", оно слишком много фпс съедает, когда оно неактивно фпс почти на уровне версии 2019. Может, причина в этом.
>>754186 У меня где-то был график дельты из анриала, и там при большом разбросе таки прослеживается некая упорядоченность, когда как на юнити был полный хаос.
>>754551 Эта хуйня и так выключена по-дефолту была, сейчас все повыключал/повключал - эффект нулевой. >>754696 Вот это более похоже на правду. Но, блядь, как в меню может быть около 500фпс на нормальной пеке. А в одной сцене, где просто 1 персонаж, 3 лампочки в реалтайме и один direction свет, треугольничков всего 44к, и они батчатся - около 500фпс. И это если окно сцены выключить. Если включить, фпс в 3-4 раза меньше. А я пилю игру на андроид.
Приветствую. С юнити знаком очень поверхностно, но пытаюсь перевести написанную на нём игру. С помощью Аллаха и гугла сумел вскрыть игровые архивы. Заменить текст в файлах игры оказалось довольно легко, но затем я столкнулся с такой проблемой, как ущербный кириллический шрифт. Особенно бросается в глаза огромное расстояние между буквами. Вопрос: как заменить шрифт на менее всратый?
Привет, анончики, скажите, пожалуйста, почему партикл систем с шейдером не отображается в окне game. В сцене его видно хорошо. Если в настройках рендера увеличить opaque downsampling с 2х до максимума, то начинает отображаться. Раньше оно хорошо отображалось на 2х.
А нет ни у кого тутора по ComputeBuffer? Хотел на гпу частицы создавать, перемещать, уничтожать. Я вроде смог. Я разобрался как пользоватся AppendStructuredBuffer и ConsumeStructuredBuffer. Но типы буфферов меня очень запутали. https://docs.unity3d.com/ScriptReference/ComputeBufferType.html Чем они отличаются то-о-о? Как этим всем пользоваться? Что за магия происходит когда я вызываю ComputeBuffer.CopyCount? Что происходит когда я делаю ComputeBufferType.IndirectArguments буффер? Документация местами загадочная, непонятная и без примеров.
Сап, аноны. Вкатываюсь в ваш унити, подскажите, как реализовать следующее:
2D Пойнт-н-клик + ресурсменеджмент. Планируется несколько сценок со своим наполнением, на каждой из них нужно отображать ГГ с текущим состоянием - грубо говоря, эквип персонажа должен быть виден прямо на нём.
Как это лучше реализовать, если сценки - это по сути статичная картинка с расставленными предметами (может иногда меняющимися), а ГГ должен сохранять состояние, перемещаясь между ними? Я сначала воспринимал "сцены" юнити как адекватное представление уровней, но кажется что нет смысла заставлять их постоянно загружаться/выгружаться.
>>755216 если ты наполняешь свои сцены через код то конечно поебать на организацию сцен. сцены могут быть кусками большей сцены. ну а как организовывать то че? просто не уничтожай нужную тебе хуйню при смене сцены. https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html например мало смысла уничтожать какой-нибудь менеджер интерфейса
>>755394 Хотелось бы высказаться по этой теме, раз уж представилась возможность. Касаемо ютуба буду краток. Ненавижу видеоуроки. Задают конкретный вопрос, а в ответ "мы демонстрировали эту фичу на LA Unite, смотрите!" и ссылка на видос. Ты не помог, мразь, ты высрал кучу говна. Где ответ? Ууу, пидоры. Рандомные туторы с ютуба в этом плане в несколько раз хуже, потому что у них даже фичи не те, реализация через жопу, а чтобы вычленить полмиллиграмма ценной инфы из гигатонн шлака тебе придётся буквально до старости смотреть видосики на двойной скорости. А уж картавый диктор, шамкающий своим вялым анусом в микрофон это просто вишенка из собачьего дерьма поверх всего этого тортика.
>>755361 Чувак разорись и купи книгу. Я серьёзно. Сам только вкатываюсь, раньше по утубовским видео и курсам с юдео, но всё это полное гамно, криворукими ушлёпками с дефектами речи. У брал несколько книг но самая лучшая это Разработка игр на Unity 2018 за 24 часа конечно название гавно, но по сути всё так за 24 урока по 1у часа можно вкатиться. Сам уже дочитываю книгу и готовлюсь повторить 4ю последний пример из книги.
>>755411 Проще поработать некоторое время стажёром. В рабочем коллективе очень удобно обмениваться опытом. Когда возникают затруднения, тебе могут за минуту объяснить, в чём проблема. И не придётся часами разбираться самостоятельно. Но сейчас рынок переполнен и стажёры никому не нужны.
>>755705 >книгу Книги по IT сейчас вроде устаревают уже к моменту выпуска.
Хочу реализовать всплывающее диалоговое окно с управлением стрелками (как в правом верхнем углу на пикриле), только в позиции относительно активированного объекта. В какую сторону смотреть? Генерить спрайт, считать руками размеры и размещать руками блоки текста вместе с контроллем курсора выглядит по мне как оверинжиниринг.
>>755708 > сейчас рынок переполнен и стажёры никому не нужны Да нахуя оно мне? Если пиздовать куда-то в конторку, то заставят пилить мобильное дерьмо, для которого интересующие меня фичи просто не нужны. Вот сейчас мне интересно, насколько хорошо дружат srp batcher и material property block. Очевидно, что для рандомной три в ряд это нахуй не нужно. Можно было бы собрать несколько анонов где-то в тг и вместе ебаться в жопу обсуждать такие нюансы, но я же тогда неминуемо мутирую в конфоблядь.
>>755996 Да без разницы. Зависит от твоих требований. Если поле не используется другими объектами, то его логичнее скрыть через privat. Но в твоей жизни от этого ничего не изменится.
>>756029 Это невероятно круто, что оно есть. Точно так же, как уже давно показывали запекание анимаций в текстуры для "чистого ецс". Даже больше скажу, я уже год назад вскрывал экстремально ранний пакет для ecs анимаций. Но именно полноценной поддержки всё равно нет. Тот же меканим не поддерживается, хотя он dots-ready и использует simd библиотеку.
Нормальную документацию по UI Toolkit когда-нибудь дадут? Пиздец, блять, в благородство играть не буду, фичу я вам запилил, дальше сами ебитесь, посмотрим как быстро башка прояснится.
Не, ну реально, я джва года ждал, пока завезут возможность верстать интерфейс как в вебе с css. Запилили, а как пользоваться хуй знает. Если есть тут ведающие за сию технологию, буду рад услышать ваши наставления.
Простая задача: в рантайме по нажатию на кнопку показать окно и в нем список элементов. Раньше это делалось просто - закидываешь в скрипт префаб окна, префаб элемента, инстанциировал, установил родителей, задал элементам данные, отобразил. Как то же самое провернуть на Visual Elements?
>>756134 "Как было раньше" я часто просто не понимал. Если пытаться запилить что-то сложнее счетчика очков в углу экрана, это было пыткой ебучей заставить все выглядеть так, как ты хочешь. Компоненты Layout group работали хуй поймешь по каким законам, как и якоря у самих элементов и их скейлинг. Ты может не встречался с этим, если не пытался в динамическую генерацию элементов интерфейса, а я в этом говне уже прилично варюсь.
В UI Toolkit строгая иерархическая структура как в вебе, понятная интуитивно (тем кто из макакинга пришел как минимум), + все элементы интерфейса по умолчанию флексбоксы, а это ебать как упрощает еблю с позиционированием элементов внутри них.
Сап, аноны, подскажите, как получить ссылку на экземпляр, созданный через instantiate(), чтобы потом его удалить, например, при следующем инстантиэйте?
>>756141 По моему это говно, как и половина того что высрали юнитеки в 18 году (input system, ecs) просто заброшено и этим никто не пользуется. Вау адаптивная верстка. Вау 100к рыб на экране. Пару пятиминутных туториалов уровня перепишите код с экрана, 0 документации, 0 интереса в дальнейшем развитии со стороны юнити. Ну и зачем тогда с этим ебаться. Не хотят они чтобы этим кто-то пользовался.
>>756132 >как быстро башка прояснится Я в своём познании настолько преисполнился, что как будто бы уже 100 триллионов миллиардов лет пилю на этой хуйне. >Как то же самое провернуть на Visual Elements? Гораздо сложнее всё делается, лол. Но на практике ты можешь сверстать всё заранее, у тебя же есть ассет. Пилишь UXMLTemplate, к нему USS хуяришь и всё готово. Я вот кодом всё делаю, так проще. Лол, нет. >>756134 Предыдущий юи был основан на ГО, а каждый ГО просаживает перформанс. Даже если это пустышка без рендерящихся компонентов.
>строгая иерархическая структура как в вебе Новый же юиэлементс хуйня невыразимая, потому что вебговно это вебговно. Но юнитеки взяли от вебговна худшее. Единственный профит это перформанс.
>>756179 > каждый ГО просаживает перформанс. Даже если это пустышка без рендерящихся компонентов. Ну и сколько ты посадишь в итоге, посмотри в профайлере. Мне сложно даже 100 активных ui компонентов представить, просто не на что столько. Часть элементов 99% времени неактивна, часть оптимизируется разными изъебами (как в больших списках), часть это постоянные 0-10 hud элементов. Опять оверинжинирингом занимаетесь на пустом месте.
>>756184 >Опять оверинжинирингом занимаетесь на пустом месте. Вообще да, но нет. Да, старый гуй достаточно хорош и я на нём делал всё то же, что и на новом без заметной разницы в производительности. Но всегда хочется расти. >Мне сложно даже 100 активных ui компонентов представить Смотри, первое окно это 174 ячейки, в каждой картинка, бекграунд картинка для обозначения качества плюс в некоторых текст. Батчинг срабатывает только в том случае, когда нет оверлаппинга элементов. Так что мимо. Рисовать на гпу текстуру и выводить её за 1 дк тоже не вариант, потому что интерактивность, драг-н-дроп, тултипы и прочая. Плюс поверх каждого непустого элемента нужно расположить прозрачную плашку. Плюс я реально знаю игру, в которой выключение UI даёт прирост в 10-20 фпс.
Как можно сделать так, чтобы нарезанное на квадраты изображение можно было склеить в одно целое и на выходе получить файлик в формате png, например? Мне на ум приходит только попиксельный анализ каждого квадрата и занесение этой информации в один общий массив из которого будет формироваться этот самый png. Может существуют способы сделать проще?
Я думал, что сначала у всех объектов вызывается Awake, а затем OnEnable. Но оказалось, что для каждого объекта Awake и OnEnable вызываются вместе. Нахуй так жить.
>>756179 Слушай анончик, а как сам объект интерфейса показать в скрипте? У тебя же инвентарь не всегда на экране висит, его можно открыть-закрыть. Как это сделать?
>>756270 Если бы я нашёл рабочие примеры, то я бы использовал эту систему, анончик. На гите есть относительно рабочие вещи, но анимация, если не ошибаюсь, шла скриптами. >двухгодичной давности. Там должны быть паки месяцев шесть давностью, посвежее.
Друзья, подскажите, может кто сталкивался с такой проблемой: тэг <font> не работает в TextMeshPro. Все шрифты, как и полагается, находятся в папке "Resources/Fonts & Materials". Не работает даже со стандартными шрифтами или шрифтами из примеров. Остальные тэги спокойно работают, флаг Rich text включен. Версия Юнити 2021.1.15f1, TMPro стоит последней версии - 3.0.6
>>756337 Я перемудрил, мне всего лишь нужно было направление, в котором смотрит перс. Прицепился к float-ам в верхнем слое аниматора, которые и влияют собственно на это дерево и задача была решена. Но как залезть внутрь дерева всё ещё загадка.
Привет аноны, насколько прожорливые шейдеры, созданные в shader graph? Нужна ли какая-то оптимизация? Делаю только unlit щейдеры, некоторые люди вообще lit используют уже вовсю для телефонов.
Раз уж тут заговорили об интерфейсе - насколько норм тема использовать CanvasGroup для сокрытия окон? Чтобы окна продолжали обновляться и обрабатывать события, даже когда они невидимы.
Как я понял, если через CanvasGroup установить alpha = 0, то рендер отключается.
Как я понял, MonoBehaviour скрипты работают пока висят на каком- то объекте и пока этот объект не уничтожается(вручную или при переходе на другую сцену). Но вот сейчас в одном скрипте подписался на обратный вызов, перешел в другую сцену(объект вместе с повешенным на него скриптом потерся). Тут прилетает обратный вызов и оказывается, что скрипт-то с потертым объектом прекрасно работает и пытается запускать повешенные на обратный вызов методы, которые в свою очередь пытаются двигать удаленные в предыдущей сцене объекты.. Чет какой-то пиздец, нихуя не понимаю зачем было так делать
>>756487 В доках это поведение описано, потому что операция сравнения с null показывает "уничтожен" объект или нет, у базового Object состояние всегда уничтоженное, меняется только классами наследующими Object при инициализации. То что этого не знаешь конкретно ты это твои проблемы.
>>756496 >То что этого не знаешь конкретно ты это твои проблемы Наитупейшая отговорка на любой случай.
>В доках это поведение описано Да, если знаешь, что искать. А узнаешь ты об этом, когда придётся дебажить код и выяснять, почему вдруг срабатывает проверка на null.
>>756501 Сами юнитеки признали проблему. Многочисленные вопросы от разработчиков говорят о том, что это проблема.
Есть ожидаемое поведением '=='. И если опытный программист, который знает про определение операторов, ещё может догадаться, то для новичков это вообще трагедия.
>>756505 >голый Object Это проблема всего, что наследует от Object. В том числе MonoBehaviour. Если используешь .? или ??, то будет проверка ссылки на null. Если используешь == null, то будет проверка уничтожен ли объект на сцене. Что вообще неочевидно. В ui они додумались для этого добавить отдельный метод IsDestroyed.
>>756540 А что не так? Новая физика на дотс. Новая звуковая система на дотс. Анимация на дотс. Рендринг на дотс. Новая сеть на дотс. Сам юнити собираются в конечном счёте перестроить под разработку на дотс. Другой вопрос, какого хуя они так медленно всё делают.
>>756704 > какого хуя они так медленно всё делают У маркетологов была задача максимально расфорсить говно для неофитов. О том что это кто-то будет делать вопроса не стояло.
>>756704 >какого хуя они так медленно всё делают. Ты пробовал на дотсе что-нибудь сделать? Он давно доступен превью пакетом. Вот скачай сделай, скажем, первый уровень из марио на дотсе, а потом придешь в тред и расскажешь как оно и стоит ли сейчас "все системы переводить" на дотс.
>>756802 да, думаю о том, что для ранней версии поставить просто какие то спрайты с инета, а потом заебаться, и либо самому рисовать, либо попросить подругу
>>756852 Так тебе же и нужно пол экрана ч/б. Вообще, лучше натянуть ее на весь экран и просто половину сделать ч\б, а другую половину нормальной, с красивым переходом.
Сверхразумы, помогите, как мне посредством юнити и без ебли в жопу сделть дырку в стене. У меня есть моделька сооружения и мне необходимо сделать сквозной проход в ней. Какие способы простые и рабочие способы реализации этого возможны?
>>757091 Знаешь, порно игр вообще нормальных нет. Ты посмотри что там в топах на всяких f95, это же ужас. >>757096 Кстати, вроде производство контента такого у нас и запрещено, но я никогда не слышал чтобы кого-то посадили
>>757100 > Знаешь, порно игр вообще нормальных нет. Ты посмотри что там в топах на всяких f95, это же ужас. Забыл мысль завершить. Если выпустить просто игру без ужасного уебищного 3д сделанного безруким, и закончить ее, а не делать спустя 5 лет только версию 0.234.62, то тебя только за это все облабызают и полюбят
>>757106 Как с этим связан клип рамштайн? И опять же, закон конечно есть, но в России дохуя людей производят порно. Думаю если я не буду выкладывать всё под своим именем, то ничего не будет.
>>757113 >Как с этим связан клип рамштайн? Ты тролишь что ли? Статью бы хоть открыл. В оборот входит также и распространение порно, что также наказывается от 2 до 6 лет. Репост клипа = распространение. Выкладывание в инет порно игры = распространение.
А как ты деньги с нее получать будешь? Пейпел? Он прозрачный, налоговая все видит. Биткоин? В ЕС он уже почти прозрачным стал, в россии тоже вангую будет, да и никто не будет платить тебе в битках, всем лень заморачиваться. Сейчас гайки все закручиваются. И да сейчас еще не сажают, но ты уверен что все будет также через лет 10? Нахуя создавать копромат на самого себя, ради хуй пойми чего?
>>757117 > Ты тролишь что ли? Бля, всё я вспомнил, у них же был клип с еблей. Я вообще забыл об этом, думал ты про какой-то обычный клип говоришь > И да сейчас еще не сажают, но ты уверен что все будет также через лет 10? Мне кажется ты слишком драматизируешь. Кстати, видел игры от русских разработчиков с патреоном, не знаю уж как они выводят с них деньги, но явно как-то они это делают
>>757121 Ну я же не буду выкладывать игру, а рядом приписывать автор такой-то, родился тогда-то, вот паспортные данные и фото. Хованский это другое дело, он личность публичная и делал все прям на камеру. Тут и это сыграло роль, и то что он известен, то есть можно как бы припугнуть остальных этим случаем, так как 100% все узнают про это. И опять же, ну неужели в России нет порноделов по твоему? Да их полно, но за порно по моему вообще никого не судят (я про всяких рисовак, аниматоров и игроделов из интернета)
>>757134 Да ты не понял, я не говорю что всех подряд сажают за это. Но если захотят, то у них уже будет готовый компромат который ты сделал сам, понимаешь? Хуй знает может ты через лет 15 дохуя политиком\бизнесменом\медиаперсоной будешь, думаешь не найдут твои порноигрульки?
>>757188 Ты отчасти прав. Но опять же, как они эту игру свяжут именно со мной? Аккаунт на ф95 не на основную почту, ники везде разные и т.д. Тем более через 15 лет все следы затеряются еще больше. А может я вообще в другой стране уже буду жить. А уж если захотят все таки, то не все ли равно за что, хоть за порноигру, хоть наркотики подкинут, всё равно посадят ведь
Посоны, как правильно реализовывать кнопки на экране управления персонажем? Влево\вправо, прыжок, стрельба. Все через inputGettouch или как? Сделал все на UI.Buttons, но думаю это костыль какой-то для мобилок
>>757266 Управление/Осмотр джойстиком, кнопки действия/Умений небольшие. Смотри на примере популярных мобилок, и просто перенимай расположение, всё продумано до нас.
>>757269 Да расположение то понятно, на скрине как раз какая-то мобилка. Я имею в виду как правильнее сделать через Event trigger, Ui.button, Get.Touch или еще как? Или вообще похуй?
Нужен совет, только вкатываюсь в C#, пока дрочу вот этот туториал >https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm Но понимаю, что просто поток теории не могу осмыслить, есть ли возможность как-то разбавить это практикой? Или пока просто забить, кое-как выдрочить туториал, а потом идти делать простенькие задачки?
>>757467 Хорошо, я тебя услышал, но неужели нет способа нормально получать деньги с такого контента, который даже ты посчитал бы достаточно безопасным?
Анчоусы, закатываюсь в юнити, пробую всякое. Сделал около арканоид, пытаюсь добавить текст - его тупо нет, даже в редакторе. Оказалось, что я все обьекты сделал просто охуенно маленькими, а юнити не может заскейлить текст настолько сильно и не отображает его. Хотя я изначально просто по какому-то гайду на дефолтном 2д вью камеры начал накидывать обьекты и руками двигать размеры, не вглядываясь что там.
Я уже позумил все вручную, до походящего размера, но я что-то не пойму как это сделать правильно. Как установить размер камеры в условные 800х600? В гугле не могу такого найти, может я не туда копаю?
>>757533 Либо меняй разрешения канваса, либо делай им род.Обьект и его скалируй, пото удаляй.
>>757473 Делаешь в аниматоре вход в пустой клип, а нужный запускай из скрипта.
>>757458 Как уже написали, попробуй сделать что-то простое по типу: Главное меню-Игра клацать по появляющимся картинкам-Очки-Титры. И сразу познаешь кучу всех ньюансов.
>>757277 Прочитай как работают джойстики, и не задавай тупых вопросов.
от души анон, пофиксил шрифты вот этим. Было 1, сделал 5 и охуенно стало. Я правильно понимаю, что в теории это будет влиять на производительность если там дохуя обьектов (хотя откуда бы им быть в юайке)?
> либо делай им род.Обьект и его скалируй, пото удаляй. имеешь ввиду ебнуть всем общего парента и поскейлить? Я пробовал, вышли какие-то ебнутые привязки элементов к нему, я не разобрался как понять кто к кому приявязан, в итоге так перенес, благо обьектов мало было. Да и префабы, как я понимаю, только руками и можно поскейлить?
>>757537 >Прочитай как работают джойстики, и не задавай тупых вопросов. Причем тут нахуй джойстики? Кнопки справа тоже джойстики? Не давай тупых советов лучше
>>752458 (OP) Как заставить отработанный спрайт исчезнуть/удалить? Создал префаб взыва через анимацию спрайта, сделал метод который запускает анимацию после попадания пули, spawnPos += new Vector3(0, 0, 0); Instantiate(PrefabExplosion, spawnPos, Quaternion.identity); Destroy(gameObject);
Но он не исчезает после взрыва остаётся последний спрайт с дымкой, как это пофиксить? Или просто добавить ещё один спрайт с прозрачным фоном?
Как редактировать Off-Mesh link или NavMeshLink? Я имею ввиду саму кривую. Допустим, я сделал прыжок противника на платформу, но он слишком полого двигается, типа, как будто просто перешагивает через пропасть или наступает на уступ (который в 2 раза выше его самого). Я хочу более изогнутую кривую перемещения
Парни, каким способом обычно делаются диалоги на юнити, ну например я хочу подать мальнькую сцену, где будет несколько сообщений между врагом и героев, как это делается? Прсто на таумлайне расставляются спрайты и исчезают через прмежуток времени или как?
идем в Animation привязанную через Animator к нужному нам объекту(предварительно его выбираем!) Жмем значек Add Event (слева, крайний правый в нижнем ряду - "столбик с +") или правой кнопкой по полоске справа, куда кидаем спрайты. двигаем событие в нужное место по полоске со спрайтами (на самый последний в нашем случае) Теперь из выпадающего списка выбираем функцию OnDestroy()
Создаем скрипт и вешаем его на нужный нам объект, внутри пишем функцию public void OnDestroy() { Destroy(gameObject); } Теперь при запуске анимации, когда она дойдет до последнего кадра, объект будет уничтожен вместе с его анимацией
>>757987 Если коротко, то вместо того чтобы каждый раз создавать новый обьект и уничтожать его, ты берешь из пула уже заготовленный и используешь, а когда он становится не нужным, то деактивируешь и убираешь обратно в пул. Вот тут охуенно расписано: https://www.raywenderlich.com/847-object-pooling-in-unity
>>757991 Это почти всегда актуально, особенно когда много обьектов. У тебя же герой не один раз за игру стреляет. Каждый раз при выстреле создавать новый обьект процессор с ума сойдет. То же самое со спавном врагов и их пуль.
>>757989 Нихуя круто придумали. А чому юнити не умеет это из коробки?
Выглядит очень просто для универсальной реализации, вплоть до того что могли бы навешивать кеширование всем обьектам прям во время игры, если движок видит что обьект реюзается больше N раз на X времени.
Вопрос от хренового программиста по архитектуре. Делаю TPS. Есть скрипт PlayerInput, который берёт инпут и дережирует другими скриптами. Есть PlayerAnimation, который на текущий момент обслуживает анимацию ходьбы. Есть интерфейс iWeapon, от которого реализовыны скрипты Hitscan, Projectile и Melee. Пока никто ни от кого не зависил всё было заебись. Но теперь делю мили, и появилась проблема с повторным ударом - он должен быть доступен только после того как анимация удара проигралась до конца. Получается теперь випон зависит от аниматора(ждать конца анимации), аниматор от випона(какую анимацию играть), и инпут от обоих тому что он дережирует нажатием на спусковой крбчёк. Как правильно делать в таком случае?
>>758036 >Есть скрипт PlayerInput, который берёт инпут и дережирует другими скриптами. >Есть интерфейс iWeapon Я так перестал делать. Только лишняя зависимость. Я теперь всю логику делаю внутри компонентов. Конроллер сам берет инпут и сам себя обновляет. Оружие само берет инпут и само себя обновляет и т.д. Так удобнее.
>>758036 У тебя так и так должна быть задержка перед повторным выстрелом. Так что просто внеси её в логику оружия. А от аниматора вообще никто не должен зависеть, это самая последняя ступенька, куда только команды от логики приходят.
Ананасы, в юнити есть какие-то спецефичные код конвеншены? Смотрю гайды - все пишут хуй пойми как. Я например называю публичные переменные с большой буквы, что бы понятно было. Какие-то рандомы иногда приватные через андерскор ебашат, хотя я считаю что это устарело лет на 30 уже. Ну и так далее, не могу понять есть ли что-то принятое в комьюнити по этому поводу, я может в глаза ебусь, но ничего похожего на общий стандарт найти не могу.
Или придерживаться шарповых и не ебать голову?
мимо вкатывальщик, никогда не писал на шарпе больше условного калькулятора, но язык выглядит простым как хуй, благо имею 15 лет опыта на других мовах
>>758181 Пиши хуй знает как и не еби голову. Пиши CamelCase, но всем говори, что это pascalCase. А за андерскор можно по ебалу получить. Если не ставить, естественно.
Хочу сделать отдельный Update, который будет вызываться в определенных случаях. Как так сделать? Объектов, которые будут зависеть от этого апдейта много
>>758337 А кроме ифа в апдейте вариантов нет. Есть корутины, но под капотом это иф в апдейте. Можно запустить дочерний поток, но из него не будет доступа к апи движка. Гугли ecs и ебись в жопу.
>>758356 Ладно. А, допустим, обратиться ко всем объектам, которые имеют определенный скрипт (или, например, по тегу) и дёрнуть их? Я не хочу чтобы скрипт передавал сам себя при создании в контроллер, должен же быть способ проще
>>758359 >обратиться ко всем объектам, которые имеют определенный скрипт Это же дефолтное поведение. Такое же поведение у ecs. Я не понимаю, чего ты хочешь. >скрипт передавал сам себя при создании в контроллер Видел тут еблана с триллионом событий? Он это я. У меня скрипты подписываются на событие апдейта монобеха. Есть мизерная хуитка, на которую подписан триллион скриптов и это всё как-то работает. Из минусов - все минусы подобного подхода.
>>758359 >Я не хочу чтобы скрипт передавал сам себя при создании в контроллер Пусть контроллер сам создает нужные объекты и хранит созданные у себя в списке, вот у тебя и будет список объектов который ты будешь обрабатывать в цикле.
>>758376 Да, я про тоже. Придется собирать все скрипты, а мне, допустим, надо раз в пару кадров этот фокус исполнять, да и не гибко получается - придёт удалять из массива при удалении объекта с кодом, геморройно...
>>758371 Ты, скорее всего, что-то делаешь через анус. Дважды подумай, так ли нужен тебе этот второй апдейт. Если прямо пиздец, как нужен, то создай определённое событие с глобальной областью видимости. Вызывай это событие корутиной и подписывайся на него из своих скриптов. И отписывайся, соответственно. Но это всё равно иф в апдейте, бтв. >придется все скрипты собирать Не обязательно, если в каждом монобех скрипте в апдейт добавить иф.
>>758381 >придёт удалять из массива при удалении объекта с кодом, геморройно Ничего себе, из массива объект придется удалять. Зачем тебе такие сложности, в макдак лучше иди, там спокойнее и проще.
>>758385 Значит делай менеджер, который единожды выполнит один иф, а затем уже пройдётся по всей твоей сотне объектов. Но ты укрепил моё мнение, что у тебя что-то реализовано через анус.
>>758385 >У меня сотни объектов Преждевременная оптимизация. Пока у тебя объекты не будет исчиляться тысячами, можешь даже не париться по поводу индивидуальных апдейтов. Разницу все равно не заметишь.
>>758574 Ты можешь в дочерних процессах делать всё, что угодно, кроме того, чего ты делать не можешь. А именно, у тебя нет доступа к апи движка ни из какого потока, кроме основного.
>>758618 А как ты это представляешь? Картинку с разрешением 9999999х999999? Конечно это реализуется дублем блоков, но как это сделать есть разные способы, и под разные задачи подойдёт своё.
>>758625 Ну ведь ты даже уже сам всё нагуглил, сделай тоже самое как в тех видосах и занимайся себе геймплеем дальше, или ты к чему-то конкретному клонишь?
>>758631 Я довольно конкретно спрашивал есть ли другой способ, кроме как писать код руками. Я та еще ленивая мразь, хоть тут и интересно напилить так что бы красиво и оптимально было, но это займет время, которое я лучше потрачу на геймплей.
ну или можно пизданть готовую либу из стора, но как-то зашкварно что ли
Как сделать игру в юнити, не запуская редактор? Я погуглил, там везде надо скачивать студию и писать код, мне правда руками это надо делать? Юнити не умеет в такую хуйню из коробки?
>>758618 Можно шейдер сделать, но ты не осилишь. Можешь сделать анимацию для своего бекграунда, которая будет скролится в сторону, на ровно такое расстояние, чтобы в конце оказываться визуально там же, где и вначале.
>>758724 Хз, с одним материалом все отображается на фоне ui и в камере, заменяю в партикле материалал на другой, либо вообще перестает рендеритбся в камере, либо рендерится, но тошько на заднем плане, за элементами ui. При этом эти же материалы используются в самой игре, там все отлбражается.
>>758727 Так поулчается, если отключен shape. Если включить, то отображается нормальной. Но мне нужно чтобы частицы были строго на одном месте, как в shape это сделать?
Посоны, как выбрать выбрать в каком разрешении рисовать героя и спрайты окружения? Пилю 2d платформер для мобилок. Допустим разрешение в среднем фуллхд. Какой размер должен быть у героя?
Парни никто не знает почему у меня в 3д редакторе анимация плавная а когда я перекидываю в движок она становится дёрганной? Речь о 2д, проверял даже на гифках всё плавно, но движо пидорасит спрайты
Начал недавно изучать движок и решил сделать игру бильярд, но столкнулся с проблемой. После столкновения шара с шаром первый шар не передаёт энергию второму и останавливается, а продолжает катиться вместе с ним. Может кто уже писал подобное и знает как решить проблему.
Подскажите, о чем прочитать, чтобы реализовать движение объекта в пределах камеры? То есть у меня есть 3д объект и когда он заходит за предел видимости камеры, появлялся в противоположной стороне.
>>759222 А что сложного? В апдейте проверяешь не вышел ли обьект за границы физической камеры, либо же триггером/коллайдером. По быстрому вот что можешь в гугл засунуть и почекать ссылки: unity camera object leave view.
NullReferenceException: ссылка на объект не установлена на экземпляр объекта GameManager.DelLife () (в Assets / Scripts / GameManager.cs: 74) что ему надо? Я всё связал. Эта хрень возникает когда я из сцены в сцену перехожу
В синемашине такая штука как дулли камера, которая ездит по рельсам следя за персонажем. Как бы так сделать чтоб она работала с развилками и перекрёстками?
Решил попробовать сделать 2д игру. Нарисовал себе картинок, вставляю, а у них там где полупрозрачные краешки в фотошопе, рисует белую каёмку. Пикрил. Как ее пофиксить?
Нуб вопрос. Целесообразно ли использовать в update поиск двух массивов объектов по типу и в нем же искать дистанцию между каждым элементом одного массива с каждым другого, сильно это повлияет на производительность? Есть альтернативный путь?
>>759416 А ты не псд захуярил в юньку? Там особая галочка для псд есть.
>>759479 Нет, не целесообразно. У тебя пиздецки платиновый вопрос и это в 100% случаев значило, что что-то делается через анус. Если не хочешь ничего менять, то используй ecs, он справится с такой задачей.
Продолжаю пилить бильярд и заметил, что корректность расчёта физики столкновений шаров напрямую зависит от параметра velocity, который я придаю кию. При определённых значениях(почти всех) угол соударения не равен 90 градусам(он всегда должен быть 90 градусов). Collision detection у всех объектов стоит continuous dynamic. Это баг движка и мне нужно прописывать передачу импульса вручную в отдельном скрипте или я что-то не так делаю.
Если спизидть платный ассет и запихнуть в свою игру, это как-то спалится юнити или создателями ассета? Если я потом буду продавать игру в стиме? с первых денег с игры сразу бы купил этот ассет потом
>>759623 Это entity component system, иной подход к написанию приложения. Который позволяет легко параллелить вычисления и вообще заебись, хорошо сделоли. >А если менять? Ну то есть без ecs. Тогда тебе нужен какой-то оптимизон. Высчитывать 60 раз в секунду для каждого объекта это пиздос ну или сколько там у тебя фпс будет, полный перебор это квадратичная зависимость. То есть шаг первый - ебануть корутину, которая выполняется немного пореже. Шаг второй - разделить количество вычислений на два. То есть высчитываем расстояние от точки А до С, находим, когда доходим до точки С - расстояние до А уже найдено. Третий шаг это деревья, но тут уже земля тебе пухом. Если ты сформулируешь не то, что ты хочешь сделать, а для чего ты хочешь это сделать - то скорее всего окажется, что рассчитывать расстояния между точками тебе просто не нужно.
>>759689 Юнити аналитикс чекает много инфы о каждом твоём проекте в хабе, и шлёт её. Но по опыту могу сказать, покак личная претензия от создателя, либо большие деньги не появится, всем похуй.
Упрощённая система перелезаний через препятствия
петя куралесов02/08/21 Пнд 16:48:55№759850416
Вечер в хату, индюки! Столкнулся с острой нехваткой примеров реализации карабканья по препятствием, ну типо орк подошёл к забору, забрался и сел на корточки. Есть всего один туториал youtube.com/watch?v=iPGGp6VmNB0 и пара статеек, ссылающихся на этот же видос. В чём же проблема? А вот в чём, в примере в качестве препятствий используются только коробки/параллелепипеды, причём на каждое препятствие вешается скриптик с кордами всех 8-ми углов, но в моей супер-йоба игре врагам (да и не только) придётся карабкаться по разной хуйне разной формы, а некоторые препятствия вообще будут соединены в единый супер-йоба навмеш на всю карту. Так как же реализовать перелезание препятствий указанной высоты и при этом без скриптов на самих препятствиях? Понятное дело что тут нужно юзать лучи, но как например найти конкретную точку забора, за которую зацепится орк? Крч жду любых идей, даже самых ебанутых, а если знаете готовые решения, то это вообще кайфец.
>>759850 Без скриптов в местах перехода никак, либо же пилить универсальную систему под это, но там не только лучи, но еще и слои надо будет юзать для детекта.
>>759850 Вот так навскидку приходит в голову только чекать столкновения с коллайдерами и проверять высоту препятствия относительно персонажа. >конкретную точку забора, за которую зацепится орк? Так у тебя есть точка коллизии, проигрываешь анимацию цеплянию. Руки-ноги доводишь инверсной кинематикой.
>>752458 (OP) Парни добавьте в шапку ссылку на книгу - Разработка игр на Unity за 24 часа, книжный вариант. Я уже несколько книг прочитал по юнити и для меня эта стала просто настольной библией. Без сарказма, каждый час это отдельный кусок знаний по движку, впервые сделал по ней свою маленькую игру, без туториала.
>>759256 Бумп. Мож кто алгоритм тогда подскажет, или асссет на сторе? Мне ничего лучше, чем сделать мешколлайдер для всех путей и навесить капсулу на камеру, на ум не пришло.
Делаю типо 2д изометрию. Сделал аниматор контроллер и скрипт к нему (кусок пикрил) по туторам, но есть проблема. Работают анимации только в четырех направлениях ,вверх вниз, вправо влево, а наискосок (вправо-вверх, влево-вверх, вниз-влево, вниз-вправо) они не проигрываются.
И еще в целом анимации меняются с задержкой, тоесть герой побежал уже допустим, а анимация с спокойствия сменяется на бег только через секунду после начала передвижения. Пробовал менять параметры Exit time, прерывания, ничего не помогает. Чего-то я не понимаю.
>>760228 >Работают анимации только в четырех направлениях ААААА, БЛЯДЬ! ААААА! Это если коротко. Если развернуть, то просто твой контроллер хуйня. Разбери его на запчасти. Двойные проверки какого хуя и нахуя? Потом сделай свитч, в котором сходим в состояние раннинг, а потом уже чекаем, куда. Если вперёд - то чекаем, вперед и вправо\лево или просто вперёд. У меня это реализовано просто через вектор мувдирекшн, но у меня ториде, для спрайтового 2д неудобно будет. >Exit time В самом аниматоре галочку has exit time снял?
>>760231 да я не умею кодить, по туторам делаю, ну и мне еще помогает прогер время от времени. > Any Stete Спс, почитаю про это >>760238 Кажется я понял, спасибо! >галочку has exit time снял? Да, снимал, и тоже самое. Сейчас еще раз перепроверю все.
>>759961 Хуита. Я вчера Unity In Action начал и уже с первых глав заинтересовало, так как они сразу коснулись скриптов и как это все связывается, можно прям сходу какие-то куски геймплея писать. В твоей же книге я 100 страниц пролистал, а они все рассказывают как свет расставлять, что такое материалы и как горы рисовать. Совсем как-то тухло.
посмотри как этот чел делал ноги павуку. Там какая-то адаптивная хуйня для нахождения ближайшей точки куда деть лапу. Я давно видос смотрел, не помню деталей, специально для тебя нашел, может поможет.
Анончики, подскажите пожалуйста. Допустим, я пишу небольшую мобильную игрушку на юнити под ио и ан. Помимо основного функционала игры я хочу впилить в него некое подобие ньюсфида - т.е. отдельное окошко со списком новостей, апдейтов и так далее. Из функционала меня интересует собственно возможность ленты новостей с превью постов (по тапу открывается полная статья), превьюшками видосов (по тапу открывается ютуб) и картинками (просто статичные арты без взаимодействия с ними). К ньюсфиду я бы ещё хотел прикрутить логирование и смотреть, какой юзер куда зашёл, в какое окошко тыкнул и какие новости читал. Конкретно по реализации такого функционала вопросов нет - найду готовый продукт и встрою, либо напишу сам.
Вопрос у меня здесь в архитектуре такой штуки. Как я понимаю, тут два варианта: либо нативное встраивание в клиент (готового или самописного решения), либо вебвью - нарисовать веб-страничку со всей нужной мне инфой и структурой и просто встраивать её в вебвью. Какой из этих двух вариантов лучше выбрать? Из очевидных минусов как я понимаю - для каждого обновления ньюсфида мне придётся перезаливать клиент, а это двухнедельные проверки билда в аппсторе и прочая поебень. И кажется, в этом плане гораздо проще встроить вебвью, но мб у него есть какие-то минусы? Вроде я слышал, что на айоси есть проблемы с поднятием вебвью на юнити, так ли это? И как в случае вебвью быть с пробросом метаданных игрока для логов, возможно ли вообще из игры сообщать вебвью-контейнеру userid?
>>760548 Хость джейсон с фидом хоть на гитхабе, просто тяни его клиентом и отрисовывай нативно. Нужно добавить что-то в фид - обновил джейсон без релиза аппы и готово. Локально можешь айдишник последнего прочитанного айтема запоминать и какую-нибудь логику отображения вокруг этого строить. >К ньюсфиду я бы ещё хотел прикрутить логирование и смотреть, какой юзер куда зашёл, в какое окошко тыкнул и какие новости читал. Шпион какой, не одобряю. Хотя бы разрешения пользователя спроси. Мимо айос-разраб, юнити только вчера поставил
Сап анон пили генератор уровней в стиле бомбермен Кароче основной алгоритм уже разобрал, единственно не могу заставит центровать спрайты по центру, чттобы один спрайт не накладывался на другой. Вычитал о Mathf.RoundToInt, но она почему то не работает. Может кто знает чего?
>>760686 Как ты представляешь ответ на этот вопрос? Учи где хочешь - книги, ютуб, статьи, форумы, преподаватели, курсы. Как долго от тебя зависит и от того что ты хочешь от юнити
>>760686 >Где учить C# для юнити новичку? В шараге для быстрого прогресса. Самому по ютубу и книгам для долгого и ленивого вката >И как долго? Я надеюсь ты тролишь. Синтаксис можно за месяц освоить, а логике ты можешь ни научиться никогда.
>>760719 >Посоветуешь годные книги? По С# Мюллер Д. П. C# для чайников Учишь максимум до списков. По юнити Разработка игр на Unity 2018 за 24 часа | Гейг Майк
Не жлобься и купи книжные версии этих книг, максимум выйдет 3и тысячи, но они того стоят.
>>752458 (OP) Я не знаю что делать уже 4 е раза устанавливаю юнити 2020, перед этим я полностью удалял и хаб и предыдущие версии и в реестре всё чистил, я не знаю в чём проблема, помогите установить движок.
>>760794 Что я бы попробовал в данном случаи. 1. Погуглить текст ошибки частями копируя его. 2. Удалить юньку, почистить клинером, перезагрузить, и только потом установить, хаб трогать не надо.
Скорее всего какой-то не частый баг, я сталкивался с похожим, ебался долго, но у меня там залупа с андроидской хернёй была, просто винду переустановил и всё окей, но так делать конечно не надо, как последний вариант.
>>760686 Если ты хочешь игры делать на юньке, то отбрось сразу РЕЗКО чтение всяких скучнейших книг к тому же устаревших. Сейчас другой век. Самое просто - на оф.сайте смотреть видосике и повторять. Посложнее на ютубе искать серии создание игры с нуля(Важное уточнение-Сразу чекать что автор сделал чтото а не оборвалось на полуслове). За свою жизнь не прочёл ниодной книги по шарпу, однако спокойно выучил его и сделал одну сетевую игру с сервером на зеркале и парочку индюшатины в стим, нужно лишь желание и время.
>>760798 Скорее всего я в два раза старше тебя. >>760804 1. Я это уже делал, пишет на какие-то неустановленные библиотеки в студии. Добавьте ссылки на следующие библиотеки DLL: nmock.dll, nunit.core.dll, nunit. framework.dll, ThoughtWorks.Selenium.Core.dll, ThoughtWorks.Selenium.IntegrationTests.dll и ThoughtWorks.Selenium.UnitTests.dll 2. Я всё это делал, за 4е раза применил разные вариации установки. 3. И конечно нет винду я переустанавливать не буду.
Правильно, топи конкурента в зародыше. Пусть смотрит офиц. туторы на сайте, только сначала пусть выучит язык чтобы понимать что говорят. Пусть смотрит туторы рукомьюнити, и повторяет шаг за шагом в своё время я больше десятка таким образом "сделал" игр, только пусть сразу берёт второй моник или ноут чтобы постоянно не скипать туториал и движок. Пусть по каждой мелочи лезет в утуб и гуглит, а не просто протягивает руку и открывает книгу на закладке.
>>760817 >а не просто протягивает руку и открывает книгу на закладке. Тут у тебя ошибка, там не показана как делать игру в юнити, вообще от слова совсем. Игра делается сборкой кучей стаффа, а кинги лишь даёт кусок текста которые ты еще и применить можешь не сможешь. Она не даёт тебе понятие как разбросать скрипты по сцене, как сделать зависимости между ними, что делать в сцене.
Единственная возможность начать делать игры почти с 100% вероятности для обычноанона это методом проб и ошибок по видео0гайдам делать также.
Единственное правильное замечание от тебя нужно небольшое понимание инглиша, это да, тому что почти всё гуглиться только на нём. Ну и из полезного два моника тоже, но это не критично.
А свои книги можешь в помойку выбросить, это по типу вебинаров, куча инфы в перемешку с водой, а игру то ток делать будет?
>>760830 Поясню на всякий, это было сказано в контексте : чтобы начать делать игры на юнити, худшее что можно делать это начать тратить время на книги. Конечно книги не стоит выбрасывать если они полезны или это твой личный подход. Но время не стоит на месте, чтение книг менее эффективно чем гугление возникшей проблемы, или же просмотр решения в целом.
>>760832 >>760830 челы у вас спор о двух разных подходах к вещам.
Один топит за практику, потом теорию, второй начинает с теории.
Я вот отношусь к тем, кто просто берет и делает, на ходу вникая что куда, но и понимаю и тех кто сначала выдрачивает теорию, хотя и считаю это не эффективным, в контексте разработки по, а то можно дочитаться до усрачки, а на выходе только пук.
Этот анон прав - пока дочитываешь, половина уже устарела. Надо брать и ебашить, читать книги имеет смысл либо если ты совсем нафаня, кода не нюхавшая, либо если ты уже ультра дед, которому нужно систематизировать знания полученные за годы и годы опыта.
>>760834 Я тоже отношусь к тем >кто просто берет и делает, на ходу вникая что куда и в погромировании достиг неплохих результатов с таким подходом. Читать книгу чревато - можно заебаться и потерять интерес. Когда сразу делаешь и непосредственно решаешь самую ближнюю проблему - мотивация только разгоняется.
Однако видеоматериалы считаю раком ебучим, учить разработку по ютубу это пиздец. Выбор джентльменов - текстовые туторы и документация. Текст можно гораздо быстрее распарсить глазами и скипнуть ненужное, вернуться к чему-то и перечитать непонятный кусок гораздо проще. Не будьте зумерами, ютуб - не ответ на все ваши вопросы.
Несмотря на то, что я хуесосил книги, конкретно для юнити книга Unity in action мне показалась хорошим материалом для вката, лучше любых туториалов, которые я наискось пробегал ранее. Я, будучи юнити-нубом, начал ее недавно и таки она без лишнего говняка объясняет что к чему и заинтересовывает.
>учить разработку по ютубу это пиздец Пользуясь случаем, хотел бы высказать своё мнение по этому поводу. Буду краток. Когда-то уроки были исключительно в текстовом формате, а потом, где-то в нулевых, пришла эра ютуба. Вся хуйня полилась в ютуб. Сейчас во многих случаях ты выбираешь между двух стульев - это сухая справка по апи, где нихуя не понятно, как использовать, что вообще происходит, иногда даже неймспейсы неизвестны, молчу уж о банальном примере использования. По моему мнению, текст без примера реализации - бесполезен. Либо видеоурок на ютубе. Смотришь такой видео и думаешь - МРАЗЬ, МНЕ НИХУЯ НЕ ВИДНО. ПИДОРАС, БЛЯДЬ, МЫЛЬНОЕ ЕБАНОЕ ВИДЕО, НЕ МОГ МЕЛЬЧЕ СДЕЛАТЬ? АХ, У ТЕБЯ И ТАК 144ПИ? ПИ-ПИ-ПИДОРАСИНА ЕБАНАЯ. За кадром же челик максимально унылым голосом с ебейшим акцентом что-то рассказывает. И мне сложно понимать, так как английский не родной, и ему сложно говорить, потому что родной у него индийский какой-то, блядь. Челик печатает какую-то хуйню, стирает, печатает заново, а скорость набора такова, что я бы ногой, блядь, написал быстрее. Пером. Каллиграфически. С завязанными глазами. Книги же это удел пидорасов с разных эвентов и зум совещаний. Да, это поможет вам пиздеть языком, но не писать код. Берёшь своими руками и ебашишь, вариантов других нет. Если что и читать, так это форумы с такими же долбоёбами, как ты сам. Любые нубские вопросы уже были обсосаны ещё до того, как ты выпустил батину сиську из рук, буквально на каждый твой вопрос уже готов ответ. Тебе может показаться, что ты ступил туда, куда не ступала нога человека, но скорее всего ты просто вступил в говно. Даже передний край юнити технологий, все эти дотсы и ецсы были обсосаны годы назад и реализованы в юнити ещё до самих юнитологов.
>>760859 Неистово двачую про ютуб, сплошное рачье. Нет, есть конечно охуенные челы, которые без хуйни поясняют по юнити почившего берклиса только сходу вспомню, но это хорошо ровно до тех пор, пока показывают именно визуальную часть, в юнити много чего завязанно на это, но когда они показывают код - это пиздец.
>Вы же тралите? Походу нет. Устанавливаю в 5й раз 19у версию, в чём может быть баг, почему у меня старая версия 18года работала, а новая напроч не устанавливается?
>>760906 Нет, всё загружается, но когда я создаю новый проект, то выскакивает 478 ошибок. Я подозреваю, что онити просто автоматически не устанавливает какие то пакеты и тепеь мне нужно найти эти пакеты и вручную их установить.
Сидел себе на 2019, никого не трогал, всё работало более-менее нормально. Но приспичило мне создать новый проект и решил я обновиться (сейчас 2021.1.7). И вот каждый раз я наблюдаю это долбаное окошко, при запуске сцены, при малейшем пуке оно вылезает и начинает тупить. Я просто редактировал спрайтшит и оно повесило мне всё к ебеням в очередной раз. Теперь мне придётся вырубать это говно через диспетчер и потерять какие-то изменения. Что эти говнокодеры там сломали мне неведомо, неужели придётся откатываться обратно на 2019? Это можно вылечить?
>>760948 На днях тоже ставил 2020 чисто пасмареть че там нового. Так же прихуел от времени старта и в целом тормознутостью после 2018.
Диспетчер показывает что в это время ( Importing...) работает фаервол винды а не юнити. Т.е. юнити тупо ждет когда фаервол проверит все файлы. Добавьте юнити в игнор список фаервола. Сам проверять не стану, откатился обратно, не понравилось
>>761070 Делаешь одно уникальное окно со скриптом. Оно принимает нужные данные и положение на экране в зависимости от заранее выставленных точек, либо координат в самом скрипте. Оно не зависимо не от чего, при надобности можешь менять уровни для не перекрывания другими обьектами.
Извиняюсь за тупой вопрос, а как сделать анимацию 2д обьектов каких-нибудь, типо флажок развевается на ветру, или шкаф открывается если по нему кликнуть.
Нужно делать аниматор для каждого типа обьектов (постоянно анимированные и анимированные по клику), или для каждого конкретного обьекта? или вообще как-то по другому? Чет туторы про анимацию все касаются именно врагов или героя
>>761187 Да, если ты запускаешь ААА проект 2021 года. Сидеть на hdd в 2021 и жаловаться на медленную загрузку это тоже самое что сидеть с элт монитором 640х480 и говорить что картинка плохая
>>761238 Ок, а теперь неудобный вопрос - почему 2019 у него запускалась нормально? Или теперь Юнити не рекомендует использовать хдд? Почему это не указано в фичах 2020+?
>>761256 А чем неудобный то? Прогресс идет, если 2019 шла на хдд нормально это не значит что теперь все следующие версии должны оставаться на старых технологиях. >Почему это не указано в фичах 2020+? Не указано что? Что на ссд она работает быстрее чем на хдд? Может там еще и наличие мышки с клавиатурой надо указывать?
>>761269 Пожалуйста подробнее что это за новые технологии о которых идет речь, из-за которых юнити стала идти так медленно что теперь необходимо наличие ссд для комфортной работы. >Не указано что? Что на ссд она работает быстрее чем на хдд? Что она работает медленнее чем 2019, ссд или хдд не имеет значения, т.к. не имеет никакого отношения к юнити.
>>761286 Ты совсем ебанат или что? Абсолютно любая программа работает, блядь, быстрее на ссд чем на хдд. Что там нового они ввели что стала медленнее на ххд тебя ебет что ли?
>>761286 Ты не поверишь, но Unity 3.5.5 на твоем калькуляторе еще быстрее чем 2019 будет работать. Вполне очевидно что чем дальше развивается движок, тем больше ресурсов в том числе и скорости ххд он требует
>>761302 >но Unity 3.5.5 >>761238 > сидеть с элт монитором 640х480 К чему эти дебильные преувеличения, додя? С 2019 ничего не добавили, хули тормознее стало в три раза?
>>761304 >С 2019 ничего не добавили, хули тормознее стало в три раза? Добавили дохуя всего, должно ли это привести к тому что юнити стала хуже работать на калькуляторах? Я не знаю. У меня 2019, 2020 и 2021 одинаково работают
>Разработчикам игр на Unity для закрытых платформ теперь нужна подписка Pro — её стоимость в год составит 1800 долларов >В основном это должно коснутся разработчиков на Xbox, поскольку Microsoft, в отличие от Sony и Nintendo, не выдаёт специальные ключи с лицензией.
>>761294 >Абсолютно любая программа работает, блядь, быстрее Давление смеряй ебанат. Я как раз про это и говорил. >>761304 Опять съезд на калькуляторы. >Я не знаю. Никто не должен ничего знать. Есть по факту тормоза. Твои сравнения глупы, т.к. между 2019 и 2021 всего два года. А не 15 лет как ты пытаешься всем внушить.
>>761316 >Никто не должен ничего знать. Есть по факту тормоза. У меня нет тормозов. Между 1990 и 1991 вообще всего один год лол. Я не пойму хули ты хочешь? На ссд юнька работает нормально, почему новая версия медленнее работает на некому ненужных хдд я не знаю, думаю разрабам тоже похуй на людей с хдд. кто вообще будет ориентироваться на них?
>>761324 >У меня нет тормозов. Пока >Я не пойму хули ты хочешь? Ничего, я откатился назад >похуй на людей с хдд >кто вообще будет ориентироваться на них? Ясно
Кто в блендере шарит? Есть три объекта: родитель - сын - внук. Так вот, при экспорте в unity внук почему-то хрен оказывается в рандомном месте, и с уменьшенным scale
>>761368 ps Снял в блендере галочку Apply Transform, стало норм. Хз, с давних пор ставил эту галку автоматом, какую то проблему она мне раньше решила, ща видимо уже не актуально
>>761391 >но доебываться в 2021 году из-за того что она тормозит на хдд, это пиздец маразм Нет, это абсолютно нормально, просто ты повыёбываться решил. Не для этого треда тема, но есть движки, которые за десять секунд открываются. Есть 3д макс который пол часа открывается, а есть блендер за три секунды. В чём маразм, то?
>>761238 Проиграл, из-за говноделов с такой философией у юнити дурная слава. Он же и саму игру так делает, "Чот там протормозило, но хуй знает почему, и так сойдет в принципе, разбираться не буду".
>>761421 Маразм сидеть на ххд и говорить что он медленный, и как бы предыдущий анон не кукарекал, тут сравнение с элт мониторами самое то. Хдд устаревшая технология, которая используется только в случае где нужны большие обьемы
>>761429 >у юнити дурная слава Поэтому на юнити сделаны больше 50% мобилок? У юнити дурная слава была из-за долбаебов, которые клепали говно из бесплатных ассетов. Это цена бесплатности и легковкатываемости движка
Шел 2021 год, уже даже ММО-параши типа вова пишут в системных требованиях использовать SSD, но дегенераты продолжали кукакерать про необходимость поддержки HDD. Какие же вы долбоебы
>>761435 И полно приложений, которые запускаются НЕ мгновенно на хдд и что? Я до сих пор могу некоторые данные на дискете хранить, это не значит что так надо делать в 2021
>>761431 Маразм про хдд vs ссд в этом треде начал кукарекать ты. Никто с тобой кто-то спорил что хдд медленее чем ссд, незачем подменять предмет спора, люди все равно видят что ты пиздишь. Речь шла про юнити 2021 стала медленнее чем 2019. И это по факт, не веришь погугли. >сравнение с элт мониторами самое то Еще раз тормоз - ты сравниваешь изменения технологий через 15 лет и 2 года.
>>761438 >это не значит что так надо делать в 2021 Не нужно работать над ускорением запуска движка? Что ты несёшь. >>761441 >На ссд нет разницы Их похуизм (30млрдная компания) заставляет тебя лишний раз платить. Зачем им тратиться, если быдло потратится, и ещё причмокивать будет
>>761436 Какой удобный съезд на >нищий, купи ссд, а потом еще "хуйня нейм", а потом еще ... так ведь? Можно даже не спорить. Предлагаю тебе перейти на уе4/5 c такой философией, раздутый от говна движок как раз для таких.
>>761442 >Не нужно работать над ускорением запуска движка? Что ты несёшь. Не нужно запускать юнити на ххд
>Их похуизм (30млрдная компания) заставляет тебя лишний раз платить. Платить за что? За ссд? Ты либо даун либо хуй знает кто, чтобы не иметь ссд в 2021 году. Они массово стали наводнять рынок еще в 2008 году
>>761444 >нищий, купи ссд, а потом еще "хуйня нейм" Компутерюниверс: Самый дешевый HDD на терабайт - 2 398,07 ₽ Самый дешевый SSD на терабайт - 5 766,80 ₽ Разница - 3 368 рублей Разница в скорости - SDD быстрее в 6,5 раз
Итого переплачивая х1,7 рублей ты получаешь х6,5 скорости. Вот тут уж и правду говорят - скупой тупой платит дважды.
>>761449 Вместо того чтобы по постам сообразить для себя что юнити стала в очередной раз медленее из-за какого-то внутреннего архитектурного изменения (сам ты не смог из-за ссд), ты набросился на других, считаешь чужие деньги, непонятно зачем. Все таки смерь давление на всякий.
>>761450 >>761445 Да заткнись ты, школота, тебе сказали, что есть проги которые быстро запускаются, и это вполне естественно сравнивать тормозящее юнити с ними, только обиженный школьник защитничек может это маразмом называть
>>761452 >>761453 Ок, долбаебы, сидите на 2019 версии хули вы тут разнылись тогда? Я лишь сказал что на ссд все работает нормально, а у вас тут пуканы взорвались.
(Автор этого поста был забанен. Помянем.)
>>761433 >Поэтому на юнити сделаны больше 50% мобилок? Я не понимаю твой аргумент. Как это относится к тому, что юнити у пользователя ассоциируется с кривостью из-за таких >>761238 кадров, которые все делают напохуй?
>>761453 Во-первых, я не тот анон, что тебе до этого отвечал, во-вторых, если тебе мать денег не дает на ССД - не нужно об этом ныть на дваче. Если считаешь, что UE лучше - можешь идти клепать свои кубики в нем, тебя никто не держит, ты только сидишь и позоришься тут как клоун
>>761455 Самая рофляна в том, что скорее всего дело и не в ssd вовсе. У них как какие-то факторы совпали для этого бага, а у тебя нет. Если бы и у тебя совпали, то твое время так же увеличилось бы относительно старой версии (хоть и было бы меньше в абсолютных значениях, чем на ssd).
>>761459 Я считаю, что юнити всё больше тормозит с каждой новой версией, это плохо, но ты же молишься на юнити. Как твоя школьная попка подгорела, ворвался защищать
>>761464 Тебе прямо сказали, что чтобы оптимально работать в юнити - нужно купить нормальное железо, а всё что ты сейчас делаешь - это сидишь и каждого попавшегося школьником называешь. Когда завтра будешь другу на уроке математики хвастаться - тред ему заодно покажи, чтобы он знал какой ты долбоеб.
А завтра ты к нам придешь кричать, что у тебя билд долго делается, когда ты IL2CPP выбираешь?
>>761461 Вот вот, мы про ссд и не говорили здесь, это он всех начал обвинять что не сидим на ссд, упрекать в нищенстве и тд. Я еще в начале спора говорил что это антивирусник юнити тормозит скорее всего.
>>761445 >Они массово стали наводнять рынок еще в 2008 году Поймал зумера тупого. Они тогда были редкостью и стоили дораха. Тебе мама не купила бы такое.
>>761474 Лол, ты ведь не жил тогда еще да? В 2008 вышел первый 128 гб ссдшник. Ясень хуй в россии его было не достать, но с того года ссд начали заполонять рынок и увеличиваться в обьемах пиздец как быстро. Я не говорил что можно было купить в твоем мухосранске ссд в 2008
https://www.pcgamer.com/gta-online-load-time-fix-released-shaves-off-actual-minutes-of-waiting-for-some/ >an enterprising modder called t0st uploaded something pretty shocking to Github: a fix that, they claimed, took care of two bugs in Grand Theft Auto Online's loading sequence and slashed the game's infamously long load times by up to 70 percent. А потом еще рокстары влили этот фикс к себе. Вот дурные-то, а могли бы все косяки тупо железом игроков закидывать! В 2021 живем.
>>761482 Еще раз, для особо тупых, я не говорил что в 2008 можно было купить ссд на любом углу. Я сказал что начиная с 2008 года они начали массово наводнять рынок. И уж спустя 13 лет, в 2021, ты бы мог себе его прикупить
>>761500 Мимокрок репортин ин: не ебу что там в старых юнити, но актуальная таки долго грузится на хдд и компилять могла бы побыстрее, хотя казалось бы пятая рязань должна тащить.
на ссд у меня стоят вещи поважнее, эта ваша юнити уж больно дохуя места хочет
>>761049 Проблема не в дисках. Проблема в том что она виснет к хуям на простых операциях, выдавая это окошко. В прошлый раз я ждал полчаса, пока не вырубил по процессам. На прошлых версиях такого не было.
Думаю, пытаться ли делать в 2д изометрии (ака диабло) смену спрайтов (оружия например), при том что я только начал изучать юнити и скрипты, в рисовании и то больше опыта
Как я понял это делается так что в скелетной анимации персонажа, один спрайт скриптом заменяется на другой? (Тоесть нужна скелетная анимация получается)
Или типо создать прям игровой объект допустим меча, прикрепить его к персонажу и нарисовать, анимировать его движения так чтобы казалось что он двигается в руке. Но тут наверное сложно будет свести все так, чтобы не выглядело что он в воздухе рядом с рукой летает, а не синхронно.
В 3д конечно это попроще все выглядит. Поэтому думаю мб вообще отказаться от такого и сделать более примитивно, с одним скином на персонажа. Насколько это сложно?
>>761529 Изи, делай скелетную анимацию, кость с мечом цепляешь к руке и вуаля меч двигается за рукой сам и без проблем. Там же смену спрайтов делаешь. А делов то посмотреть пару видосов на ютубе по скелетной анимации. Единственное что в юнити так и не завезли меш деформацию, но тебе она нахуй и не нужна
Как хранить информацию предмета? Типа иконку там, сколько урона наносит, описание, классека. В интернетах пишут что стоит посмотреть на scriptable object, я подумал это юнитевский формат чисто для хранения информации, а там Awake() OnDisable() методы вызываются на кой то хуй, не понял нахуя? Объясните нуфане
>>761313 >>761066 Ебать параша ебаная. Как так-то? Уже все гайды пересмотрел по этой хуйне, документацию прочитал. А проблема оказывается, что в версии 2020 года плашки: 2D Renderer тупо нет. Вот нет ее и не появится она, хоть че ты качай и подключай. А в версии 2019 она есть. И гайды все записаны с версии 2019. Нахуй так жить.
Мне для проекта нужно использовать Angular в качестве фронта, там юзается TypeScript. Стоит ли мне вначале изучить JavaScript, а затем TypeScript или на JavaScript можно забить?
Парни как обычно подчищают пули? Я например использую дробилку которая просто собирает пули на одной из сторон экрана и уничтожает, вот думаю приязать пули к таймеру штобы например через 5 сек она сама уничтожалась, а не летела в бесконечность. Как думаете куча таймеров сильно перегрузят движок?
>>761809 >собирает пули на одной из сторон экрана и уничтожает Не делай так, это пиздец наркомания, которая уничтожит производительность, особенно на мобилках. Пули реализуют через пул обьектов: >>757989 А собирать их в пул можно когда они из поля видимости пропадают например
>>761838 По-разному, json или xml файлы с локализациями. Если не хочешь заморачиваться, то можно заюзать готовые решения - Lean localization например
>>761919 Да там изучать нечего, по ссылке йоба-пул под любые задачи, который все делает автоматически. Для понимания самый простой пул делается так: 1) заранее создаешь допустим 20 неактивных обьектов-пуль 2) когда игрок нажимает выстрел, активируешь первый обьект и телепортируешь к месту откуда она должна вылететь 3) когда пуля улетает из поля видимости игрока, либо попадает во что-то - деактивируешь обьект И так повторяешь, в итоге процессор обрабатывает только 20 обьектов, вместо бесконечного создания\уничтожения бесконечного числа обьектов
не могу понять, добавил герою компонент коллайдер 2д, и камешку тоже компонент коллайдер 2д, но герой проходит сквозь камушек и не упирается в него. Риджет бади на герое есть. В чем может быть причина? Алсо, сделал как-то скрипт, там в появившееся поле нужно вставить коллайдер, и в списке вообще нет коллайдеров, хотя я к обьектам на сцене добавляю бокс коллайдер 2д
Можно ли как-то задать динамическую стартовую точку для анимации?
У меня есть анимация, в которой объект перемещается направо, а потом возвращается обратно. Чтобы всё работало плавно мне нужно обязательно указать стартовую точку анимации, точку в которую объект перейдёт и точку возвращения. (Первая гифка)
Но будет выглядеть это плавно только если мой объект изначально находился в стартовой точке анимации. А если объект изначально находился в другой точке, то он моментально окажется в стартовой точке анимации. (Вторая гифка)
Можно ли как-то задать динамическую стартовую точку, чтобы анимация начиналась из текущего положения объекта, а не заранее-указанного?
(Наверное этого можно достичь через DOTween, но можно ли сделать как-то по-другому?)
>>762096 я даже хз че показывать на них. На первом скрине инспектор героя, а но втором инспектор камня. Рамочки коллайдера у обоих есть. Герой проходит сквозь камень как ни в чем нибывало. В поле Collizion Detection менял что-то, но ничего не дало.
>>762215 да я хотел еще попробовать триггер какой-то сделать, но оказалось не до триггеров, когда и простой коллайдер не работает. Триггеры убирал, все равно ничего не работает.
Допустим, в ответ на сетевой запрос мне присылают string переменную типа "artem_2010 (284681246)", тут типа имя и в скобках номер. Как мне достать отдельно имя и отдельно номер(без скобок), которые могут быть любыми? У меня есть вариант костыля, но я просто хочу понять логику таких, блять, сообщений. Почему просто не прислать 2 переменные? Как я должен в принципе их обрабатывать?
>>762280 Как-нибудь так: string message = "artem_2010 (284681246)"; string[] messageParts = message.Split(' '); string name = messageParts[0]; int num = int.Parse(messageParts[1].Trim('(', ')')); >Почему просто не прислать 2 переменные? Хз, по-хорошему так и надо делать.
>>762446 По-хорошему нужно померять, насколько регекс для конкретного кейса будет затратным. Возможно лучше это юзать >>762411. Если это единоразовый парсинг, то похуй, конечно.
Посоны, нихуя не понимаю с размерами в 2d. Запилил себе тайл сет 128х128 пиклесей, вставил юнити, поставил Pixel per unit - 128, размер у tilemap - x1 y1, и вроде все норм, все клетка в клетку. Теперь хочу чтобы герой был в два раза больше. Запилил пнг 256х256 вставил в юнити, поставил pixel per unity 256, но спрайт героя раз в 5 больше чем блок тайла, почему?
>>762965 Тогда еще спрошу, может осенит. Какие размеры спрайтов героя, и тайлов делать для 2д мобилко-платформера? Так чтобы не заруинить производительность, но при этом и графоний норм был? Не пиксельарт
Вот это ПРЕКОЛ. Как обычно запускаю свой проект, пытаюсь стартануть сцену и после нажатия кнопки Play - Юнити моментально зависает. Даже на пустой сцене. Что это может быть? Юнити 2020.3
Сука, запилил суперсистему - ездящие кубики, чтоб не сталкиваться пускают лучи, чекаю хитпойнты, дистанции, всё идеально. Но вместо лучей в итоге нужно запилить бокскасты. Там три секунды заменить, но нужно брать не точку хита бокса с кубом, а дистанцию и там ещё с ньюансами запутано. Делаю, хуяк не доезжает ебучка. Там по клеткам, если чуть не точно, то на предыдущей останавливается. Пол дня дрочился не мог понять, что за хуйня. Оказывается, что рейкаст идеально показывает, а у бокскаста дистанция там где должна быть 1.5 показывает 1,4975. Я чуть монитор не разбил, пока искал, почему не доезжает, полный пиздец.
>>762969 Вроде для телефона стандарт брать размер экрана 1080p (на экаранах большего разрешения 1080 будет нормально смотрется). Дальше смотришь какую площадь экрана будет занимать спрайт и считаешь.
Привет, посоны, что делать, если 6 месяцев пилил игру, но потом понял, что она очень скучная? Не хочется на завод идти снова, из сбережений осталось только 800к. Стоит ли выпускать ее и слить эти деньги на рекламу? Или начать делать другой проект, в котором буду уверен?
>>763080 Параша, закрывай сервера, начинай пилить новую. 100% не взлетит. на что надеются эти долбоебы после Evolve? Это же насколько опущенцем надо быть чтобы покупать что-то у этих разрабов
Как можно уменьшить нагрузку на ОЗУ в Android игре? В идеале нужно чтобы тянули телефоны с 512 оперативы, не могу нагуглить ничего конекретного по этому вопросу
>>763041 чел, ты просто перегорел. Как показывает опыт - любое говно найдет ценителя, а раз уж ты пол года ебался, то что-то играбельное да вышло. Я бы на твоем месте всадил бы 100к в рекламу и посмотрел бы как пойдет. Только нормально рынок исследуй и реши кто твое ЦА, что бы узенько таргетировать. Ну и группу в вк веди, зумерки любят такое, бонусов там насыпай за активность и рефералов, это говно к любой игре прикрутить можно.
>>763161 поясню про 100к - это ок бюджет, что бы минимально проверить заходит ли людям вообще продукт. Много тестов не сделаешь, конечно, но хотя бы выяснишь на кого лучше таргетировать. А то вдруг ты клон героев сделал, такое только дедам рекламировать можно. А дальше уже по обстоятельствам доливаешь остальное, или дропаешь нахуй, если совсем не идет. Профита с 100к не жди, даже на 1 бакс не надейся, будь готов что сливаешь в полный минус.
>>763174 Русня рекламу смотрит и еще просит. А донаты не каждый муриканец купит, хотя и шансов больше.
Кстати поясните за сторы. Планирую свою поделку выкладывать только в плеймаркет, потому что: - андроидобичи жрут говно, им привычно - всего 25 баксов стоит акк - нормальный поиск по стору, хоть какой-то шанс что игру случайно поставят и без рекламы
тогда как в эплсторе: - жрут так же, но все же говна там поменьше - 100 баксов акк - поиск говно мочи, рандомные игры тупо теряются, даже если ищешь по точному названию
>>752458 (OP) Сап аноны, пытаюсь реализовать в игре 2а вида управления по нажатию одной кнопки автопилот и прямое управление, но столкнулся с тем что один метод управления накладывается на другой метод, в юнити есть возможность отменять методы?
>>763313 Наверное надо сделать проверку, что в любой момент времени мог быть включен только один метод управления. Если я конечно правильно понял проблему.
>>763315 Да там больше ничего нет. 2 метода и два разных управления Сделал по умолчанию автопилот, флаг выбора отрабатывает, по отдельности методы работают, но когда собираю их в одно условие они накладываются друг на друга. Вот я и спрашиваю как можно останавливать метод и заново запускать
>>763320 Ну и комментарии у тебя. Они, как ты выразился, "накладываются" друг на друга, потому что ты сам Autopilot выставляешь в противоположное значение при каждом проходе.
if !Autopilot { Autopilot = true // было фолс, ты сеттишь в тру } else { Autopilot = false // было тру, ты сеттишь в фолс }
>>763320 Перед этой хуйней поставь проверку на автопилот, потому что она у тебя каждый кадр вызывается только если таб не нажат, и метод AutopilotSpaceship рядом в else поставь, а внутри проверки на Tab просто напиши "Autopilot = !Autopilot;". Я думаю ты это хотел сделать
>>763325 >>763327 Хз как у вас в юнити это работает, но подозреваю, что переключение Autopilot будет срабатывать дохуя раз (по количеству прошедших кдаров), пока юзер отожмет таб. Нужно лочить эту логику, пока он таб не отожмет.
>>763322 >>763323 >>763325 >>763327 Спасибо сам разобрался, я просто разнёс в два условия включение и выключения режимов управления по нажатию таб и условие запуска того или иного управления в зависимости от установленного режима, это странно что когда пытался делать всё в одном условии то игрок просто не двигался.
>>763373 Была такая хуйня, это значит что проц ждет пока GPU справится со своей задачей, то есть видяха перегружена и не вытягивает. Вылечил оптимизацией кучи херни. Шрифты перебрал, убрал динамические шрифты, сделал нормальные пулы для обьектов (в том числе и для всплывающих циферок), и вот это еще >>754028
>>763375 Плюс еще можно разбить динамические канвасы на отдельные канвасы, так как если один обьект изменяется, то юнити полностью перерисовывает весь канвас
>>763375 Я выбрал unlit шейдер, поставил минимальные настройки в ProjectSettings и уменьшил разрешение. Стало идти значительно лучше, но всё равно есть небольшая задержка. Откуда такая прожорливость? Да, у меня старая видеокарта. Но она тащила 3D игры, сделанные на Юнити, а тут не может справиться с двумя кубами на сцене.
>>763393 Ну видюха пиздец конечно, она 12 лет назад вышла. Проблема в ui вполне может быть еще, у меня игра состояла полностью из интерфейса и лагала пиздец пока я не оптимизировал все. Правда на телефоне было дело
Замоделил персонажа, сейчас буду анимировать. Мне нужно в итоге получить такой результат, чтобы я мог управлять им. Стандартные движения. Бег, прыжок, а главное - удар во время бега. Если я экспортирую 2 fbx с бегом и ударом отдельно - я смогу смешать их потом в юнити? И нормально-ли будет при экспорте каждой анимации в отдельном .fbx?
Я понимаю, что это скорее всего мечты но можно ли на Юнити без кода слепить игру? Простенькую, ну или скажем при помощи мануалов с ютуба где дядька рассказывает что тебе писать чтобы оно работало
>>763435 >>763436 На многие жанры уже есть готовые "шаблоны", есть для платформеров, шутеров, даже был дарксоулс-подобный шаблон, но сам должен понимать, что если захочешь что-то там поменять в плане механик, то придется кодить. Кстати в Юнити, как и Анриале, есть возможность визуального скриптинга - Playmaker, я бы не рекомендовал, как то мне проще потратить месяц-два на изучение С# и нормально кодить, чем по сути сталкиваться с теми же проблемами в визуальном скриптинге, но без возможности создания масштабных систем
>>763439 Это не умение рисовать и моделить. Насчёт рисовать не знаю, но моделить лично мне дался явно проще, чем кодинг. В принципе сейчас я могу делать в блендере всякие ба штуки, но это очень времена затратно и не окупается, и потратил на вкат не более года, когда с С# всё куда сложнее.
>>763650 Спасибо.Еще всплыла проблема, не понимаю как работать со скелетами.
Понимаю как работает простая анимация. Есть обьект, и прикрепленный к нему аниматор проигрывает анимации которые берут спрайты из префаба.
А скелеты анимируют скелет скелет который уже на сцене, и я не могу запихать в аниматор анимацию которая привязана к другому скелету. А мне нужно, так как у меня один скелет изображает передвижение по одной оси, а другой по другой. И все через одни спрайты сделать не получится.
Есть меню кнопок, которые скролятся сверху вниз. Как сделать, чтобы скролл прекращался, как только я дошел до конца списка? А то их можно сколько угодно скроллить вверх и вниз, они тупо в бесконечность улетают.
Че-то я плохо понял условия плана плюс. Если я сделал игру на бесплатной версии и перед релизом купил версию плюс за 40 баксов, чтобы сплеш экран был кастомный. Я могу за следующий месяц не оплачивать? И потом еще через пару месяцев заплатить 40 баксов, если мне нужно будет что-то пофиксить или добавить? Где тут подводные камни? После перехода на плюс я не смогу через месяц вернуться на бесплатный план?
>>763843 ооо добро пожаловать в славный мир Юнитити, сам неделю назад пытался перекатиться с 18й на 20ю версию и внезапоно тоже самое. Мне советовали в ручную очистить папки библиотек, но они не удаляются.
>>763699 если скелеты одинаковые, то можешь из одного скелета перетащить Avatar в другой и тогда анимации будут работать >>763796 Протестируй с реалтаймом, если у тебя объектов мало, мало полигонов и отрисовок, то вполне вероятно что все будет ок >>763809 Movement Type поставь на Clamped
>>763933 Эта хуйня вылезла, когда я юнити хаб обновил до третьей версии, и оно перестало создавать проекты.. но вчера в юнити хабе при создании проекта нажал кнопку update (выше над вводом имени) и вроде заработало и проект стало создавать без ошибок... (но на прошлой неделе это не помогало)
>>763990 Потому что не нужно использовать всякое говно. Есть годный бесплатный ассет, который используют все нормальные поцоны в своих играх - EasyFileSave.
>>752458 (OP) Хочу попробовать сделать свою простенькую в 2д "игру-менеджер", к примеру генерируются 5 рандомных персонажей из них ты выбираешь 3 и дальше за игровой ход ты можешь выдать им задания. У каждого персонажа есть свои характеристики- к примеру ХП, сила, ловкость и интелект. Например задание А прибавит выполняющему персонажу +1 силы, а задание Б даст -1 ХП выполняющего и +1 ловкости другому персонажу. Т.к. я валенок в кодинге и представляю как это работает только примерно я попробовал потыкаться в Adventure Creator который обещает создание игр без этих знаний, но я быстро понял что он заточен под всякие платформеры, квесты и прочие игры где ты управляешь одним своим персонажем и немногочисленные туториалы описывают именно такие игры, а вот создание и управление пулом персонажей со своими характеристиками я не нашёл. Подскажите куда воевать. Может кто то даже в конкретный туториал пальцем ткнёт или обожемой есть где то готовый кусок кода чтобы попытаться его понять и под себя переделать как то. Может мне вообще не юнити нужен, но на него вроде как полно готовых ассетов всяких что для такого неумехи как я очень удобно.
>>752458 (OP) Вкатывальщик на книгах опять выходит на связь Купил Unity в действии | Хокинг Джозеф второе издание 2021года. У меня просто слов нет насколько это крутая книга, единственно она не для вкатывальщиков, там много разборов по скрипту и новички вряд ли поймут без знания шарпа, а так читается на одном дыхании, теперь в отличие от первого издания мы делаем 3д шутер и 2д платформер, разбираем работу по сети и изучаем всякие неочевидные плюшки движка. Кароче книга - огонь, но новичкам её я бы не советовал. Кстати автор поясняет за обложку, никогда бы не догадался что это за хер с бугра.
>>764199 Изучить С# под твои запросы займет пару вечеров. Если не можешь, то я вижу два пути, первый - ковыряться в юнитевском визуал скриптинге, который как по мне отнимет еще больше времени. Второй - вместо юнити взять гамакер
Посоны, если я остановлю время с помощью Time.timeScale = 0f, то как его можно запустить вновь через N секунд кроме как корутины через WaitForSecondsRealtime? Не хочу корутину юзать, можно как-нибудь без нее обойтись тут?
Подскажите, как лучше концептуально сделать. У меня 2д проект, но там нужно как-то впихнуть вращение монетки, на которой изображение соответственно с 2х сторон, орел и решка условно. Как сделать это в рамках 2д? Или как-то 3д объект втискивать? Вроде как юнька позволяет так
Решил пощупать юнити, ранее с движками не имел дела. Вот я поставил имитацию домов: там куда свет направлен - норм, но если объекту светит в спину то "морда" черная. Изменение интенсивности ничего не дает. Я так понимаю что освещение работает втупую и рассеянного света нет? Контрить только ставя второй источник света?
>>764326 А в чем проблема то конкретно? Делаешь анимацию вращающийся монетки, потом стопаешь ее когда надо. Либо делаешь две анимации - одна где монетка остановилась на орле, вторая - когда на решке и показываешь пользователю когда надо
The character with Unicode value \u0415 was not found in the [LiberationSans SDF] font asset or any potential fallbacks. It was replaced by Unicode character \u25A1 in text object [descript]. UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
Кто-нибудь знает что с этим делать? Текс меш про не распознает некоторые заглавные символы, какого хуя.
>>764442 Ебаный рот этого текс меш про, какого хуя там нет этого символа, это дефолтные шрифты из ассетов, я ничего своего не добавлял, там половины заглавных букв нет.
>>764338 Сделал так, один image и спрайты (орла и решки) на нем меняются через аниматор, когда scale.x == 0. Но сука анимация не останавливается на конкретной стороне, она каждый раз возвращается к исходному положению. То есть если вначале стояла решка, вернется к решке, если стоял none, то вернется к нему.
Не могу разобраться как создать событие клика на префабе в виде спрайта. Когда накидываешь скрипт(в котором описан метод при нажатии) на объект сцены, добавить этот объект в триггер евент или компонент буттон префаба, юнити не позволяет. Накинул скрипт на сам префаб и закинул его в компоненты, уже добавилось но не выполняется метод. Что я не так делаю? Проект десктопный.
>>764819 А в чем проблема сделать в аниматоре переменную отслеживает какой стороной монета повернута? Можно пойти еще дальше и привязать скорость анимации или кривыми сделать к переменной и менять ее. Типа в начале монетка быстро крутится, а потом замедляется
Пацантрэксы, подскажите, есть direction и склон, нужно как бы спроецировать направление на склон
Vector3.ProjectOnPlane(direction, hit.normal); Это даёт почти то что нужно, но как-то неправильно. Есть еще варианты через два кросса и (direction - Vector3.Dot(direction, hit.normal) * hit.normal).normalized У всех трёх одинаковые результаты
>>764819 Сходи скачай учебник юнити в действии 2е издание и посмотри как он сделал карточную игру я не парь людям мозги. Все велосипеды уже давно изобретены.
Подписка к ивентам противников, количества которых я не знаю
Аноним20/08/21 Птн 22:12:22№764963732
Здравствуйте, я нубик, хотел узнать насчёт подписки к ивентам объектов из префабов.
На сцене расположены противники (из одного префаба) и игрок. В противнике коллайдер-триггер. Когда игрок сталкивается с коллайдер-триггером противника - игрок должен отталкиваться от противника, поэтому необходима информация о текущем положении противника (коллайдер). Существует ивент PlayerHitted, вызывающийся в классе противника в методе OnTriggerEnter, который принимает коллайдер противника, на этот ивент подписан игрок для того чтобы отталкиваться.
Так вот, вопрос. На этот ивент я подписываюсь в классе игрока, но количество противников мне неизвестно, они спавнятся из префаба. Есть какой-то способ подписаться сразу на всех противников КРОМЕ способа подписки через цикл?
Можно ли использовать в Юнити сторонние библиотеки? Пишут, что нужно dll файлы закинуть в папку с ассетами и все заработает. На практике же, компилятор идет в отказ. То битность библиотек ему не нравится, а когда меняешь битность, то еще что-то не так. Короче, че делать? Какая практика по добавлению сторонних библиотек существует? И в целом, как на этот вопрос смотрят опытные юнити разрабы?
>>765205 >Подключаешь нужные библы в скрипте, нет проблем. В скрипте прописываю юзинг этой библиотеки. Использую в скрипте функционал из этой библиотеки. Проблема в том, что юнити выдает ошибку, что библиотека должна быть для 64-битной системы. Я выбираю эту библиотеку, лезу в инспектор, ставлю галочку напротив 64 бит, применяю и ничено не меняется.
>>765114 На заборе тоже хуй написано. Это Enlighten - хитрый лайтмапер, в котором ты сначала запекаешь, а потом можешь менять свет геометрию - не можешь.
>>765454 Скорее всего так и есть. Но в консольной программке, которая создавалась с дефолтными настройками на 64- битной системе, она работает без ошибок. А в Юнити не хочет, даже когда нажимаешь перекомпиляцию на 64 бита.
Искал как сделать неоновое свечение. Есть вот эти гайды, а другие или отсутствуют или по сути повторяют эти же https://www.youtube.com/watch?v=LGhkKdud-DQ https://www.youtube.com/watch?v=RTOZlVybcw4 но проблема в том, что тут используется bloom который распостраняется на всю сцену, а не на один объект. Можно как-то сделать свечение просто одного объекта? Я же не делаю игру на пс3, мне мыло не нужно.
Суп девач, такая фигня, пришлось срочно переустанавливать виндовс(к счастью проекты сохранил), ну и заново нактил юниит и прочую хрень Фишка в том, что слетело разрешение при запуске из юнити для теста(и в самой игре), но хрен с ним поменяю. А вот то что микрософт студио не просто часть кода перестала дописывать поскольку не знает таких слов как Debug, Input, и какое то еще, но то что меняет на те что знает к примеру input на переменную moveInput очень бесит и откровенно мешает. Какие с этим быть и что делать? Обновления вроде все скачал
У меня террейн из плейна в пробилдере супербольшой и на нем запеченное освещение вообще не заметно. Что-то покрутить можно в настройках освещения чтоб оно детализировано на него пеклось? Ну типа много текстур на один меш или сильно хайрезную.
>>765568 Может на будущее еще комунибудь понадобится Помогло вот это >Try this, >In Unity Editor Go to Menu, Click on Edit -> Preferences -> External Tools -> External Script Editor. Set it to Visual Studio (your installed version of VS). >Now in Menubar go to Edit -> Project Settings -> Player Settings -> Other Settings -> Under Configuration -> Check API Compatibility Level -> Change it to your installed .Net version. In my case I set it to .Net 4.x >Now if Visual Studio is running already go to Visual Studio, it will ask to reload project. Reload the project. Check if it works, if not close Visual Studio. Now Open cs file from Unity Editor, and now it should work. >>765570 Да это он сам инсталил вместе с юнити, там фишка в точ что все скрипты(даже если новый создавать) перестали считаться частью юнити. Пытался реимпортить ассеты что должно вообще все фиксить, но не судьба, только этот способ помог
Задам наиглупейший вопрос. Насколько плохо использовать глобальные переменные (статик паблик). Я понимаю, что так не надо делать, но это просто невероятно удобно. Насколько это мне аукнется дальше, если я это использую в проектах, которые делаю один? Просто для меня это очень удобно, даже просто чтобы какие-то объекты через Find в каждом скрипте не искать.
>>765791 Если проект большой ты быстро потеряешься в кучи статик переменных. Плюс когда надо будет добавить какую-нибудь фичу или починить баг, ты заебешься искать где и когда перменная меняется
>>765819 Ну а если у меня много похожий объектов на сцене, с которыми нужно взаимодействовать с нескольких скриптов. Неужели правильнее будет в каждом скрипте, снова и снова, через FInd всё находить?
Я правильно понимаю что в Input system невозможно в cancelled-коллбэке у composite 2d vector (да и у других составных судя по всему) получить значение (vector2 в данном случае)?
Т.е. мы нажимаем на стрелку вниз, получаем (0, 1) на performed и started. Но когда перестаем в cancelled приходит (0, 0), как и в любом другом случае. ЧЗХ ?
Анон, я только-только вышел из "туториал хелла" и начал делать свой проект мечты, но встал вопрос двигаюсь ли я в правильном направлении. Так вот, я накатал базовые системы для прототипа ходьба, система камер и там простое интерактирование с объектами и для передачи данных использовал только шарповские ивенты и через ссылки/синглтоны никаких лишних связей не делал, вообще стараюсь их избегать. Я все правильно делаю? Или же насаживание себя на иглу ивентов не приведет меня к чему-то хорошему?
У меня есть модель персонажа с ригом. Моделировал сам. Хочу запихать его в юнити и сделать контроллером от 3го лица. За сколько можно найти спеца для реализации моей хуйни?
Никто случайно не подскажет, использую TileMap, загрузил спрайты, визуально все выглядит нормально. Но когда я начинаю игру и персонаж прыгает (соответственно и камера двигается) у меня между тайлами белые линии возникают на доли секунды. Выглядят как артефакты графические. Кто-то с таким сталкивался или мб посоветует как проверить или починить?
>>766041 В каком-то видосе видел что чел чинил эту хуйню засовывая спрайт в атлас, хуй знает почему это должно помочь. Если починишь, напиши плз, скоро тоже этой хуйней надо будет заниматься
>>766017 Твой метод вернет bool. А мне нужно считать Vector2.
Повторюсь. Проблема в том, что на пике в 1 случае у нас ctx.ReadValue<Vector2>() вернет вектор куда мы нажали, а во втором не вернет вектор отжатой кнопки.
Появилась идея создать генератор объектов(людей и оружия) для игры, у каждого объекта дохуя своих статов с рандомными значениями. Лучше прописать задавание статов в awake скрипта этого объекта, или посидеть побольше и разобраться как работает конструктор в инити и делать это в скрипте который иницизирует создание объектов.
>>766048 Ты правильно сказал. Нашел как раз тот видос. Просто создаешь атлас с дефолтными настройками и закидываешь спрайты туда, эффект пропадает. Спасибо большое
Знаете что меня бесит в юнити - нахуя из всего делают швейцарский нож? Вот берешь ассет - а там дохерион всякого говна и не понятно что нужно, что не нужно. Или блядь миллионы фич которые нахуй никому не нужны и только засирают документацию
Вот я сейчас искал камеру от первого лица для шутера - чтобы там было элементарное - беганье, прыганье, приседание. Думал, найду какую-нибудь обертку над кхарактерконтроллером... Хуй там, какое-то говно обмазанное говном...
Нахуя в офф семпле от юнити эту синемамашину прибили гвоздями? Эти люди вообще хоть что-то знают о проектировании?
И ведь еще есть долбоебы (да и тут) которым похрен - похрен что в их клоне макмана юзается тяжелые ассеты с миллионами говна.
А потом удивляемся - чего это игры на юнити тормозят, и ведь даже не юнити виноват... А вот такие разрабы ассетов которые напихали всякого говна для галочки и пользователи ассетов которые это говно используют
Да вот примеры - есть такая игра project warlock - стилизованна под олдскул, первая часть норм бегала на слабых компах. Тут вышла демка второй части - пиздец оно тормозит и пердит, ну я глянул исходники - да таже самая хуйня с синемамашин с миллионами всякого говна которое никогда не будет использовано в игре, но оно вызывается из миллиардов Update
>>766096 Потому что ассет с кучей свитоперделок будет продаваться, а ассет с одной фичей нет? В чем проблема сделать все самому если не устраивают ассеты?
Кириллы, нужна помощь. Я тут разосрался с другом погромистом и теперь делаю все один (охуенное начало проекта, я знаю). Сам в С# разбираюсь на очень базовом уровне потому прошу подсказать. Куда он затолкал статы персонажа и где их можно поменять?
>>766101 >Я тут разосрался с другом погромистом и теперь делаю все один (охуенное начало проекта, я знаю). Зачем ты так сделал? >Куда он затолкал статы персонажа и где их можно поменять? Смотри, где сетСтат вызывается. Затем смотри откуда берутся значения, которые в сетСтат передаются. Так же смотри в инспекторе. Похоже я не понял твой вопрос
>зачем. Он пару лет назад решил отяниться а неделю назад, после 10 лет близкой(нет не этом смысле) дружбы сказал что я пидор потому что незаслуженно зарабатываю больше чем он ,хуемразь как и все мужики, он пару недель назад встретил настоящих подруг а я иду нахуй
>где вызывается
Вызывается в Move , но инициализируется кажется там где скинул
Аноны. Понимаю что нубский вопрос, но надеюсь кто-то да поможет. У меня 3 анимации: Idle, Walk, Jump. И 3 набора таких анимаций. То есть 3 анимации для обычного персонажа, 3 анимации для персонажа в определенной одежде, 3 анимации для персонажа в определенной обуви. Для них написано 3 одинаковых куска кода, которые ставят определенную переменную в аниматоре, в следствие чего переключается анимация. Проблема в том, что для обычных 3 анимаций всё проходит нормально, визуально видно как стрелочка в аниматоре загорается, и дальше полоска анимации проигрывается снова и снова. Но как только я меняю и включаю код для анимации с ботинками, то стрелочка начинает моргать и анимация на половине начинается заново. Т.е у меня каждую секунду снова передается значение и анимация начинается каждый раз сначала. В коде это все в Апдейте, но прописано одинаково, просто копипаст 3 раза с разным значением переменной для включения анимации. В аниматоре тоже все галочки стоят идентично.
>>766115 Не-не-не, не где свойства вызываются, а где вызывается сам метод setStat. >я пидор потому что незаслуженно зарабатываю больше чем он ,хуемразь как и все мужики, он пару недель назад встретил настоящих подруг а я иду нахуй Прогрессивный что ли какой-то.
>>766136 Ответ не отправился. Я прям только только заметил вкладку settings у каждого объекта в аниматоре. Но всё равно спасибо большое, в этом и была пробелма.
Какая-то фигня происходит. Сделал источник света, скопировал его пару раз. А последний не горит. Предпоследний горит вяло. При чем в "игре" последние два иногда рандомно появляются. В редакторе тоже можно их "поймать", но сложнее. Я хоть и нуб, но это прямо на ровном месте какая-то проблема.
Анон, поясни за прыжок. Для прыжка применяю к объекту AddForce, тот придаёт ему ускорение и всё бы хорошо, но прыжок очень медленный и я не могу его ускорить. Если придам больше силы подпрыгнет объект выше, а мне нужно быстрее. Помогите мудрецы.
Мб кто-то подскажет. Быстрый объект проходил сквозь коллайдеры, поэтому я поставил ему Collision Detection: Continuous. Одна теперь на других объектах не работает OnTriggerEnter2D. В гугле написано, что другим объектам надо дать RigidBody2d, сделать его Кинематиком и тоже поставить Collision Detection: Continuous. Но что-то у меня все равно не выходит. Подскажите пожалуйста, как задетектить то их столкновение?
>>766392 Пофиксил. Решение такое. При Continuous у нас в момент столкновения скорость равна 0. Поэтому у объекта, в который врезаемся воздаем 2 коллайдера, один is triggered, второй обычный. И нужно вытянуть коллайдер is triggered, чтобы объект сначала пересекался с ним, а потом уже врезался.
У меня есть модель интерьера, сделанная в 3д максе, хочу импортнуть ее в юнити и походить по ней. Хочу еще сделать возможность менять цвет произвольного полигона прямо в игре (типа курсором выбрать стену и далее выбрать цвет из палитры). Подскажите, как это сделать проще
>>766461 Решил короче. почему-то у меня просто были слишком светлые спрайты и я режил почекать, мб это из-за линеар колор спейса я начал гуглить и нашел шейдак, закинул его в проект блять сука у него в параметрах имя как у дефолт юи шейдера и в итоге когда я перезашел в проект дефолт шейдер удалился или пропал куда то и оно взяло этот залупный говношейдер и показывало эту дрисню просто в итоге вщял код дефолт шейдера с гита юнити закинул его в свой шейдак и все чикибамбони
В дереве смешиваний анимаций, почему-то чем ближе точка отдаляется от координаты к которой привязана анимация, тем больше она начинает вращаться вокруг себя. А когда доходит до границы встает на ребро, и ее вообще становится не видно. А дальше уже начинается также с ребра другая анимация.
А мне нужно чтобы она просто начинала показывать анимацию из других спрайтов.
Незнаю как обьяснить, мб по скринам чето понятно будет.
Есть барак с солдатами из которого постоянно выбегают юниты, сами юниты это префабы которые вызываются из объектов на сцене, пока родительский объукт не уничтожен дочерние объёкты работают исправно, но как только род. объект погибаем, казарма перестаёт спавнить юнитов. Сделал префаб родительского объекта и вызываю его из кода, но когда делал префаб у меня постоянно теряются ссылки на gameManager и восстановить я их не могу, нужно делать префаб game manager, который так же теряет ссылки, как правильно вызывать объекты из кода?
И если я изменяю здоровье при атаке у переменной enemy, то оно меняется кругом (сразу у двух гоблинов) и сохраняется после выхода из игрового режима.
Можно ли сделать так, чтобы я отнимал здоровье только у одного гоблина. Или для этого нужно создавать другую переменную в Монобехейвере, которая будет брать базовое значение из ScriptableObject?
Планирую выложить свою игру (пиксельная космолеталка с контролем в нажатие по экрану аля Flappy Bird, но со своими свистоперделками) в виде ф2п, но с короткой рекламой раз в 5-10 "запусков" (один полет длится плюс-минус несколько минут, плюс экран вида "набрано очков / рекорд")
Анон, почему if (new List<int>() { 3, 4, 5 }.All(i => x != i)) { } требует добавления в скрипт using System.Linq; подчеркивая ошибку в All, а вот List<string> oppMess = new List<string>(30); работает и без него. Это же все работа со списками, почему так?
Как лучше сохранять данные между сценами, допустим, в РПГ?
Пока я думаю создать один объект DontDestroyOnLoad, и там хранить все переменные: характеристики и инвентарь героя, пройденные квесты, результаты диалогов и т.д.
Но, может, это не самый оптимальный вариант. Так как это получится очень огромный класс с кучей значений.
>>755705 В этой книжке пишут о том что нужно нажать кнопку Import Package/Environment. Но у меня нет пункта Environment. Не подскажите, где мне добыть нужные Standart Assets?
>>755705 >Сам только вкатываюсь, раньше по утубовским видео и курсам с юдео, но всё это полное гамно, криворукими ушлёпками с дефектами речи. А может надо было разориться и обучаться на удеми И даже из юьубовских gamesplusjames до того как свалил на удеми, пилил вполне себе отличные гайды В ютубовских гайдах основные проблемы уебаны которых рекомендует юнити, и уебаны которые пытаются втюхать говно на третьем, четвёртом видео.
>>760847 >и в погромировании достиг неплохих результатов с таким подходом. Читать книгу чревато - можно заебаться и потерять интерес. Когда сразу делаешь и непосредственно решаешь самую ближнюю проблему - мотивация только разгоняется. Звучит как хорошая идея кстати. Просто выдумать что хочешь сделать и сразу же делать, а то заебался уже мануалы курить и видосы с ютуба с обучением, с каждым разом всё меньше и меньше интереса.
>>767312 Звучит как отвратительная идея Ты таким подходом сделаешь какое нибудь говно, если тебе силы воли не хватает месяц покурить туториолов по тем идеям котоыре хочешь реализовать, а потом делать. То лучше не начинать Изобритать колесо звучит интересно и волнующе, но как конечный продукт подобное колесо обычно не очень круглое. Другое дело что перенемать опыт надо у знающих людей, и вот с этим могут влзникнуть проблемы
>>767328 Ну ясное дело что на начале будет выходить говно. Я думаю такое будет происходит и с теми кто стартовал с теории. Речь же идёт о том чтобы сохранить интерес к обучению в первую очередь.
>>767474 >Почему столько ютую гайдов скипают этот шаг? Потому что на ютубе очень много мусорных гайдов. Чем больше мусорных гайдов, тем вероятнее, что они скипнут какой-либо шаг (например, как пилить сохранения/загрузку).
>>767631 Я хуй знает, просто предположил что в редакторе свет как-то криво отображается. Почему корабль уменьшается при приближении к звезде? Выглядит так как будто он пытается приземлиться на нее
У меня есть интерьер в 3ds max, пока без текстур. Впоследствии я хочу использовать модель интерьера в юнити. Где мне лучше его затекстурировать - в максе перед экспортом или уже в юнити?
>>767631 в редакторе криво отображается, у меня вот иконки которые через ровные промежутки выставлены - в редакторе стоят с небольшим смещением и шрифты местами чуть заметно плывут по размерам
>>767687 >У меня есть интерьер в 3ds max, пока без текстур. >Впоследствии я хочу использовать модель интерьера в юнити. >Где мне лучше его затекстурировать - в максе перед экспортом или уже в юнити? > Бамп
Кириллы, может подскажет кто : хочу что бы объект двигался вправо и столкнувшись с чем то разворачивался. Решил что лучше это сделать (что бы не заморачиваться овелап коллайдерами) сохранением местоположения объекта , сохранением этого местоположения и сравнением нового и старого местоположений. Вопрос: в чем сохранить и как?
>>768622 Ты просто хочешь назначать материал с цветом, а не полноценную текстуру? Тогда можно в юнити, просто удаляй все лишнее в максе сразу при экспорте.
>>768986 Так ты не задавай такие вопросы, блять, это база. Ты хочешь в юнити создавать текстурки, поехавший совсем? Юнити не графический редактор и даже не 3д редактор.
Начал делать анимации атаки через DOTween и появился вопрос. Предположим у меня сложная анимация, состоящая из около 30 точек, это нормальная практика все 30 точек руками вписывать в метод и потом этот метод вызывать или есть какой-то вариант не засорять код? Может как-то импортировать данные из Animation Clip'oв?
>>769100 Ну я просто не ебу, как себя ведут разные материалы при экспорте в юнити. В 3д максе овер 9к вариантов, тут и короновские, и родные максовские. И нигде нет нормального мануала именно по поддерживаемым материалам.
есть проблема, помогайте. я перемещаю спрайт по гриду при помощи SmoothDamp внутри корутины, но как только он начинает двигаться в самом начале делает небольшой прыжок и я не могу понять откуда он
Пытаюсь в анимацию. Попробовал в блендере крутануть куб и засунуть в Юнити, но в Юнити он не двигается. Я смотрел туториалы по экспорту анимаций, но там более сложные, с костями и разными состояниями персонажа, переходами (как на пикче). А если вот просто нужно самое примитивное движение, то тоже гемороиться нужно или есть способ попроще?
>leftHand = animator.GetBoneTransform(HumanBodyBones.LeftHand); >animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandPos); >leftHandPos = new Vector3(newXpos, leftHand.position.y, leftHand.position.z); Можно ли в IK двигать весами только какую-то определенную ось, например, Х, а чтобы по остальным все было как заложено в анимации? Я делаю так, но получается хуйня, неправдоподобное движение, прерывистое.
есть ли в юнити готовое решение, чтобы ошибки в игре писались в отдельный текстовый файл? не в редакторе, а в готовой игре, чтоб писало в отдельный txt файл
есть код типа: void AOE_Attack() { ImageSkills.gameObject.SetActive(true); //активируем панель скиллов hitpointValue -= aoe_damage; GameObject.FindWithTag("PanelSkills").SetActive(false); //находим панель скиллов по тегу и закрываем } Запускаю на тормозном компе, получаю по факту такой порядок операций:
1. расчет урона 2. попытка найти и закрыть панель, которая оказывается еще активировалась 3 все зависает нахуй, панель висит открытая
Это просто пиздец. Ну, я понимаю, что панель могла не сразу прогрузится на экране. Но, блять, команда то уже прошла. Можно же ее считать открытой или нет?! Хуй с ним если она чуть позже на экране появится, можно ее считать уже активированной, блять?! Тут же вся логика рушится, я в ахуе от такой реализации
>>772740 присылаю на тормозной комп по сети команду активировать объект на нем куча спрайтов, и сразу же команду деактивировать этот же объект через поиск по тегу. в итоге тормозной комп выдает ошибку, что не нашел объект для деактивации. при этом в момент повисания объект на экране активен. т.е. команда активации объекта хотя и запущена первой, по-факту не является завершенной, и команда деактивации через поиск по тегу, которая идет второй, никаких активных объектов не находит
>>772747 Нужно было отключить сглаживание прозрачных текстур в пресете графония. Выглядит теперь с лесенками, но на всех разрешениях экрана зато одинакоыо. Может, есть какой-нибудь вариант оставить сглаживание и чтобы оно работало одинаково на всех разрешениях экрана?
Гугле плей требует сдк 30 и выше версии. Установил последнюю доступную версию движка, а там все равно пишет, что 30 версия недоступна. Юнити предлагает обновить автоматически, нажимаю да, все равно ошибку пишет.
>>776880 >Гугле плей требует эти в конец охерели, мне тоже шлют свои хотелки, чтоб я там им что-то правил каждую неделю, в платной игре которая вышла 3 года назад и с тех пор не обновлялась ни разу. отдельно хуею от их нового поиска в которой игру по названию нихера не найти. у меня игра условно называется "cool game: best" , но по запросу "cool game best" выдает кучу приложений с совершенно левыми названиями, где ни одно слово не совпадает. причем большинство - абсолютный мусор с 10+ установками и 3-4 звездами, вышедший 5 лет назад. а моя игра с 10к устновок и 4+ висит на 500+ позиции. и надо обязательно написать точное название "cool game: best" чтоб ее найти. просто конченные блять
>>776937 >условно называется "cool game: best" , но по запросу "cool game best" выдает кучу приложений с совершенно левыми названиями, где ни одно слово не совпадает. Та же хуйня. Как у них поиск работает непонятно. Даже если дословно вводить название, запросто может ничего не показать.
Как можно отследить поворот объекта в мировом пространстве независимо от локального? Например, чтобы узнать, что объект наклонился вперед или назад (мировая ось Z), при том что изначально объект может быть повернут и наклонен как угодно.
>>777503 Исходное может быть любым. Объект может иметь рандомный исходный поворот (z может быть вверху, например, или Y смотреть в лево, а не вверх и т.п.), но мне нужно отследить, что его угол изменился в только глобальном Vector3.right.
Чё то башка под вечер не варит От чего при тесте на экране сцены обьект и его текстовое окно показывается, а на game экране нихуя, хотя интеракции с обьектом происходят Слои все правильные
кто долбился в ml agents? я решил сделал максимально базовую конструкцию: есть агент и он движется к статичной цели. каждый эпизод цель становится с другой стороны агента чтоб он не научился просто двигаться в одном направлении. по наградам всё просто: +1 если достиг цели, -1 если ударился о стену и при каждом апдейте я ему снимаю -0.02 чтоб он на месте не стоял. сначала агенты просто мыкаются по сцене, некоторые попадают в цель, но потом большинство выбирают какое-то определённое направление и двигаются в него. проблема в том что если цель была уже взята в одном направлении, то там её больше никогда не будет и посему агенты просто добрых 10 минут даже не пытаются приблизиться к цели, а просто бьются об стену в одном и том же месте. есть идеи?
Привет анончики. Нужно как-то узнать, какая ось объекта в данный момент соотносится с Vector3.right и выяснить её текущий угол относительно Vector3.up. Обшарил уже весь русскоязычный и англоязычный интернет. Помогите, позяз.
упражнения ради делаю игру-клон star wars: pit droids. столкнулся с интересной проблемой и не пойму как её решить. суть в том что перед тем как пойти дройд должен знать если ли или будет ли перед ним свободная клетка. соответственно дроид чекает клетку впереди, видит что там есть уже другой дроид и считает что клетка занята, хотя другой дроид в этом ходу пойдёт и клетку освободит. не ясно как определить порядок в котором эти дроиды будут проверять возможность ходить. я сначала подумал что не стоит париться и просто делать рекурсию, мол пусть каждый дроид проверяет целую ветку дроидов перед ним пока не узнает есть ли там свободная клетка или нет, но это не работает в случае если они ходят по кругу. в общем застрял и не знаю как решить. есть идеи?
>>778999 >мол пусть каждый дроид проверяет целую ветку дроидов перед ним пока не узнает есть ли там свободная клетка зачем проверять дроидов, когда нужно проверять статус клетки в которую нужно зайти. в клетке должен быть триггер на дроидов разумеется
>>779057 ты не решаешь проблему, а просто поменял точку входа. клетка себя проверяет или дройд проверяет клетку или ещё какой-нибудь "менеджер" её проверять будет – вопрос один и тот же. как решить проблему освобождения клетки
>>779059 в клетке триггер с таймером, через пару секунд как из нее вышел дроид, она помечается как свободная. если в нее заходит другой дроид то она мгновенно становится занятой. кто не успел тот ждет. неужели это так сложно?
они стоят по кругу и круг замкнут. они все смогут пройти на одну клетку вперёд если будут двигаться одновременно. чего не ясно то? в твоём случае если есть свободное место и у меня 5000 дройдов, то я год буду ждать прежде чем они по одному сделают свой ход. это абсолютно неприемлемое костыльное решение которое к тому же и не работает
>>779138 перед первым пустая клетка, он отмечает свою клетку как пустую, и начинает анимацию перехода, следующий за ним в апдейте видит пустую клетку, также начинает переход, отметив свою клетку как пустую. все это происходит синхронно в один тик, т.к. там банальные проверки в 1 строчку кода. для спорных мест вроде перекрестков, заранее при создании дроидов присваивай им номер n+=1, с приоритетом прохода у более ранних. я написал тебе для более сложного случая, а у тебя совсем примитивная ебала оказывается и ты не можешь ее сделать, я худею с вас пердиксы
>>779143 третий раз тебе объясняю. нет(!) свободной клетки. вообще нет клетки свободной. свободной клетки нет. они по кругу стоят. свободной клетки нет. только одновременный переход на следующую клетку (ту что занята до начала перехода) обеспечит возможность ходьбы для всего хоровода
>>779163 >свободной клетки нет. они по кругу стоят. но это же самый базовый случай, все клетки помечены как свободные, задано направление, в один тик у всех начинается анимация перехода. как я понял в игре свободная клетка все-таки есть. поэтому делай 2 режима движения, для замкнутого контура(базовый) и с пустыми клетками >>779171 удали апдейт и старт, можно убрать монобехавиоур заодно, но он вроде как не мешает
>>779182 >удали апдейт и старт, можно убрать монобехавиоур заодно, но он вроде как не мешает Я имел в виду как сделать так, что в скрипт при создании добавлялся не шаблонный код со Стартом и Апдейтом, а мой собственный.
>>779182 контур то изначально не замкнутый. дройды спавнятся и идут, а потом хуяк и замыкают круг. а что если я хочу разомкнуть этот круг? что если это не круг, а пересекающиеся несколько кругов? ты все предлагаешь описать два частных случая когда их может появится в процессе множество которое не предугадать с введением новых механик. должен быть, хоть и сложный, но единый механизм в который будет чётко знать будет ли перед ним свободная клетка. я думал симулировать передвижения каждого дройда, а потом обрабатывать места коллизий и разбираться с ними. и нет, свободной клетки нет, в моём примере это конкретный замкнутый круг где дройд А встаёт на место дройда Б, пока дройд Б, перемещается на место дройда Ц
>>779189 варианта всего 2 по сути - замкнутый и не замкнутый. отслеживай замкнутые контуры без пустых клеток и в них просто сдвигай всех на 1 клетку вперед. для всех остальных случаев(в том числе замкнутых со свободными клетками), я писал выше как делать(определение хода индивидуально для каждого дроида, и потом запуск анимации перехода для всех одновременно). для перекрестков введи нумерацию при создании для определения приоритета прохода
Сейчас ковырял проект. Для одного объекта сделал пару вложенных объектов, которые при старте неактивны. И на последнем из них висел простенький скрипт с заданием перемещения этого же объекта в локальных координатах. В общем написал скрипт, пару раз запустил проект и вижу чет не работает на базовом уровне. Начал ковырять. Оказалось, что в этом скрипте 2 переменные public float speedY = 0.2f; public float speedX = 2f; просто инициализируются с нулевым, блять, значением - дебаг и со старта и с апдейта выдает их со значением 0. Причем, тут же созданная переменная public float speedZ = 1f; ведет себя адекватно. Пару часов проебался с тестировнием этой дичи, как оно вообще так может быть? Потом убрал из переменных public, сохранил - без public все работает. Дебаг выдает верные значения.. Вернул public сохранил и тоже все работает, сука. Просто сижу в ахуе, чезанахуй блять?!
>>780207 Прикол в том, что инспектор вообще не трогал. Как я понял, в момент создания переменной в него прописывается первое ее значение. В моем случае прописались нули. Потом оно тупо там висит, даже если в скрипте потом менять значение, ничего не происходит - от этого собственно и прихуел. Все таки немного странная реализация. Понимаю еще, что при перезапуске значение остается - это удобно, да. Но я блять его вручную поменял в скрипте, наверное я хотел, чтобы оно поменялось, с хуяли там старое висит
Как бороться с распуханием проекта, добавление какой-нибудь спрайтовой анимации из 30 кадров на 5 мегабайт сразу добавляет 60 мегабайт к общему весу. Скомпилированный проект весит всего 340 мегабайт и в нем нихуя нет по сути кроме картинок. Но на диске он весит уже 2 гига. Знаю что можно почистить кеш в папке Library. Но чеза нах вообще происходит?
>>747033 → > и юзать дотнетовский бинарный сериализатор Поменял класс - и всё в жопе. Таки JSON лучше, и NewtonSoft это не васян, это де-факто стандарт.
Привет. А можно ли создать такой метод, из которого можно запустить любой другой, даже ноходящийся в другом скрипте. Например: private voide Xyu(параметр ссылка_на_скрипт, параметр метод) { ссылка_на_скрипт.метод(); } Вызывается так: Xyu(GetComponent<Script>(), posholNaXyu());
>>791735 Передать метод как параметр можно только через делегат/ивент/лямбду. Либо сделать нужный метод статическим и вызывать его хоть откуда. >>788942 Через GameObject просто придется лишний раз ГетКомпонент дернуть.