Это копия, сохраненная 19 января 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый тред: >>744234 (OP)
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На 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 лицензию.
Обучение
- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.
- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: https://www.writeurl.com/publish/qzgktisltkskaitem6aa
Graphics Engineer. До этого работал только на дядю, а теперь хочу перекатиться в индюшатник. Сразу споткнулся о недостаок знаний о дженерик геймплэй программировании. При любом расширении геймплэй в ширь код очень быстро превращается в кашу. Туториалы на ютубе особо не помогают, там обычно всё упрощено до предела и показывается как сделать какую-то одну механику. Мож есть какие нибудь книжки в стиле "архитектура геймплэй", только не для начинающих, а для продолжающих?
Можешь обратить внимание на ECS (Entity-Component-System). Unity из коробки его не поддерживает. Но можно прикрутить все равно.
Почитай про SOLID и про KISS
https://icreatemy.games/general/ensure-my-success/
В целом идея сводится к тому, чтобы код был как можно проще. Для этого желательно разбивать его на мелкие части, каждая из которых отвечает за какую-то одну область. Как бы сама компонентная архитектура юнити на это намекает.
Только не тащи в геймдев всякие паттерны и принципы из ентерпрайза. Так можно будет вечно писать код.
NullReferenceException: Object reference not set to an instance of an object
UI_playerSkills.Start () (at Assets/script/UI_playerSkills.cs:50)
Я уже заебался.
строка де указана
смотри что у тебя на 50й строке.
очевидно или скилдата не инициализирована или плайерскилс(которого воопше нигде не объявлен)
Всё объявлено, плайерлисте объявляется в UI_playerSkills и содержит, помимо указанных выше, кучу кучу функций, обрабатывающих действия с получением скиллов. Скиллдата - массив со скриптаблобжектами, где инфа по скиллам.
А в классе без монобехаивиура вообще можно инициализировать другие, встроенные классы?
тьфу блядь. в мб не работает конструктор. точнее работает но через жопу и не рекомендуеться использовать
>абыл инициализировать плайерскилс
Не, он инициализирован, там есть другие функции и они работают (дебаг с них идет до момента инициализации класса Test.
>можно, но конструктор исопльзовать низзя
А как тогда создать внутри такого класса сруктуру с данными?
Берёшь из класса без монобеха обращаешься в наследованный от монобеха и через него вызываешь встроенные классы.
Но я и так их вызываю из класса с моно.
playerSkills.testList.Add(new PlayerSkills.Test(skillData));
>playerSkills.testList.Add(new PlayerSkills.Test(skillData));
Так у тебя в коде нихуя непонятно. Вот это твой playerSkills, что это вообще такое? Непонятно. SkillData у тебя вся null, playerSkills не существует, а вызов конструкторов не монобех скриптов в твоём конкретном случае должен быть глубоко похуй. Ищи, где ты обосрался, по доставленному тобой коду этого не угадать.
> playerSkills, что это вообще такое?
Класс без моно. Внутри него есть класс Test, который через конструктор будет заполняться данным из массива скриптаблобектов SkillData,
> SkillData у тебя вся null
SkillData не нулл, там 9 объектов.
>playerSkills не существует
playerSkills объявляется в awake в UI_playerSkills
Я не обосрался, это юнити говно. Делаю все по заветам про гуру уровня выше, чем маэстро Роман Сакутин.
>А как тогда создать внутри такого класса сруктуру с данными?
void start()
{
var info = new Info();
}
ну или в авейке. нельзя инспользовать конструкторы мб(и скриптаблов). конструкторы обычных классов/структур - сколько угодно
Ты хочешь сказать, что у меня где-то в другом месте ошибка? Лол, там около 400 строк кода в UI_playerSkills, включая 3 внутренних класса со структурами данных. И около 200 в playerSkills Всё работает как часы, не считая этого говна. Дело здесь в юнити.
блядь. да проверь ты на нул их и не еби мозги. зуб даю ты не инициировал плайер скиллы или тест лист
Ору, действительно, дело было в том, что я забыл инициализировать лист, лоол. Низкий поклон.
Ну я долбоеб, что поделать.
>Я инициализировал, зуб даю, но в коде этого нет
>Тут нет ошибки, что класс начинается с заглавной, а вызываю я его с прописной
>Не обосрался! Не обосрался!
https://rextester.com/ERB38963
Прошёлся по твоему говну своей струёй, так работает.
Слишком сложно, не могу разобраться.
>>752654
Пробовал как-то юньковский ECS, так там чтоб делать простейшие вещи, типа попадания пульки по врагу, нужно наизнанку вывернуться.
>>752658
Это классическое размазывание соплей "делай хорошо, не делай плохо". Как обучающий материал о разработке геймплея бесполезно.
https://rextester.com/KPCBY47537 Для чего это нужно?
>skillData = new int[10];
> skillData = i;
Зачем это нужно, если он заполняется из редактора.
>PlayerSkills playerSkills = new PlayerSkills();
Объект создается в классе-менеджере, а в UI_playerSkills передается ссылка.
public void SetPlayerSkills(PlayerSkills playerSkills)
{
this.playerSkills = playerSkills;
}
>Для чего это нужно?
Сначала хотел оставить использование этого класса-контейнера, но его в коде небыло, потом понял, что ошибка не в этом, а вычистить полностью забил.
>заполняется из редактора
Зачем это нужно? Я ничего из редактора не заполняю и ты так делай.
>Объект создается в классе-менеджере, а в UI_playerSkills
Ну ты же понимаешь, что чтобы ловить ошибки нужен минимально воспроизводимый пример? У меня не было никаких менеджеров, потому что их небыло в оригинальном куске кода. Так что всё непроинициализированное нужно инициализировать. А гадать, что там где есть, а чего нет, имея на руках буквально ничего - это бессмысленно, чел.
foreach выкидывает ошибку:
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Я юнити второй день изучаю. До этого программировал только на html и css. Почему вариант с for работает как надо, а foreach заканчивается ошибкой? Я добавлял выход из перечисления brake, но так же ошибка.
А что список это часть неймспейса System.Collections.Generic тебе ни о чём не говорит? Хочешь делать форич, попробуй сделать foreach (var item in noMaxLvlSkill.ToList())
Но лучше закешируй длину списка в локальную переменную. А форич пытается проходить по коллекции, которая уже была изменена, естественно, что генерируется ошибка.
> форич пытается проходить по коллекции, которая уже была изменена
Форич пытался удалить по индексу. В фориче нужно было использовать
noMaxLvlSkill.Remove(item);
break;
Kirill, успокойся уже, прими таблетки
Или не забанен моча не дурак?
Ну раз такое дело, назрел вопрос, юзал ли кто appodeal для рекламы как аналог адмобу? Нередко встречаю его восхваления, может кто поделится опытом?
Популярные моб игры подключают несколько рекламных сетей через медиацию. Например, через IronSource тот же.
>Я ничего из редактора не заполняю и ты так делай.
Сколько ты мог бы сэкономить памяти, если бы так не делал.
Ну рассказывай, раз начал, что имел ввиду.
Да.
Какого десятилетия эта шапка? Тут половина текста устарело
Так и утонуть можно. Ладно, накачал говно-курсов, посмотрю что там как.
private bool FloatComparer(float a, float b, float limit)
{
return (Mathf.Abs(a - b) < limit);
}
Как-то так. Про Approximately даже не знал, лол.
собственно это оно и есть, только берет эпсилон за лимит
Скорострельность 2 пули за секунду. Почему одна пуля летит, а вторая нет?
Они кстати одновременно спавнятся, мне кажется что лучше попробовать что-то с корутинами мутить
https://youtu.be/hoKKFQ2PWMw?t=172
Бля, они переделали эту хуйню, вроде разобрался уже, стоило только спросить сразу нагуглилось
Подписка на события будет в конструкторе этого класса. А вот отписку думаю сделать через IDIsposable (плюс ещё в деконструкторе, если вдруг я по какой-то причине забуду вызвать Dispose). Это норм так использовать этот интерфейс?
>Это норм так использовать этот интерфейс?
Да
>плюс ещё в деконструкторе
Деконструктор не нужен, это не плюсы.
>Деконструктор не нужен, это не плюсы
Но если объект не отпишется от событий, то он обречён всю вечность существовать в памяти.
Так в Dispose и отписывай.
Если не считать агрессивный пеар, то кабанчики его выбирают из за: shader graph, srp batcher, vfx graph. НО! Амплифай на 2 порядка более функционален, с появлением BatchRendererGroup надобность srp батчера вообще сомнительна, а на vfx графе я не видел чтоб кто-то что-то делал.
Хули. Если начал ебошить то:
флоат текущееВремя = тайм.дельтаТайм
вайл(текущееВремя -= времяВыстрела больше 0) Ебош()
а в апдейте прибавляй к текущееВремя тайм.дельтаТайм
тогда можно стрелять в один кадр больше чем одним снарядом, если будешь использовать временное значение и прибавлять к нему время между кадрами и убавлять то сколько времени тратится на выстрел как "цену" за выстрел по времени.
Коллаборейт я так понял это Unity version control пакет, он не обновлялся, сам он как работал так и работает. Ошибка появилась после обновления самой юнити
А винду пробовал переустановить???
Нет его там, есть только Version cotrol, который теперь и есть каллаборейт как я понял, удаление и установка его ничего не изменяет
вкатился от скуки. зачем ты в каждом кадре проверяешь закончились ли патроны? можно же проверять сразу после выстрела и/или после смены оружия
Это нарушит принцип KISS. Каждый метод должен решать одну маленькую задачу, а не множество случаев.
Запомни самое важное правило в юнити. Никогда, ничего не делай в апдейте, максимум это корутины каждые 0.1/0.2сек и т.д. Апдейт это рак который губит всех новичков.
Как использование апдейта приводит к преждевременной оптимизации головного мозга?
Скорее наоборот.
Чел говорит, что апдейт плохой потому, что может вызываться чаще корутин, скорее всего отсылая к проблеме 10000 вызовов. Хотя по факту, если у тебя не десятки тысяч геймобжектов это никакой роли не сыграет. А только добавит ебли с порядком вызовов корутин, их жизненным циклом, хот релоад сериализацией и ещё каким нибудь говном.
Проблему, когда каждый апдейт вызывается дольше, чем если сунуть вызовы всех апдейтов в один апдейт синглтона сохранилась?
Так же думаю.
Наверно у него были какие-то проблемы в какой-то своей игре, и он начинает распространять свои болезненные выводы на всё. Или наслушался всяких оптимизаторщиков.
>НИКОГДА НЕ ИСПОЛЬЗУЙТЕ АПДЕЙТ, КОРУТИНЫ ЛУЧШЕ
>Под капотом каждый апдейт вызывается корутина и сверяется, прошло ли указанное время со момента последнего вызова
>ФИКСЕДАПДЕЙТ ВЫЗЫВАЕТСЯ ОПРЕДЕЛННОЕ КОЛИЧЕСТВО РАЗ В СЕКУНДУ
>Фикседапдейт вызывается каждый апдейт и проверяет, прошло ли нужное время с момента последнего вызова
Но по факту апдейт зло потому что все расчёты выполняются гораздо больше раз в секунду, чем нужно любому адекватному человеку.
Ну да, а куда этому деться, если все компоненты и ресурсы менеджит внутренний с++ сервер. Может юнитеки там и придумывают какие нибудь батчи для этих вызовов, но так же быстро как из шарпа вызывать другой шарный метод это вряд ли будет.
Ничто не мешает выполнять тяжёлый код не каждый кадр, а например Time.frameCount % 30 == 0
Земля пухом, братишка. С интерпрайзом тута осторожно надо. Ты хотя бы перед выстрелом проверяй.
>Но по факту апдейт зло потому что все расчёты выполняются гораздо больше раз в секунду, чем нужно любому адекватному человеку.
засунул в апдейты проверку состояний статик переменных, при срабатывании сразу сбрасывает локальную переменную в условии на false и повторных срабатываний не происходит, сразу же через инвок запускаю восстановление локальной переменной обратно на true(секунды через 2, когда событие уже будет не активно). брат жив
Чем колайдер лучше тригера?
>>753477
Триггер менее мощная штука, при коллизии с триггером у тебя нет информации о точной точке контакта (или точках), нет всех коллайдеров участвующих в коллизии, есть только other collider который оказался в зоне действия триггера в fixed update. Базово, триггер годится только для простых штук типа "игрок подошёл к npc"
https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html
Можно слоями нарулить, чтобы одна группа объектов проходила через другую например. Еще можно настраивать через код, чтобы конкретные коллайдеры друг с другом не сталкивались, в виде исключения, но это как-то медленно работает.
тебе не надо создавать кучу методов. тебе нужно вызывать их не в каждом кадре, а только по событиям
Я читал на хабре, что для телефонов вообще не стоит использовать корутины. Это была статья разработчика из топовой студии, пилящей игры для мобилок.
Я от корутин полностью отказался, они нужны в очень редких случаях на самом деле. А все апдейты просто подписались на событие апдейта синглтона.
Там это, новый хаб выкатили. Чёрный.
>для телефонов вообще не стоит использовать корутины
Видимо из-за того, что программисты создают WaitForSecond и прочие объекты. Студии помешаны на такой хуйне. Лишний объект создал, всё пиздец, трагедия. for each или linq использовал - увольнение нахуй.
Ок я понимаю что это правильно наверно, но как обновлять состояние нпц?
Допустим игрок убил гоблина в сцене1, ушел в сцену2, вернулся в сцену1.
Юнити снова отставнило гоблина, но мне надо мертвого.
Есть два стула, какой выбрать/правильнее?
1. Гоблин в Start() запросил данные о себе и если мертв, убивается. (простенько но как то хз)
2. Я не расставляю гоблина в editor-time, а делаю свою таблицу данных какуюто, по которой мой менеджер будет спавнить его, если он жив. Т.к. он мертв, менеджер не спавнит. Этот метод кажется честнее, но гемморойнее.
Я где-то читал что юнити сама юзает корутины под капотом, хотите вы этого или нет, например SceneManager.LoadSceneAsync
Юнити загружает сцену в том виде, в котором она была при билде. Если ты хочешь, чтобы какие-то данные изменились, то их нужно сохранять. Сериализуй json, схороняй на диск, читай данные, заполняй поля. У меня реализован сорт оф твой второй вариант, но это только потому что я ебанутый.
Т.е. вариант 2 - грузить нпц/труп самому?
Непонятно только зачем специальная сцена, когда игрока в сцене нет, труп может и не существовать (я же не симуляцию делаю).
>>753680
>схороняй на диск, читай данные, заполняй поля.
Да, сохраняю на диск, хотел просто понять как с точки зрения ахритектуры Юнити я должен делать такие вещи (нелюблю велосипеды городить без надобности).
Если ты делаешь так же как 2, то нас как минимум двое ебанутых.
А как сделал бы не-ебанутый?
>игрок у тебя как перемещается между сценами?
игрок живет в аддитивной сцене, там же где и камера и прочая UI.
Предлагаешь никогда не выгружать уровни чтоли? Держать все как опен ворлд?
Разве они не жрут память?
Можно ли сцену как то "заморозить", как в редакторе? Я вроде не находил такого.
>хотел просто понять как с точки зрения ахритектуры Юнити я должен делать такие вещи
Через файлы сохранений, очевидно же. Как ты их реализуешь сам это уже твоё личное дело. Главное, чтоб не через PlayerPrefs.
>А как сделал бы не-ебанутый?
Не так выразился, просто у меня идеология в минимизации вмешательства редактора в построении уровня, это уже сорт оф ебанутость, так что я первый вариант даже не рассматривал. В принципе, сделать простой первый вариант это тоже вариант. Можно ещё хранить состояние всех нпц в памяти, но тогда их состояние будет храниться только в пределах сессии. Плюс расход памяти, но сейчас у всех памяти дохуя, я уже расход 10гб+ не замечаю.
>Держать все как опен ворлд?
Так в опен ворлде куски уровней выгружаются и загружаются аддитивно, иначе гроб-гроб-кладбище-3 фпс
>хранить состояние всех нпц в памяти,
Сомневаюсь что это вариант, как только я сцену выгружу эти нпц станут null или разлинкуются 100%.
Манябехевиоры живут только в сценах жи есть.
>>753699
Юнити снова загрузит живого гоблина, которого надо убить, потом двигать труп на его место. Зачем держать труп в памяти?
На пике у тебя пасхалка была вообще.
>Ты ее не контролируешь?
Нет конечно. Если гоблин был в билде, юнити его будет грузить всегда, при новой загрузке сцены.
>Ты же можешь на уровне хранить точки спавна,
Это я и имел ввиду когда спрашивал про грузить нпц вручную из данных. Т.е. ты тоже за 2 вариант, спасибо.
>Нет, это они так технически сделали. Пасхалка в том, что в это место игроку нельзя было заглядывать.
Предполагаю что там совсем другая архитектура и точная симуляция энтитей, нпц ходит по дорогам даже когда игрок на другом конце карты. Возможно проще было просто кидать трупы куда то, чем возится с их подтиранием.
Anyway не мой случай явно (покачто).
>как только я сцену выгружу эти нпц станут null или разлинкуются 100%.
Статик класс, в нём массив булов "жив-мёртв". Каждый нпц знает свой id и в инициализации обращается к массиву. Всё просто, но слегка черезжопно. Зато быстро.
Вот тоже думал про это, остановило только что надо возится с этим массивом, если он изменился, т.е. перераздавать новые индексы всем кто в нем сидит (если это динамичсеский массив)
Если простой массив,то тогда надо трястись над тем чтобы не превысить размер и тд... хмм... (а так заранее и не скажешь сколько на сцене будет говна, а аллокировать 10.000 как то всрато).
Cуществует Array.Resize, список, словарь в конце-концов.
По-хорошему у тебя должно быть полное разделение статичных и динамических объектов. Все что может изменить свое состояние - динамический объект. Загружаться со сценой должны только статичные. Динамические объекты должны подгружаться после загрузки сцены исходя из отдельно сохраненных данных.
Т.е. загружаешь сцену без гоблинов, потом читаешь из файла живые гоблины или мертвые должны спавниться и в каком месте. И уэе согласно сохраненных данных уже спавнишь их.
Благодарю, сделол что-то в таком роде.
Главное чтоб заспавненные не разлинковывались с данными, чтобы убитый смог откалбечить назад что он был убит например.
(пока по своей копии индекса находят, быстро но если массив данных нпц шифтанется, будет очень злой баг).
> Посоны, в профайлере Text.Onenable().Invoke лагает и создает относительно много мусора. Как пофиксить можно?
Можно перейти на нормальный движок. Как вариант.
(Автор этого поста был предупрежден.)
Думал об этом, но весь проект сделан через Text.UI переводить все на TMP заебусь, попробую сначала не активировать\деактивировать весь обьект с текстом, а выключать только канвас рендерер
Напиши скрипт, который заменит все Text на TextMeshPro
Цыклические ссылки не сериализуются стандартными средствами. В юнити после десереализации это будут 10 разных несвязных инстансов, хотя должно быть 2. Если тебе с этим норм, то похуй.
Для продолжительной разработки игры лучше качать стабильную рекомендуемую. Для теста новых фич - ну ты понял.
Вообще без разницы, рекомендую качать 2020 LTS, просто потому что.
Я сейчас перекатился на 2021.2 бету, проблем не заметил вообще никаких, работает идеально.
Потому что в играх код должен быть простой как валенок и все будет хорошо.
Я больше жду, когда уже наконец-то апи станет потокобезопасным. Дельтатайм как-то похуй.
Ах да, на графиках 2020.2, но это лишь для Windows DX11, все остальное правят до сих пор. Vulkan и ogl es только в 2021.1 поправили.
Кому похуй кому нет, я из-за этого не мог на юнити добиться идеально плавного геймплея, когда как на ue4 с этим все хорошо, при том что кстати там разброс дельты большой, но видимо там в закромах рендера все работает не совсем так, как в юнити.
>а ue4 с этим все хорошо, при том что кстати там разброс дельты большой
У них есть опция Smooth Frame Rate. Может она даёт такой результат.
Самые полезные конкретно для гейдева:
1. Стратегия
2. Синглтон
3. Мементо
4. Медиатор
В таком порядке.
> 1. Стратегия
Компоненты
> 2. Синглтон
Компоненты
> 3. Мементо
Компоненты
> 4. Медиатор
Компоненты
Юзайте движок так, как задумали его создатели. И не будет никаких проблем у вас.
Забавно. С одной стороны dt поправили. С другой - новый InputSystem срёт событиями невпопад, так что 3 кадра может пропёрдывать, а на следующий - высрать сразу двойной вызов события.
> когда уже наконец-то апи станет потокобезопасным.
Никогда лол. Ставь локи там где нужно сам, любая синхронизация сказывается на перформансе и ради 0.01% юзкейсов они ее не будут ухудшать.
>любая синхронизация сказывается на перформансе
Не в синхронизации дело, я даже трансформы двигать не могу не из мейн треда. Да что двигать, из них даже инфу хуй получишь в фоне. Это пиздец ёбаный. Но всё это хуйня, есть же ецс, правда я его палкой потыкал, оно даже скиннед меши не поддерживает, для реального использования нот реди ет.
И вот в чем проблема если прыгать из воздуха, то все норм, 2 прыжка можно сделать. А если с земли, то 3 прыжка, так как после нажатия на пробел сразу же проходит проверка на землю и экстрапрыжки восстанавливаются до 2х. Никак не могу придумать как пофиксить
ДжобСистем вроде возвращает измененную ентити. Можно придумать как с ней изъебаться, чтобы передавать ей примитивы трансформа и потом аплаить результат в мейн тред. Но лучше нахуй.
Можно ещё корутины йелдить, но это не про многопоточность конечно.
А зачем тебе второй тред?
Можно начинать восстанавливать через какое то время после прыжка, а не сразу. Нажал пробел и только после 0.1 сек восстановление будет возможным.
Можно отключить проверку на землю тоже на какое то время после прыжка.
Спасибо, туплю
Ты серьёзно? В момент приземления начинаешь складывать в какой-нибудь флоат все дельтатаймы, по нажатию прыжка чекай и всё.
>>754263
>А зачем тебе второй тред?
А зачем мне восьмиядерный процессор тогда? Я хочу 8 потоков как минимум.
>передавать ей примитивы трансформа
В ецс была пакетная обработка трансформов, вроде, без одиночного варианта, только пакетная. Но там и апи менялось и ещё хуй знает что происходило, не хотелось связываться. Корутины хуйня полная. Я один раз упоролся на отличненько, генерировал в мейн треде задачи для фоновых тредов, в фоновых тредах делал всё подсчёты, а потом из фона генерировал задачи опять же для мейн треда. Работало нормально, но я быстро начал путаться в типах задач. Сейчас считаю самым адекватным винегрет из классического монобеха и ецс. Потому что монобех без многопотока, а ецс без фич.
> А зачем мне восьмиядерный процессор тогда? Я хочу 8 потоков как минимум.
Ну может хочешь какие нибудь долгие вычисления делать из за которых фпс проседает. Хотя их можно растянуть на несколько кадров.
Если нет кейса зачем так ебаться. Преждевременная оптимизация корень всех бед, как говорится.
В идеале я бы хотел максимально разгрузить мейнтред, чтобы оставались ресурсы для подкапотных процессов самого движка.
>Если нет кейса зачем так ебаться
Я из тех ебанутых, что пилят игру мечты, а потому ебаться придётся в любом случае. Вопрос только в том, как много и когда именно. Если заранее не предусмотреть возможность распараллеливания, то можно насосаться хуёв. Опять же, у меня достаточно производительный процессор, но это не значит, что он у всех игорьков такой. Выкатывать системные требования "2 ядра по 10 ггц" всё-таки припизднуто больше, чем я могу себе позволить.
Если всё в одном канвасе, будет много лижних обновлений.
>Используйте для динамических элементов отдельные или вложенные холсты. Так вы минимизируете затраты на сортировку и перестройку структуры холста, содержащего большое количество элементов. Вложенные холсты более удобны, т.к. наследуют настройки родительского холста. В то же время, при изменении родительского холста перестроятся и все вложенные. Такое довольно редко, но происходит (например при смене разрешения экрана). Учитывайте, что объекты из разных холстов или вложенных холстов НЕ запекаются для совместной отрисовки. Рекомендуется разделять холсты по регулярности обновления элементов. Статичные элементы нужно поместить в отдельный холст, тогда они будут отрисовываться лишь один раз. Если есть элементы, которые постоянно меняются, то лучше их объединить в другой холст, т.к. они все равно будут вызывать перестройку друг друга. Изменяющиеся объекты также можно разделить на несколько холстов по частоте обновления. Например, элементы, обновляющиеся каждый кадр положить в один холст, а элементы, обновляющиеся реже — в другой.
В проекте на версии 2019 и так был urp, просто он был добавлен в процессе создания игры.
Создал в 2020 обычный проект и импортировал из стора urp. Цвета стали прежние. Что не так с юнити, чем отличается urp из стора и urp из "создать urp прожект" в хабе?
>Перенес проект в версию 2020
Как переносил? По уму нужно зайти в папку ассетс, там выделить свои папки, кроме папок плагинов, в частности настроек srp. Метафайлы корневых папок тоже лучше не копировать.
>ФПС в игре упал в 8 раз
Какая-то хуйня на самом деле, у меня hdrp и фпс сопоставим с легаси рендерингом.
>в настройках их поставил
Корректный волюм в сцене есть? В проджект сеттингсе указаны дефолтные волюмы и глобал сеттингс?
Фэпос так и не вырос.
>Как переносил?
Экспортировал весь проект, вместе с ассетами и вообще со всеми папками. А потом импортировал. cpu main около 7 ms, в 2019 меньше 2ms
>Корректный волюм в сцене есть? В проджект сеттингсе указаны дефолтные волюмы и глобал сеттингс?
Я не понял.
Просто создай новый urp проект через хаб и в него закинь свои ассеты. Без настроек urp, папок urp, папок плагинов и прочей хуйни. Настройки с пика будут по дефолту корректными.
Вряд ли фпс связан с urp. В настройках плеера, например, не пункта динамик батчинг, статик при этом есть, юнити чудит.
>Как переносил? По уму нужно зайти в папку ассетс, там выделить свои папки, кроме папок плагинов, в частности настроек srp. Метафайлы корневых папок тоже лучше не копировать.
Разве при экспорте в пакет всякое говно тянется в файл?
>В настройках плеера
РТФМ. Оно просто переехало в настройки Srp. В hdrp вообще заныкано и похуй. Но тебе ещё шейдеры нужно проверять, поддерживают ли они srp батчинг, скорее всего нет. Пересоздавай через шейдер граф, если нет.
>статик при этом есть
Один хуй только в билде работает.
>юнити чудит
Нет, просто ты справку не читал нихуя.
>>754439
А, хуй знает. Я не экспортировал в пакет никогда, просто копировал ассетсы. Потому что апгрейд через просто выбор новой версии юнити в хабе может и будет порождать косяки.
Именно в этом была причина ебанутого цвета. Храни тебя господь, на будущее буду знать.
>Нет, просто ты справку не читал нихуя.
Всё равно юнити чудит, пусть и не в батчинге. Сейчас создал в 2019 версии новый прожект, импортировал пакет, фпс точно такой же, как в оригинальном проекте. А в 2020 пиздец какой-то.
Да что ж у тебя сплошные отмазки в стиле "юнити виноват, а не я долбоёб"? У меня на 2021 с hdrp около 120 фпс на нескольких миллионах полигонах с анимированными шейдерами, скиннед мешами, постэффектами и smаа. Без батчинга. Подрубай профайлер и смотри, где у тебя жопа.
Я уже посмотрел в профайлере, графы одинаковые, только вот фпс разный. Я уже провел эксперемент и описал в предыдущем посте, это явно ошибка юнити. И это не только у меня: https://forum.unity.com/threads/change-in-fps-with-2020-2.1026619/
>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.
Там даже в треде написано, что никакой ошибки нет.
Там нечему помогать, потому что проблемы нет.
> окно "scene"
Всегда можно его облегчить, выключив ненужное.
У меня где-то был график дельты из анриала, и там при большом разбросе таки прослеживается некая упорядоченность, когда как на юнити был полный хаос.
вся суть юнити
Синглтон, фабрика. С таким набором паттернов тебе обязательно перезвонят.
Эта хуйня и так выключена по-дефолту была, сейчас все повыключал/повключал - эффект нулевой.
>>754696
Вот это более похоже на правду. Но, блядь, как в меню может быть около 500фпс на нормальной пеке. А в одной сцене, где просто 1 персонаж, 3 лампочки в реалтайме и один direction свет, треугольничков всего 44к, и они батчатся - около 500фпс. И это если окно сцены выключить. Если включить, фпс в 3-4 раза меньше. А я пилю игру на андроид.
Такого нет.
https://docs.unity3d.com/ScriptReference/ComputeBufferType.html
Чем они отличаются то-о-о? Как этим всем пользоваться? Что за магия происходит когда я вызываю ComputeBuffer.CopyCount? Что происходит когда я делаю ComputeBufferType.IndirectArguments буффер? Документация местами загадочная, непонятная и без примеров.
2D Пойнт-н-клик + ресурсменеджмент.
Планируется несколько сценок со своим наполнением, на каждой из них нужно отображать ГГ с текущим состоянием - грубо говоря, эквип персонажа должен быть виден прямо на нём.
Как это лучше реализовать, если сценки - это по сути статичная картинка с расставленными предметами (может иногда меняющимися), а ГГ должен сохранять состояние, перемещаясь между ними?
Я сначала воспринимал "сцены" юнити как адекватное представление уровней, но кажется что нет смысла заставлять их постоянно загружаться/выгружаться.
если ты наполняешь свои сцены через код то конечно поебать на организацию сцен. сцены могут быть кусками большей сцены.
ну а как организовывать то че? просто не уничтожай нужную тебе хуйню при смене сцены.
https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
например мало смысла уничтожать какой-нибудь менеджер интерфейса
Хотелось бы высказаться по этой теме, раз уж представилась возможность. Касаемо ютуба буду краток. Ненавижу видеоуроки. Задают конкретный вопрос, а в ответ "мы демонстрировали эту фичу на LA Unite, смотрите!" и ссылка на видос. Ты не помог, мразь, ты высрал кучу говна. Где ответ? Ууу, пидоры. Рандомные туторы с ютуба в этом плане в несколько раз хуже, потому что у них даже фичи не те, реализация через жопу, а чтобы вычленить полмиллиграмма ценной инфы из гигатонн шлака тебе придётся буквально до старости смотреть видосики на двойной скорости. А уж картавый диктор, шамкающий своим вялым анусом в микрофон это просто вишенка из собачьего дерьма поверх всего этого тортика.
Чувак разорись и купи книгу. Я серьёзно. Сам только вкатываюсь, раньше по утубовским видео и курсам с юдео, но всё это полное гамно, криворукими ушлёпками с дефектами речи.
У брал несколько книг но самая лучшая это Разработка игр на Unity 2018 за 24 часа конечно название гавно, но по сути всё так за 24 урока по 1у часа можно вкатиться. Сам уже дочитываю книгу и готовлюсь повторить 4ю последний пример из книги.
Проще поработать некоторое время стажёром. В рабочем коллективе очень удобно обмениваться опытом. Когда возникают затруднения, тебе могут за минуту объяснить, в чём проблема. И не придётся часами разбираться самостоятельно.
Но сейчас рынок переполнен и стажёры никому не нужны.
>>755705
>книгу
Книги по IT сейчас вроде устаревают уже к моменту выпуска.
соре я дурак, спасибо
Как же?
В какую сторону смотреть?
Генерить спрайт, считать руками размеры и размещать руками блоки текста вместе с контроллем курсора выглядит по мне как оверинжиниринг.
> сейчас рынок переполнен и стажёры никому не нужны
Да нахуя оно мне? Если пиздовать куда-то в конторку, то заставят пилить мобильное дерьмо, для которого интересующие меня фичи просто не нужны. Вот сейчас мне интересно, насколько хорошо дружат srp batcher и material property block. Очевидно, что для рандомной три в ряд это нахуй не нужно. Можно было бы собрать несколько анонов где-то в тг и вместе ебаться в жопу обсуждать такие нюансы, но я же тогда неминуемо мутирую в конфоблядь.
[SerializeField] private float x;
public float x;
GoldSource
Проиграл с долбаеба.
Сначала в редакторе налрачиваешь нудное значение, потом в коде пишешь
Приват ридонли флоат хуй = 1488
Паблик ридонли флоат залупа = 228
Есть же const float, зачем приват ридонли?
Да без разницы. Зависит от твоих требований.
Если поле не используется другими объектами, то его логичнее скрыть через privat. Но в твоей жизни от этого ничего не изменится.
>скиннед меши не поддерживает
Если изъябнуться, то можно сделать.
https://docs.unity3d.com/Packages/com.unity.rendering.hybrid@0.7/manual/mesh_deformations.html
Это невероятно круто, что оно есть. Точно так же, как уже давно показывали запекание анимаций в текстуры для "чистого ецс". Даже больше скажу, я уже год назад вскрывал экстремально ранний пакет для ecs анимаций. Но именно полноценной поддержки всё равно нет. Тот же меканим не поддерживается, хотя он dots-ready и использует simd библиотеку.
Не, ну реально, я джва года ждал, пока завезут возможность верстать интерфейс как в вебе с css. Запилили, а как пользоваться хуй знает. Если есть тут ведающие за сию технологию, буду рад услышать ваши наставления.
Простая задача: в рантайме по нажатию на кнопку показать окно и в нем список элементов. Раньше это делалось просто - закидываешь в скрипт префаб окна, префаб элемента, инстанциировал, установил родителей, задал элементам данные, отобразил. Как то же самое провернуть на Visual Elements?
"Как было раньше" я часто просто не понимал. Если пытаться запилить что-то сложнее счетчика очков в углу экрана, это было пыткой ебучей заставить все выглядеть так, как ты хочешь. Компоненты Layout group работали хуй поймешь по каким законам, как и якоря у самих элементов и их скейлинг. Ты может не встречался с этим, если не пытался в динамическую генерацию элементов интерфейса, а я в этом говне уже прилично варюсь.
В UI Toolkit строгая иерархическая структура как в вебе, понятная интуитивно (тем кто из макакинга пришел как минимум), + все элементы интерфейса по умолчанию флексбоксы, а это ебать как упрощает еблю с позиционированием элементов внутри них.
У веб-макаки бомбануло.
По моему это говно, как и половина того что высрали юнитеки в 18 году (input system, ecs) просто заброшено и этим никто не пользуется. Вау адаптивная верстка. Вау 100к рыб на экране. Пару пятиминутных туториалов уровня перепишите код с экрана, 0 документации, 0 интереса в дальнейшем развитии со стороны юнити. Ну и зачем тогда с этим ебаться. Не хотят они чтобы этим кто-то пользовался.
Спасибо, анон, я затупил
>как быстро башка прояснится
Я в своём познании настолько преисполнился, что как будто бы уже 100 триллионов миллиардов лет пилю на этой хуйне.
>Как то же самое провернуть на Visual Elements?
Гораздо сложнее всё делается, лол. Но на практике ты можешь сверстать всё заранее, у тебя же есть ассет. Пилишь UXMLTemplate, к нему USS хуяришь и всё готово. Я вот кодом всё делаю, так проще. Лол, нет.
>>756134
Предыдущий юи был основан на ГО, а каждый ГО просаживает перформанс. Даже если это пустышка без рендерящихся компонентов.
>строгая иерархическая структура как в вебе
Новый же юиэлементс хуйня невыразимая, потому что вебговно это вебговно. Но юнитеки взяли от вебговна худшее. Единственный профит это перформанс.
> каждый ГО просаживает перформанс. Даже если это пустышка без рендерящихся компонентов.
Ну и сколько ты посадишь в итоге, посмотри в профайлере. Мне сложно даже 100 активных ui компонентов представить, просто не на что столько. Часть элементов 99% времени неактивна, часть оптимизируется разными изъебами (как в больших списках), часть это постоянные 0-10 hud элементов. Опять оверинжинирингом занимаетесь на пустом месте.
>Опять оверинжинирингом занимаетесь на пустом месте.
Вообще да, но нет. Да, старый гуй достаточно хорош и я на нём делал всё то же, что и на новом без заметной разницы в производительности. Но всегда хочется расти.
>Мне сложно даже 100 активных ui компонентов представить
Смотри, первое окно это 174 ячейки, в каждой картинка, бекграунд картинка для обозначения качества плюс в некоторых текст. Батчинг срабатывает только в том случае, когда нет оверлаппинга элементов. Так что мимо. Рисовать на гпу текстуру и выводить её за 1 дк тоже не вариант, потому что интерактивность, драг-н-дроп, тултипы и прочая. Плюс поверх каждого непустого элемента нужно расположить прозрачную плашку. Плюс я реально знаю игру, в которой выключение UI даёт прирост в 10-20 фпс.
Если будешь перебирать попиксельно, то имей ввиду, что GetPixels работает быстрее, чем GetPixel.
Ок, спс
Спасибо.
Я только начал на самом деле разбирться. Читаю документацию, листаю примеры.
Может подскажешь, где посмотреть как все это работает вместе? На полноценной пусть и мелкой игре. Искал на гите, чет все двухгодичной давности.
Если бы он рассказал как запилить игру в вк то почему бы и нет
Слушай анончик, а как сам объект интерфейса показать в скрипте? У тебя же инвентарь не всегда на экране висит, его можно открыть-закрыть. Как это сделать?
Если бы я нашёл рабочие примеры, то я бы использовал эту систему, анончик. На гите есть относительно рабочие вещи, но анимация, если не ошибаюсь, шла скриптами.
>двухгодичной давности.
Там должны быть паки месяцев шесть давностью, посвежее.
>>756305
>UiElement.SetEnabled(false);
>UiElement.style.visibility =Visibility.Hidden
Первое выключает получение событий и делает окно серым. Второе полностью скрывает с экрана. Ну и наоборот потом делаешь.
Остальные тэги спокойно работают, флаг Rich text включен. Версия Юнити 2021.1.15f1, TMPro стоит последней версии - 3.0.6
Блядь, запустил на 2020 Юнити и всё заработало...
И как мне теперь это все даунгредить, это же ад в юнити
А всё, я сам еблан, когда менял путь к шрифтам, а затем вернул обратно, то поставил "Fonts & Materials", а надо "Fonts & Materials/"
Например так получаю направление из "верхнего" слоя аниматора:
var clipInfo = anim.GetCurrentAnimatorStateInfo(0);
if (clipInfo.IsName("Idle_N"))
{
direction = "N";
}
А если у меня вместо стейта "Idle_N" - "Idle" и внутри него ещё четыре анимации в дереве? Как получить какая из них играется в данный момент?
Я перемудрил, мне всего лишь нужно было направление, в котором смотрит перс. Прицепился к float-ам в верхнем слое аниматора, которые и влияют собственно на это дерево и задача была решена.
Но как залезть внутрь дерева всё ещё загадка.
Первая ссылка в гугле по запросу "GetCurrentAnimatorStateInfo blend tree" отвечает же на твой вопрос
Как я понял, если через CanvasGroup установить alpha = 0, то рендер отключается.
>Если альфа на 0, он продолжается
Нет. Именно CanvasGroup полностью отключается рендринг. Можешь через профайлер чекнуть.
Точно. Я перепутал просто с альфа каналом у элементов, лол.
Но вот сейчас в одном скрипте подписался на обратный вызов, перешел в другую сцену(объект вместе с повешенным на него скриптом потерся). Тут прилетает обратный вызов и оказывается, что скрипт-то с потертым объектом прекрасно работает и пытается запускать повешенные на обратный вызов методы, которые в свою очередь пытаются двигать удаленные в предыдущей сцене объекты..
Чет какой-то пиздец, нихуя не понимаю зачем было так делать
>зачем было так делать
>юнитя должна знать что мне надо и должна сама отписываться от эвентов в нужные моменты
Если хочешь по-настоящему охуеть от архитектуры юпити, то прочитай про переопределённые операторы
https://docs.unity3d.com/ScriptReference/Object.html
Я как-то долго отлавливал один волшебный баг. Пока не узнал про эту охуительную особенность юнити-объектов.
В доках это поведение описано, потому что операция сравнения с null показывает "уничтожен" объект или нет, у базового Object состояние всегда уничтоженное, меняется только классами наследующими Object при инициализации. То что этого не знаешь конкретно ты это твои проблемы.
Когда примерно допилят?
>То что этого не знаешь конкретно ты это твои проблемы
Наитупейшая отговорка на любой случай.
>В доках это поведение описано
Да, если знаешь, что искать. А узнаешь ты об этом, когда придётся дебажить код и выяснять, почему вдруг срабатывает проверка на null.
Сами юнитеки признали проблему. Многочисленные вопросы от разработчиков говорят о том, что это проблема.
Есть ожидаемое поведением '=='. И если опытный программист, который знает про определение операторов, ещё может догадаться, то для новичков это вообще трагедия.
>Наитупейшая отговорка на любой случай.
Поумнее позиции когда всё равно что написано в доках потому что ТЫ СКОЗАЛ что должно быть по-другому
>Почему вдруг срабатывает проверка на null
И в какой такой задаче тебе надо было проверять голый Object на null?
Очевидно движки должны соответствовать какой-то базовой спецификации, а надстраивать сверху могут что угодно.
>голый Object
Это проблема всего, что наследует от Object. В том числе MonoBehaviour. Если используешь .? или ??, то будет проверка ссылки на null. Если используешь == null, то будет проверка уничтожен ли объект на сцене. Что вообще неочевидно. В ui они додумались для этого добавить отдельный метод IsDestroyed.
> ВСЮ архитектуру сейчас переделывают. Все системы переводят на DOTS.
> новый адекватный UI пилят.
Толсто.
А что не так? Новая физика на дотс. Новая звуковая система на дотс. Анимация на дотс. Рендринг на дотс. Новая сеть на дотс. Сам юнити собираются в конечном счёте перестроить под разработку на дотс. Другой вопрос, какого хуя они так медленно всё делают.
> какого хуя они так медленно всё делают
У маркетологов была задача максимально расфорсить говно для неофитов. О том что это кто-то будет делать вопроса не стояло.
>какого хуя они так медленно всё делают.
Ты пробовал на дотсе что-нибудь сделать? Он давно доступен превью пакетом. Вот скачай сделай, скажем, первый уровень из марио на дотсе, а потом придешь в тред и расскажешь как оно и стоит ли сейчас "все системы переводить" на дотс.
Подойдет ли мне для этого юнити?
Да. Но как понимаешь основная сложность в арте, а не в реализации этого в дивижке.
да, думаю о том, что для ранней версии поставить просто какие то спрайты с инета, а потом заебаться, и либо самому рисовать, либо попросить подругу
Игра 2д если что.
С практики начинай.
Так тебе же и нужно пол экрана ч/б. Вообще, лучше натянуть ее на весь экран и просто половину сделать ч\б, а другую половину нормальной, с красивым переходом.
У меня есть моделька сооружения и мне необходимо сделать сквозной проход в ней. Какие способы простые и рабочие способы реализации этого возможны?
Вот только недавно за репост клипа рамштейна посадили долбаеба, до этого тоже кого-то сажали. Если надо будет, то посадят
> Знаешь, порно игр вообще нормальных нет. Ты посмотри что там в топах на всяких f95, это же ужас.
Забыл мысль завершить. Если выпустить просто игру без ужасного уебищного 3д сделанного безруким, и закончить ее, а не делать спустя 5 лет только версию 0.234.62, то тебя только за это все облабызают и полюбят
А причем тут рамштайн? Мы же говорим про производство порнографии. Ты же это имел ввиду?
К РФ Статья 242. Незаконные изготовление и оборот порнографических материалов или предметов
Или ты игру только для себя делаешь и в интернет выкладывать не будешь?
Как с этим связан клип рамштайн? И опять же, закон конечно есть, но в России дохуя людей производят порно. Думаю если я не буду выкладывать всё под своим именем, то ничего не будет.
>Как с этим связан клип рамштайн?
Ты тролишь что ли? Статью бы хоть открыл. В оборот входит также и распространение порно, что также наказывается от 2 до 6 лет. Репост клипа = распространение. Выкладывание в инет порно игры = распространение.
А как ты деньги с нее получать будешь? Пейпел? Он прозрачный, налоговая все видит. Биткоин? В ЕС он уже почти прозрачным стал, в россии тоже вангую будет, да и никто не будет платить тебе в битках, всем лень заморачиваться. Сейчас гайки все закручиваются. И да сейчас еще не сажают, но ты уверен что все будет также через лет 10? Нахуя создавать копромат на самого себя, ради хуй пойми чего?
> Ты тролишь что ли?
Бля, всё я вспомнил, у них же был клип с еблей. Я вообще забыл об этом, думал ты про какой-то обычный клип говоришь
> И да сейчас еще не сажают, но ты уверен что все будет также через лет 10?
Мне кажется ты слишком драматизируешь. Кстати, видел игры от русских разработчиков с патреоном, не знаю уж как они выводят с них деньги, но явно как-то они это делают
Думаю хованский тоже так думал лол. Если будешь пилить игру, то хотя бы без школьниц делай, за детское больше срок
Ну я же не буду выкладывать игру, а рядом приписывать автор такой-то, родился тогда-то, вот паспортные данные и фото.
Хованский это другое дело, он личность публичная и делал все прям на камеру. Тут и это сыграло роль, и то что он известен, то есть можно как бы припугнуть остальных этим случаем, так как 100% все узнают про это.
И опять же, ну неужели в России нет порноделов по твоему? Да их полно, но за порно по моему вообще никого не судят (я про всяких рисовак, аниматоров и игроделов из интернета)
Прочитай следующее предложение
Да ты не понял, я не говорю что всех подряд сажают за это. Но если захотят, то у них уже будет готовый компромат который ты сделал сам, понимаешь? Хуй знает может ты через лет 15 дохуя политиком\бизнесменом\медиаперсоной будешь, думаешь не найдут твои порноигрульки?
Ты отчасти прав. Но опять же, как они эту игру свяжут именно со мной? Аккаунт на ф95 не на основную почту, ники везде разные и т.д. Тем более через 15 лет все следы затеряются еще больше. А может я вообще в другой стране уже буду жить. А уж если захотят все таки, то не все ли равно за что, хоть за порноигру, хоть наркотики подкинут, всё равно посадят ведь
Управление/Осмотр джойстиком, кнопки действия/Умений небольшие. Смотри на примере популярных мобилок, и просто перенимай расположение, всё продумано до нас.
Да расположение то понятно, на скрине как раз какая-то мобилка. Я имею в виду как правильнее сделать через Event trigger, Ui.button, Get.Touch или еще как? Или вообще похуй?
Самый простой способ - шейдером.
Ну ип тогда открыть, никто же не будет проверять что ты на самом деле не делаешь на дому условные ноготочки, а собираешь донаты с потреона
>https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Но понимаю, что просто поток теории не могу осмыслить, есть ли возможность как-то разбавить это практикой? Или пока просто забить, кое-как выдрочить туториал, а потом идти делать простенькие задачки?
С ИП еще более прозрачно все станет, если хочешь пили, но не говори потом что анон тебя не предупреждал что нарушать закон - плохо
Начни пилить простую игру, все всплывающие вопросы гуглишь, если знаешь английский, то проблем не будет.
Хорошо, я тебя услышал, но неужели нет способа нормально получать деньги с такого контента, который даже ты посчитал бы достаточно безопасным?
Я уже позумил все вручную, до походящего размера, но я что-то не пойму как это сделать правильно. Как установить размер камеры в условные 800х600? В гугле не могу такого найти, может я не туда копаю?
Либо меняй разрешения канваса, либо делай им род.Обьект и его скалируй, пото удаляй.
>>757473
Делаешь в аниматоре вход в пустой клип, а нужный запускай из скрипта.
>>757458
Как уже написали, попробуй сделать что-то простое по типу: Главное меню-Игра клацать по появляющимся картинкам-Очки-Титры. И сразу познаешь кучу всех ньюансов.
>>757277
Прочитай как работают джойстики, и не задавай тупых вопросов.
> Либо меняй разрешения канваса
от души анон, пофиксил шрифты вот этим. Было 1, сделал 5 и охуенно стало. Я правильно понимаю, что в теории это будет влиять на производительность если там дохуя обьектов (хотя откуда бы им быть в юайке)?
> либо делай им род.Обьект и его скалируй, пото удаляй.
имеешь ввиду ебнуть всем общего парента и поскейлить? Я пробовал, вышли какие-то ебнутые привязки элементов к нему, я не разобрался как понять кто к кому приявязан, в итоге так перенес, благо обьектов мало было. Да и префабы, как я понимаю, только руками и можно поскейлить?
>Прочитай как работают джойстики, и не задавай тупых вопросов.
Причем тут нахуй джойстики? Кнопки справа тоже джойстики? Не давай тупых советов лучше
Как гуглить руководство по созданию спрайтов, чтобы с прозрачностью и прочим? Во всех тутлриалах люди используют уже готовые спрайты.
Храни тебя господь, спасибо.
подскажите кто шарит - сильно ли палит стим компоненты типа speedtree с торрентов?
Как заставить отработанный спрайт исчезнуть/удалить?
Создал префаб взыва через анимацию спрайта, сделал метод который запускает анимацию после попадания пули,
spawnPos += new Vector3(0, 0, 0);
Instantiate(PrefabExplosion, spawnPos, Quaternion.identity);
Destroy(gameObject);
Но он не исчезает после взрыва остаётся последний спрайт с дымкой, как это пофиксить? Или просто добавить ещё один спрайт с прозрачным фоном?
Ебаная вижуалка и ебаный юнити не дает мне это сделать. Как можно выйти из ситуации?
Спасибо
Я имею ввиду саму кривую. Допустим, я сделал прыжок противника на платформу, но он слишком полого двигается, типа, как будто просто перешагивает через пропасть или наступает на уступ (который в 2 раза выше его самого). Я хочу более изогнутую кривую перемещения
смотри урок про Ruby и юнитековском туторе, там есть как ГГ с лягухой базарит
идем в Animation привязанную через Animator к нужному нам объекту(предварительно его выбираем!)
Жмем значек Add Event (слева, крайний правый в нижнем ряду - "столбик с +") или правой кнопкой по полоске справа, куда кидаем спрайты.
двигаем событие в нужное место по полоске со спрайтами (на самый последний в нашем случае)
Теперь из выпадающего списка выбираем функцию OnDestroy()
Создаем скрипт и вешаем его на нужный нам объект, внутри пишем функцию
public void OnDestroy()
{
Destroy(gameObject);
}
Теперь при запуске анимации, когда она дойдет до последнего кадра, объект будет уничтожен вместе с его анимацией
Не пользуйся Instantiate/Destroy, это пиздец ресурсы отжирает, особенно на мобилках. Используй пул обьектов
Если коротко, то вместо того чтобы каждый раз создавать новый обьект и уничтожать его, ты берешь из пула уже заготовленный и используешь, а когда он становится не нужным, то деактивируешь и убираешь обратно в пул.
Вот тут охуенно расписано:
https://www.raywenderlich.com/847-object-pooling-in-unity
как я понял, это актуально, когда у тебя куча анимаций в кадре одновременно. а когда всего 1-2 в секунду, то можно и через дестрой делать?
Это почти всегда актуально, особенно когда много обьектов. У тебя же герой не один раз за игру стреляет. Каждый раз при выстреле создавать новый обьект процессор с ума сойдет. То же самое со спавном врагов и их пуль.
Нихуя круто придумали. А чому юнити не умеет это из коробки?
Выглядит очень просто для универсальной реализации, вплоть до того что могли бы навешивать кеширование всем обьектам прям во время игры, если движок видит что обьект реюзается больше N раз на X времени.
Хуй знает, наверное не за чем, реализуется очень просто же
>Нихуя круто придумали. А чому юнити не умеет это из коробки?
Надо ассет запилить и торговать им в химках сторе.
Как правильно делать в таком случае?
>Есть скрипт PlayerInput, который берёт инпут и дережирует другими скриптами.
>Есть интерфейс iWeapon
Я так перестал делать. Только лишняя зависимость. Я теперь всю логику делаю внутри компонентов. Конроллер сам берет инпут и сам себя обновляет. Оружие само берет инпут и само себя обновляет и т.д. Так удобнее.
У тебя так и так должна быть задержка перед повторным выстрелом. Так что просто внеси её в логику оружия. А от аниматора вообще никто не должен зависеть, это самая последняя ступенька, куда только команды от логики приходят.
Или придерживаться шарповых и не ебать голову?
мимо вкатывальщик, никогда не писал на шарпе больше условного калькулятора, но язык выглядит простым как хуй, благо имею 15 лет опыта на других мовах
Поставь райдер, он подсказывает что с какой буквы писать по код конвеншену.
Пиши хуй знает как и не еби голову. Пиши CamelCase, но всем говори, что это pascalCase. А за андерскор можно по ебалу получить. Если не ставить, естественно.
Используй современный коде-стайл сишарпа. Публичные поля с большой буквы. Приватные с префиксом '_'. И тому подобное.
Через Screen Space - Camera пробовал?
А кроме ифа в апдейте вариантов нет. Есть корутины, но под капотом это иф в апдейте. Можно запустить дочерний поток, но из него не будет доступа к апи движка. Гугли ecs и ебись в жопу.
А нет варианта вызывать функцию во всех скриптах, которые имеют в себе эту функцию?
Есть, через рефлексию собрать все скрипты в сборке, найти в них нужную функцию и дёргать себе анус. Лучше так не делать.
Ладно. А, допустим, обратиться ко всем объектам, которые имеют определенный скрипт (или, например, по тегу) и дёрнуть их? Я не хочу чтобы скрипт передавал сам себя при создании в контроллер, должен же быть способ проще
>обратиться ко всем объектам, которые имеют определенный скрипт
Это же дефолтное поведение. Такое же поведение у ecs. Я не понимаю, чего ты хочешь.
>скрипт передавал сам себя при создании в контроллер
Видел тут еблана с триллионом событий? Он это я. У меня скрипты подписываются на событие апдейта монобеха. Есть мизерная хуитка, на которую подписан триллион скриптов и это всё как-то работает. Из минусов - все минусы подобного подхода.
>Я не хочу чтобы скрипт передавал сам себя при создании в контроллер
Пусть контроллер сам создает нужные объекты и хранит созданные у себя в списке, вот у тебя и будет список объектов который ты будешь обрабатывать в цикле.
>Дефолтное
Прошу прощения. Это можно сделать не прибегая к ECS? Выше же писали, что придется все скрипты собирать
Можно попробовать что-то типа FindObjectsOfType<Твой скрипт>(), но если это надо делать в update, то думаю это фейл
мимокрокодил
Да, я про тоже. Придется собирать все скрипты, а мне, допустим, надо раз в пару кадров этот фокус исполнять, да и не гибко получается - придёт удалять из массива при удалении объекта с кодом, геморройно...
Ты, скорее всего, что-то делаешь через анус. Дважды подумай, так ли нужен тебе этот второй апдейт. Если прямо пиздец, как нужен, то создай определённое событие с глобальной областью видимости. Вызывай это событие корутиной и подписывайся на него из своих скриптов. И отписывайся, соответственно. Но это всё равно иф в апдейте, бтв.
>придется все скрипты собирать
Не обязательно, если в каждом монобех скрипте в апдейт добавить иф.
У меня сотни объектов, я просто не хочу каждый кадр исполнять сто лишних ифов
>придёт удалять из массива при удалении объекта с кодом, геморройно
Ничего себе, из массива объект придется удалять. Зачем тебе такие сложности, в макдак лучше иди, там спокойнее и проще.
Значит делай менеджер, который единожды выполнит один иф, а затем уже пройдётся по всей твоей сотне объектов. Но ты укрепил моё мнение, что у тебя что-то реализовано через анус.
Врагов
Не, просто над безыгорным дауном пришел посмеяться.
>У меня сотни объектов
Преждевременная оптимизация. Пока у тебя объекты не будет исчиляться тысячами, можешь даже не париться по поводу индивидуальных апдейтов. Разницу все равно не заметишь.
Алсо, в юнити есть удобная функция Profiler.BeginSample(). Можно обернуть любой код и посмотреть сколько он выполняется в профайлере
>Хочу сделать отдельный Update, который будет вызываться в определенных случаях. Как так сделать?
Это называется СОБЫТИЯ
Нет проблем.
Ты можешь в дочерних процессах делать всё, что угодно, кроме того, чего ты делать не можешь. А именно, у тебя нет доступа к апи движка ни из какого потока, кроме основного.
Мне правда нужно руками удалять блоки с спрайтами с одной стороны и добавлять с другой? Юнити не умеет в такую хуйню из коробки?
А как ты это представляешь? Картинку с разрешением 9999999х999999?
Конечно это реализуется дублем блоков, но как это сделать есть разные способы, и под разные задачи подойдёт своё.
Ну ведь ты даже уже сам всё нагуглил, сделай тоже самое как в тех видосах и занимайся себе геймплеем дальше, или ты к чему-то конкретному клонишь?
Я довольно конкретно спрашивал есть ли другой способ, кроме как писать код руками. Я та еще ленивая мразь, хоть тут и интересно напилить так что бы красиво и оптимально было, но это займет время, которое я лучше потрачу на геймплей.
ну или можно пизданть готовую либу из стора, но как-то зашкварно что ли
Юнити это не гамакер какой-нибудь, тут практически ничего не реализовано просто так, под любую хуйню либо код пиши, либо ассеты покупай
>надо скачивать студию и писать код, мне правда руками это надо делать?
Можешь кому-нибудь заплатить чтоб это сделали за тебя.
Я ожидал что юнити это реализует за меня.
Да в общем то дохуя чего реализовано, я поэтому и спрашиваю, что тут дохуища менюшек и настроек, что бы не городить костыли.
Можно шейдер сделать, но ты не осилишь. Можешь сделать анимацию для своего бекграунда, которая будет скролится в сторону, на ровно такое расстояние, чтобы в конце оказываться визуально там же, где и вначале.
Хз, с одним материалом все отображается на фоне ui и в камере, заменяю в партикле материалал на другой, либо вообще перестает рендеритбся в камере, либо рендерится, но тошько на заднем плане, за элементами ui. При этом эти же материалы используются в самой игре, там все отлбражается.
Так поулчается, если отключен shape. Если включить, то отображается нормальной. Но мне нужно чтобы частицы были строго на одном месте, как в shape это сделать?
При чем тут шейп вообще, убери у них велосити и физику и будут на одном месте
Спросил и понял что проще всего наверное создать в фотошопе фуллхд картинку, отрисовать там все и провести замеры
>Делаешь в аниматоре вход в пустой клип, а нужный запускай из скрипта
Как запустить клип из кода? Соре,не вижу метода нужно.
Речь о 2д, проверял даже на гифках всё плавно, но движо пидорасит спрайты
Параметр bounciness помог, но я сомневаюсь что в реальном мире бильярдные шары очень прыгучие.
А что сложного? В апдейте проверяешь не вышел ли обьект за границы физической камеры, либо же триггером/коллайдером.
По быстрому вот что можешь в гугл засунуть и почекать ссылки: unity camera object leave view.
GameManager.DelLife () (в Assets / Scripts / GameManager.cs: 74)
что ему надо? Я всё связал. Эта хрень возникает когда я из сцены в сцену перехожу
Ну так и проверяй что случается с обьектом на котором скрипт висит после смены сцены
У тебя что, юнити на русском?
Целесообразно ли использовать в update поиск двух массивов объектов по типу и в нем же искать дистанцию между каждым элементом одного массива с каждым другого, сильно это повлияет на производительность? Есть альтернативный путь?
в настройках спрайта где-то должна быть галочка про альфаканал, если она не стоит то все полупрозрачное/недостертое будет белым
Если я потом буду продавать игру в стиме? с первых денег с игры сразу бы купил этот ассет потом
А если менять? Ну то есть без ecs.
Да. Заблокируют доступ к юнити и вышлют к тебе высокооплачиваемого юриста, чтобы ты всё признал.
Если это не снижает производительность то целесообразно делать что угодно.
Это entity component system, иной подход к написанию приложения. Который позволяет легко параллелить вычисления и вообще заебись, хорошо сделоли.
>А если менять? Ну то есть без ecs.
Тогда тебе нужен какой-то оптимизон. Высчитывать 60 раз в секунду для каждого объекта это пиздос ну или сколько там у тебя фпс будет, полный перебор это квадратичная зависимость. То есть шаг первый - ебануть корутину, которая выполняется немного пореже. Шаг второй - разделить количество вычислений на два. То есть высчитываем расстояние от точки А до С, находим, когда доходим до точки С - расстояние до А уже найдено. Третий шаг это деревья, но тут уже земля тебе пухом. Если ты сформулируешь не то, что ты хочешь сделать, а для чего ты хочешь это сделать - то скорее всего окажется, что рассчитывать расстояния между точками тебе просто не нужно.
юзлез говно от маркетологов
Юнити аналитикс чекает много инфы о каждом твоём проекте в хабе, и шлёт её. Но по опыту могу сказать, покак личная претензия от создателя, либо большие деньги не появится, всем похуй.
Тут один анон пару тредов назад писал с пруфами о судебном уведомление, правда, от самой юнити корпарейшен, а не от васяна-ассетчика.
Без скриптов в местах перехода никак, либо же пилить универсальную систему под это, но там не только лучи, но еще и слои надо будет юзать для детекта.
Вот так навскидку приходит в голову только чекать столкновения с коллайдерами и проверять высоту препятствия относительно персонажа.
>конкретную точку забора, за которую зацепится орк?
Так у тебя есть точка коллизии, проигрываешь анимацию цеплянию. Руки-ноги доводишь инверсной кинематикой.
Спасибо за ответ, попробую реализовать.
Повесить Physics Raycaster на камеру и пользоваться IPointerEnter и остальными методами
Парни добавьте в шапку ссылку на книгу - Разработка игр на Unity за 24 часа, книжный вариант. Я уже несколько книг прочитал по юнити и для меня эта стала просто настольной библией. Без сарказма, каждый час это отдельный кусок знаний по движку, впервые сделал по ней свою маленькую игру, без туториала.
https://assetstore.unity.com/packages/tools/particles-effects/shapes-173167
Кий толкает шар, какую ещё нужно силу придавать? Контакт шара с кием нормально работает.
Бумп.
Мож кто алгоритм тогда подскажет, или асссет на сторе? Мне ничего лучше, чем сделать мешколлайдер для всех путей и навесить капсулу на камеру, на ум не пришло.
Спасибо большое, дело было в галочке.
Делаю типо 2д изометрию.
Сделал аниматор контроллер и скрипт к нему (кусок пикрил) по туторам, но есть проблема. Работают анимации только в четырех направлениях ,вверх вниз, вправо влево, а наискосок (вправо-вверх, влево-вверх, вниз-влево, вниз-вправо) они не проигрываются.
И еще в целом анимации меняются с задержкой, тоесть герой побежал уже допустим, а анимация с спокойствия сменяется на бег только через секунду после начала передвижения. Пробовал менять параметры Exit time, прерывания, ничего не помогает. Чего-то я не понимаю.
>а наискосок они не проигрываются
Ты с питона какого-нить чтоли пришол? Почитай про приоритет операторов в шарпе.
>анимация с спокойствия сменяется на бег только через секунду
Лично меня заебало ебаться с Exit Time, и я просто подрубаю все анимации к Any Stete.
>Работают анимации только в четырех направлениях
ААААА, БЛЯДЬ! ААААА!
Это если коротко. Если развернуть, то просто твой контроллер хуйня. Разбери его на запчасти. Двойные проверки какого хуя и нахуя? Потом сделай свитч, в котором сходим в состояние раннинг, а потом уже чекаем, куда. Если вперёд - то чекаем, вперед и вправо\лево или просто вперёд. У меня это реализовано просто через вектор мувдирекшн, но у меня ториде, для спрайтового 2д неудобно будет.
>Exit time
В самом аниматоре галочку has exit time снял?
Хуита. Я вчера Unity In Action начал и уже с первых глав заинтересовало, так как они сразу коснулись скриптов и как это все связывается, можно прям сходу какие-то куски геймплея писать. В твоей же книге я 100 страниц пролистал, а они все рассказывают как свет расставлять, что такое материалы и как горы рисовать. Совсем как-то тухло.
Гугли Newtons Cradle Balls, там будет нужная тебе физика.
https://www.youtube.com/watch?v=--GB9qyZJqg&
посмотри как этот чел делал ноги павуку. Там какая-то адаптивная хуйня для нахождения ближайшей точки куда деть лапу. Я давно видос смотрел, не помню деталей, специально для тебя нашел, может поможет.
Из функционала меня интересует собственно возможность ленты новостей с превью постов (по тапу открывается полная статья), превьюшками видосов (по тапу открывается ютуб) и картинками (просто статичные арты без взаимодействия с ними). К ньюсфиду я бы ещё хотел прикрутить логирование и смотреть, какой юзер куда зашёл, в какое окошко тыкнул и какие новости читал.
Конкретно по реализации такого функционала вопросов нет - найду готовый продукт и встрою, либо напишу сам.
Вопрос у меня здесь в архитектуре такой штуки. Как я понимаю, тут два варианта: либо нативное встраивание в клиент (готового или самописного решения), либо вебвью - нарисовать веб-страничку со всей нужной мне инфой и структурой и просто встраивать её в вебвью. Какой из этих двух вариантов лучше выбрать? Из очевидных минусов как я понимаю - для каждого обновления ньюсфида мне придётся перезаливать клиент, а это двухнедельные проверки билда в аппсторе и прочая поебень. И кажется, в этом плане гораздо проще встроить вебвью, но мб у него есть какие-то минусы? Вроде я слышал, что на айоси есть проблемы с поднятием вебвью на юнити, так ли это? И как в случае вебвью быть с пробросом метаданных игрока для логов, возможно ли вообще из игры сообщать вебвью-контейнеру userid?
Хость джейсон с фидом хоть на гитхабе, просто тяни его клиентом и отрисовывай нативно. Нужно добавить что-то в фид - обновил джейсон без релиза аппы и готово. Локально можешь айдишник последнего прочитанного айтема запоминать и какую-нибудь логику отображения вокруг этого строить.
>К ньюсфиду я бы ещё хотел прикрутить логирование и смотреть, какой юзер куда зашёл, в какое окошко тыкнул и какие новости читал.
Шпион какой, не одобряю. Хотя бы разрешения пользователя спроси.
Мимо айос-разраб, юнити только вчера поставил
Кароче основной алгоритм уже разобрал, единственно не могу заставит центровать спрайты по центру, чттобы один спрайт не накладывался на другой.
Вычитал о Mathf.RoundToInt, но она почему то не работает.
Может кто знает чего?
Если у меня загружена сцена игра - то статистику игрока не уничтожаем.
Если у меня загружена сцена Меню - то уничтожаем статистику
void Start()
{
if(SceneManager.LoadScene("Game"))
{
DontDestroyOnLoad(this); //не уничтожаем объект при переходе из уровня в уровень
}
if(SceneManager.LoadScene("Menu"))
{
DontDestroyOnLoad(this); //не уничтожаем объект при переходе из уровня в уровень
}
}
Нихуя не понял. Так и сделай статистику только в сцене игры и при переходе в меню она сама отлетит
Статическое поле
Как ты представляешь ответ на этот вопрос? Учи где хочешь - книги, ютуб, статьи, форумы, преподаватели, курсы. Как долго от тебя зависит и от того что ты хочешь от юнити
>Где учить C# для юнити новичку?
В шараге для быстрого прогресса.
Самому по ютубу и книгам для долгого и ленивого вката
>И как долго?
Я надеюсь ты тролишь. Синтаксис можно за месяц освоить, а логике ты можешь ни научиться никогда.
Мдаа, лучший движок.
(Автор этого поста был предупрежден.)
>Посоветуешь годные книги?
По С#
Мюллер Д. П. C# для чайников
Учишь максимум до списков.
По юнити
Разработка игр на Unity 2018 за 24 часа | Гейг Майк
Не жлобься и купи книжные версии этих книг, максимум выйдет 3и тысячи, но они того стоят.
С
На дваче, очевидно же.
Я не знаю что делать уже 4 е раза устанавливаю юнити 2020, перед этим я полностью удалял и хаб и предыдущие версии и в реестре всё чистил, я не знаю в чём проблема, помогите установить движок.
Что я бы попробовал в данном случаи.
1. Погуглить текст ошибки частями копируя его.
2. Удалить юньку, почистить клинером, перезагрузить, и только потом установить, хаб трогать не надо.
Скорее всего какой-то не частый баг, я сталкивался с похожим, ебался долго, но у меня там залупа с андроидской хернёй была, просто винду переустановил и всё окей, но так делать конечно не надо, как последний вариант.
Если ты хочешь игры делать на юньке, то отбрось сразу РЕЗКО чтение всяких скучнейших книг к тому же устаревших.
Сейчас другой век. Самое просто - на оф.сайте смотреть видосике и повторять. Посложнее на ютубе искать серии создание игры с нуля(Важное уточнение-Сразу чекать что автор сделал чтото а не оборвалось на полуслове).
За свою жизнь не прочёл ниодной книги по шарпу, однако спокойно выучил его и сделал одну сетевую игру с сервером на зеркале и парочку индюшатины в стим, нужно лишь желание и время.
Скорее всего я в два раза старше тебя.
>>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. И конечно нет винду я переустанавливать не буду.
>нужно лишь желание и время
Правильно, топи конкурента в зародыше. Пусть смотрит офиц. туторы на сайте, только сначала пусть выучит язык чтобы понимать что говорят.
Пусть смотрит туторы рукомьюнити, и повторяет шаг за шагом в своё время я больше десятка таким образом "сделал" игр, только пусть сразу берёт второй моник или ноут чтобы постоянно не скипать туториал и движок.
Пусть по каждой мелочи лезет в утуб и гуглит, а не просто протягивает руку и открывает книгу на закладке.
>>760686
ороче всё верно
>а не просто протягивает руку и открывает книгу на закладке.
Тут у тебя ошибка, там не показана как делать игру в юнити, вообще от слова совсем.
Игра делается сборкой кучей стаффа, а кинги лишь даёт кусок текста которые ты еще и применить можешь не сможешь. Она не даёт тебе понятие как разбросать скрипты по сцене, как сделать зависимости между ними, что делать в сцене.
Единственная возможность начать делать игры почти с 100% вероятности для обычноанона это методом проб и ошибок по видео0гайдам делать также.
Единственное правильное замечание от тебя нужно небольшое понимание инглиша, это да, тому что почти всё гуглиться только на нём.
Ну и из полезного два моника тоже, но это не критично.
А свои книги можешь в помойку выбросить, это по типу вебинаров, куча инфы в перемешку с водой, а игру то ток делать будет?
>А свои книги можешь в помойку выбросить
Ты случайно не с экстримкод?
Спешный и прогрессивный.
Поясню на всякий, это было сказано в контексте : чтобы начать делать игры на юнити, худшее что можно делать это начать тратить время на книги.
Конечно книги не стоит выбрасывать если они полезны или это твой личный подход. Но время не стоит на месте, чтение книг менее эффективно чем гугление возникшей проблемы, или же просмотр решения в целом.
>>760830
челы у вас спор о двух разных подходах к вещам.
Один топит за практику, потом теорию, второй начинает с теории.
Я вот отношусь к тем, кто просто берет и делает, на ходу вникая что куда, но и понимаю и тех кто сначала выдрачивает теорию, хотя и считаю это не эффективным, в контексте разработки по, а то можно дочитаться до усрачки, а на выходе только пук.
Этот анон прав - пока дочитываешь, половина уже устарела. Надо брать и ебашить, читать книги имеет смысл либо если ты совсем нафаня, кода не нюхавшая, либо если ты уже ультра дед, которому нужно систематизировать знания полученные за годы и годы опыта.
Я тоже отношусь к тем
>кто просто берет и делает, на ходу вникая что куда
и в погромировании достиг неплохих результатов с таким подходом. Читать книгу чревато - можно заебаться и потерять интерес. Когда сразу делаешь и непосредственно решаешь самую ближнюю проблему - мотивация только разгоняется.
Однако видеоматериалы считаю раком ебучим, учить разработку по ютубу это пиздец. Выбор джентльменов - текстовые туторы и документация. Текст можно гораздо быстрее распарсить глазами и скипнуть ненужное, вернуться к чему-то и перечитать непонятный кусок гораздо проще. Не будьте зумерами, ютуб - не ответ на все ваши вопросы.
Несмотря на то, что я хуесосил книги, конкретно для юнити книга Unity in action мне показалась хорошим материалом для вката, лучше любых туториалов, которые я наискось пробегал ранее. Я, будучи юнити-нубом, начал ее недавно и таки она без лишнего говняка объясняет что к чему и заинтересовывает.
>учить разработку по ютубу это пиздец
Пользуясь случаем, хотел бы высказать своё мнение по этому поводу. Буду краток. Когда-то уроки были исключительно в текстовом формате, а потом, где-то в нулевых, пришла эра ютуба. Вся хуйня полилась в ютуб. Сейчас во многих случаях ты выбираешь между двух стульев - это сухая справка по апи, где нихуя не понятно, как использовать, что вообще происходит, иногда даже неймспейсы неизвестны, молчу уж о банальном примере использования. По моему мнению, текст без примера реализации - бесполезен. Либо видеоурок на ютубе. Смотришь такой видео и думаешь - МРАЗЬ, МНЕ НИХУЯ НЕ ВИДНО. ПИДОРАС, БЛЯДЬ, МЫЛЬНОЕ ЕБАНОЕ ВИДЕО, НЕ МОГ МЕЛЬЧЕ СДЕЛАТЬ? АХ, У ТЕБЯ И ТАК 144ПИ? ПИ-ПИ-ПИДОРАСИНА ЕБАНАЯ. За кадром же челик максимально унылым голосом с ебейшим акцентом что-то рассказывает. И мне сложно понимать, так как английский не родной, и ему сложно говорить, потому что родной у него индийский какой-то, блядь. Челик печатает какую-то хуйню, стирает, печатает заново, а скорость набора такова, что я бы ногой, блядь, написал быстрее. Пером. Каллиграфически. С завязанными глазами. Книги же это удел пидорасов с разных эвентов и зум совещаний. Да, это поможет вам пиздеть языком, но не писать код. Берёшь своими руками и ебашишь, вариантов других нет. Если что и читать, так это форумы с такими же долбоёбами, как ты сам. Любые нубские вопросы уже были обсосаны ещё до того, как ты выпустил батину сиську из рук, буквально на каждый твой вопрос уже готов ответ. Тебе может показаться, что ты ступил туда, куда не ступала нога человека, но скорее всего ты просто вступил в говно. Даже передний край юнити технологий, все эти дотсы и ецсы были обсосаны годы назад и реализованы в юнити ещё до самих юнитологов.
Неистово двачую про ютуб, сплошное рачье. Нет, есть конечно охуенные челы, которые без хуйни поясняют по юнити почившего берклиса только сходу вспомню, но это хорошо ровно до тех пор, пока показывают именно визуальную часть, в юнити много чего завязанно на это, но когда они показывают код - это пиздец.
двачую
И дальше что?
>Вы же тралите?
Походу нет. Устанавливаю в 5й раз 19у версию, в чём может быть баг, почему у меня старая версия 18года работала, а новая напроч не устанавливается?
Как это происходит? Ты в юнити хабе жмёшь installs/add он грузится и при установке ошибка?
Нет, всё загружается, но когда я создаю новый проект, то выскакивает 478 ошибок. Я подозреваю, что онити просто автоматически не устанавливает какие то пакеты и тепеь мне нужно найти эти пакеты и вручную их установить.
Что эти говнокодеры там сломали мне неведомо, неужели придётся откатываться обратно на 2019? Это можно вылечить?
Пришло время переустанавливать шиндовс.
У меня такое же, но не так долго. Но всё равно заметно, что каждый раз дольше нужно ждать до запуска
Юнити в этом плане просела. Жму стартануть проект, там сцена с тремя кубиками, хуй дождешься
Делаю все как в туториале, что в одном, что в другом.
https://www.youtube.com/watch?v=S6eRVwAtfOM&ab_channel=GabrielAguiarProd.
https://www.youtube.com/watch?v=OAfpDaAKVSE&t=188s&ab_channel=BinaryLunar
А вкладки 2D Renderer как на пике не появляется. Вроде и библиотеки скачал и все как они делаю. А ее тупо нет.
Как пофиксить?
На днях тоже ставил 2020 чисто пасмареть че там нового.
Так же прихуел от времени старта и в целом тормознутостью после 2018.
Диспетчер показывает что в это время ( Importing...) работает фаервол винды а не юнити. Т.е. юнити тупо ждет когда фаервол проверит все файлы.
Добавьте юнити в игнор список фаервола.
Сам проверять не стану, откатился обратно, не понравилось
Делаешь одно уникальное окно со скриптом. Оно принимает нужные данные и положение на экране в зависимости от заранее выставленных точек, либо координат в самом скрипте.
Оно не зависимо не от чего, при надобности можешь менять уровни для не перекрывания другими обьектами.
Двачую, что за хуйня у людей с юнькой, особенно новой. Всё работает как часы.
Когда проблемы появятся тогда и буду верещать, сейчас то их нет
> что за говно у вас место нормальных ссд?
А если графен будет пропукивать и 27фпс, нужно будет просто rtx3090 купить?
Нужно делать аниматор для каждого типа обьектов (постоянно анимированные и анимированные по клику), или для каждого конкретного обьекта? или вообще как-то по другому?
Чет туторы про анимацию все касаются именно врагов или героя
Да, если ты запускаешь ААА проект 2021 года. Сидеть на hdd в 2021 и жаловаться на медленную загрузку это тоже самое что сидеть с элт монитором 640х480 и говорить что картинка плохая
Ок, а теперь неудобный вопрос - почему 2019 у него запускалась нормально?
Или теперь Юнити не рекомендует использовать хдд?
Почему это не указано в фичах 2020+?
А чем неудобный то? Прогресс идет, если 2019 шла на хдд нормально это не значит что теперь все следующие версии должны оставаться на старых технологиях.
>Почему это не указано в фичах 2020+?
Не указано что? Что на ссд она работает быстрее чем на хдд? Может там еще и наличие мышки с клавиатурой надо указывать?
Пожалуйста подробнее что это за новые технологии о которых идет речь, из-за которых юнити стала идти так медленно что теперь необходимо наличие ссд для комфортной работы.
>Не указано что? Что на ссд она работает быстрее чем на хдд?
Что она работает медленнее чем 2019, ссд или хдд не имеет значения, т.к. не имеет никакого отношения к юнити.
Ты совсем ебанат или что? Абсолютно любая программа работает, блядь, быстрее на ссд чем на хдд. Что там нового они ввели что стала медленнее на ххд тебя ебет что ли?
Ты не поверишь, но Unity 3.5.5 на твоем калькуляторе еще быстрее чем 2019 будет работать. Вполне очевидно что чем дальше развивается движок, тем больше ресурсов в том числе и скорости ххд он требует
>С 2019 ничего не добавили, хули тормознее стало в три раза?
Добавили дохуя всего, должно ли это привести к тому что юнити стала хуже работать на калькуляторах? Я не знаю. У меня 2019, 2020 и 2021 одинаково работают
1. Удали пакет тест-фреймворк
2. зачисти папку PackageCache
3. Установи пакет заново, если он вообще нужен
4. Напиши сюда, что получилось.
>Разработчикам игр на Unity для закрытых платформ теперь нужна подписка Pro — её стоимость в год составит 1800 долларов
>В основном это должно коснутся разработчиков на Xbox, поскольку Microsoft, в отличие от Sony и Nintendo, не выдаёт специальные ключи с лицензией.
https://dtf.ru/gamedev/819589-razrabotchikam-igr-na-unity-dlya-zakrytyh-platform-teper-nuzhna-podpiska-pro-ee-stoimost-v-god-sostavit-1800-dollarov?comments
>Абсолютно любая программа работает, блядь, быстрее
Давление смеряй ебанат. Я как раз про это и говорил.
>>761304
Опять съезд на калькуляторы.
>Я не знаю.
Никто не должен ничего знать. Есть по факту тормоза.
Твои сравнения глупы, т.к. между 2019 и 2021 всего два года. А не 15 лет как ты пытаешься всем внушить.
>Никто не должен ничего знать. Есть по факту тормоза.
У меня нет тормозов. Между 1990 и 1991 вообще всего один год лол. Я не пойму хули ты хочешь? На ссд юнька работает нормально, почему новая версия медленнее работает на некому ненужных хдд я не знаю, думаю разрабам тоже похуй на людей с хдд. кто вообще будет ориентироваться на них?
>У меня нет тормозов.
Пока
>Я не пойму хули ты хочешь?
Ничего, я откатился назад
>похуй на людей с хдд
>кто вообще будет ориентироваться на них?
Ясно
Есть три объекта: родитель - сын - внук. Так вот, при экспорте в unity внук почему-то хрен оказывается в рандомном месте, и с уменьшенным scale
ps
Снял в блендере галочку Apply Transform, стало норм. Хз, с давних пор ставил эту галку автоматом, какую то проблему она мне раньше решила, ща видимо уже не актуально
>но доебываться в 2021 году из-за того что она тормозит на хдд, это пиздец маразм
Нет, это абсолютно нормально, просто ты повыёбываться решил. Не для этого треда тема, но есть движки, которые за десять секунд открываются. Есть 3д макс который пол часа открывается, а есть блендер за три секунды. В чём маразм, то?
В том что где-то есть люди не такие как он. Значит надо делать вид что их не существует, вдруг они уйдут?
>похуй на людей с хдд
Проиграл, из-за говноделов с такой философией у юнити дурная слава. Он же и саму игру так делает, "Чот там протормозило, но хуй знает почему, и так сойдет в принципе, разбираться не буду".
Маразм сидеть на ххд и говорить что он медленный, и как бы предыдущий анон не кукарекал, тут сравнение с элт мониторами самое то. Хдд устаревшая технология, которая используется только в случае где нужны большие обьемы
>у юнити дурная слава
Поэтому на юнити сделаны больше 50% мобилок? У юнити дурная слава была из-за долбаебов, которые клепали говно из бесплатных ассетов. Это цена бесплатности и легковкатываемости движка
Но полно приложений, которые запускаются мгновенно, это никакой не маразм. Любишь радикальные сравнения, школьничек
И полно приложений, которые запускаются НЕ мгновенно на хдд и что? Я до сих пор могу некоторые данные на дискете хранить, это не значит что так надо делать в 2021
Маразм про хдд vs ссд в этом треде начал кукарекать ты. Никто с тобой кто-то спорил что хдд медленее чем ссд, незачем подменять предмет спора, люди все равно видят что ты пиздишь.
Речь шла про юнити 2021 стала медленнее чем 2019. И это по факт, не веришь погугли.
>сравнение с элт мониторами самое то
Еще раз тормоз - ты сравниваешь изменения технологий через 15 лет и 2 года.
>Речь шла про юнити 2021 стала медленнее чем 2019. И это по факт, не веришь погугли.
На ссд нет разницы
Какой удобный съезд на
>нищий, купи ссд, а потом еще "хуйня нейм", а потом еще ...
так ведь?
Можно даже не спорить.
Предлагаю тебе перейти на уе4/5 c такой философией, раздутый от говна движок как раз для таких.
>Не нужно работать над ускорением запуска движка? Что ты несёшь.
Не нужно запускать юнити на ххд
>Их похуизм (30млрдная компания) заставляет тебя лишний раз платить.
Платить за что? За ссд? Ты либо даун либо хуй знает кто, чтобы не иметь ссд в 2021 году. Они массово стали наводнять рынок еще в 2008 году
>нищий, купи ссд, а потом еще "хуйня нейм"
Компутерюниверс:
Самый дешевый HDD на терабайт - 2 398,07 ₽
Самый дешевый SSD на терабайт - 5 766,80 ₽
Разница - 3 368 рублей
Разница в скорости - SDD быстрее в 6,5 раз
Итого переплачивая х1,7 рублей ты получаешь х6,5 скорости. Вот тут уж и правду говорят - скупой тупой платит дважды.
Вместо того чтобы по постам сообразить для себя что юнити стала в очередной раз медленее из-за какого-то внутреннего архитектурного изменения (сам ты не смог из-за ссд), ты набросился на других, считаешь чужие деньги, непонятно зачем.
Все таки смерь давление на всякий.
Во-первых, я не тот анон, что тебе до этого отвечал, во-вторых, если тебе мать денег не дает на ССД - не нужно об этом ныть на дваче. Если считаешь, что UE лучше - можешь идти клепать свои кубики в нем, тебя никто не держит, ты только сидишь и позоришься тут как клоун
На чём хотим на том и будем сидеть, животное школьное, это тред юнити, мы пишем наблюдения, стало тормозить ещё сильнее
Самая рофляна в том, что скорее всего дело и не в ssd вовсе. У них как какие-то факторы совпали для этого бага, а у тебя нет. Если бы и у тебя совпали, то твое время так же увеличилось бы относительно старой версии (хоть и было бы меньше в абсолютных значениях, чем на ssd).
Я считаю, что юнити всё больше тормозит с каждой новой версией, это плохо, но ты же молишься на юнити. Как твоя школьная попка подгорела, ворвался защищать
Тебе прямо сказали, что чтобы оптимально работать в юнити - нужно купить нормальное железо, а всё что ты сейчас делаешь - это сидишь и каждого попавшегося школьником называешь. Когда завтра будешь другу на уроке математики хвастаться - тред ему заодно покажи, чтобы он знал какой ты долбоеб.
А завтра ты к нам придешь кричать, что у тебя билд долго делается, когда ты IL2CPP выбираешь?
Вот вот, мы про ссд и не говорили здесь, это он всех начал обвинять что не сидим на ссд, упрекать в нищенстве и тд.
Я еще в начале спора говорил что это антивирусник юнити тормозит скорее всего.
Ты не можешь позволить себе ссд, а школьник я, лол
Для 2019 нормальное железо, для 2021 ненормальное.
Ты правда думаешь что 2 года это такой большой промежуток времени? Тебе точно не 16 лет?
>Они массово стали наводнять рынок еще в 2008 году
Поймал зумера тупого. Они тогда были редкостью и стоили дораха.
Тебе мама не купила бы такое.
Юнити становится тормознее с каждым релизом, хотя нового ничего не завозят, скоро придётся суперкомпьютер брать, чтобы три кубика запустить
Лол, ты ведь не жил тогда еще да? В 2008 вышел первый 128 гб ссдшник. Ясень хуй в россии его было не достать, но с того года ссд начали заполонять рынок и увеличиваться в обьемах пиздец как быстро. Я не говорил что можно было купить в твоем мухосранске ссд в 2008
Ну да, чтобы спорить на дваче я должен жить в Нью-Йорке или Лос-Анджелесе.
Щас погодь я на таймс сквер сгоняю на пивком и продолжим.
>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 живем.
Еще раз, для особо тупых, я не говорил что в 2008 можно было купить ссд на любом углу. Я сказал что начиная с 2008 года они начали массово наводнять рынок. И уж спустя 13 лет, в 2021, ты бы мог себе его прикупить
Спасибо.
Тебе сказали же - 2021 тормозит (у меня вообще 2020 тормозила).
Как долго ты еще будешь своим ссд тут срать?
Мимокрок репортин ин: не ебу что там в старых юнити, но актуальная таки долго грузится на хдд и компилять могла бы побыстрее, хотя казалось бы пятая рязань должна тащить.
на ссд у меня стоят вещи поважнее, эта ваша юнити уж больно дохуя места хочет
Проблема не в дисках.
Проблема в том что она виснет к хуям на простых операциях, выдавая это окошко. В прошлый раз я ждал полчаса, пока не вырубил по процессам. На прошлых версиях такого не было.
Как я понял это делается так что в скелетной анимации персонажа, один спрайт скриптом заменяется на другой? (Тоесть нужна скелетная анимация получается)
Или типо создать прям игровой объект допустим меча, прикрепить его к персонажу и нарисовать, анимировать его движения так чтобы казалось что он двигается в руке. Но тут наверное сложно будет свести все так, чтобы не выглядело что он в воздухе рядом с рукой летает, а не синхронно.
В 3д конечно это попроще все выглядит. Поэтому думаю мб вообще отказаться от такого и сделать более примитивно, с одним скином на персонажа. Насколько это сложно?
Тогда явно проблема на твоей стороне же, погугли, спроси на форуме, у остальных не виснет же
Изи, делай скелетную анимацию, кость с мечом цепляешь к руке и вуаля меч двигается за рукой сам и без проблем. Там же смену спрайтов делаешь. А делов то посмотреть пару видосов на ютубе по скелетной анимации. Единственное что в юнити так и не завезли меш деформацию, но тебе она нахуй и не нужна
тогда буду пытаться, спасибо
Создают словарь в жсонформате или бд. Никто не хранит саму иконку предмета в словаре, хранят ее позицию на спрайт листе.
>>761066
Ебать параша ебаная. Как так-то?
Уже все гайды пересмотрел по этой хуйне, документацию прочитал. А проблема оказывается, что в версии 2020 года плашки: 2D Renderer тупо нет. Вот нет ее и не появится она, хоть че ты качай и подключай. А в версии 2019 она есть. И гайды все записаны с версии 2019. Нахуй так жить.
Вот тогда за 9 минут загрузилось, сейчас тот же проект за минуту, в среднем за минуту грузится, но иногда тупит
Проверь в диспетчере что в это время делает юнити и что делает Antimalware Service Executable
Если нужен TypeScript сразу учи TypeScript.
Я например использую дробилку которая просто собирает пули на одной из сторон экрана и уничтожает, вот думаю приязать пули к таймеру штобы например через 5 сек она сама уничтожалась, а не летела в бесконечность. Как думаете куча таймеров сильно перегрузят движок?
В догонку, как обычно добавляют язык в игре? Это отдельный скрипт с текстовыми методами или что то иное?
>собирает пули на одной из сторон экрана и уничтожает
Не делай так, это пиздец наркомания, которая уничтожит производительность, особенно на мобилках. Пули реализуют через пул обьектов: >>757989
А собирать их в пул можно когда они из поля видимости пропадают например
>>761838
По-разному, json или xml файлы с локализациями. Если не хочешь заморачиваться, то можно заюзать готовые решения - Lean localization например
Да там изучать нечего, по ссылке йоба-пул под любые задачи, который все делает автоматически. Для понимания самый простой пул делается так:
1) заранее создаешь допустим 20 неактивных обьектов-пуль
2) когда игрок нажимает выстрел, активируешь первый обьект и телепортируешь к месту откуда она должна вылететь
3) когда пуля улетает из поля видимости игрока, либо попадает во что-то - деактивируешь обьект
И так повторяешь, в итоге процессор обрабатывает только 20 обьектов, вместо бесконечного создания\уничтожения бесконечного числа обьектов
Алсо, сделал как-то скрипт, там в появившееся поле нужно вставить коллайдер, и в списке вообще нет коллайдеров, хотя я к обьектам на сцене добавляю бокс коллайдер 2д
У меня есть анимация, в которой объект перемещается направо, а потом возвращается обратно. Чтобы всё работало плавно мне нужно обязательно указать стартовую точку анимации, точку в которую объект перейдёт и точку возвращения. (Первая гифка)
Но будет выглядеть это плавно только если мой объект изначально находился в стартовой точке анимации. А если объект изначально находился в другой точке, то он моментально окажется в стартовой точке анимации. (Вторая гифка)
Можно ли как-то задать динамическую стартовую точку, чтобы анимация начиналась из текущего положения объекта, а не заранее-указанного?
(Наверное этого можно достичь через DOTween, но можно ли сделать как-то по-другому?)
я даже хз че показывать на них. На первом скрине инспектор героя, а но втором инспектор камня. Рамочки коллайдера у обоих есть. Герой проходит сквозь камень как ни в чем нибывало. В поле Collizion Detection менял что-то, но ничего не дало.
да я хотел еще попробовать триггер какой-то сделать, но оказалось не до триггеров, когда и простой коллайдер не работает. Триггеры убирал, все равно ничего не работает.
Как мне достать отдельно имя и отдельно номер(без скобок), которые могут быть любыми? У меня есть вариант костыля, но я просто хочу понять логику таких, блять, сообщений. Почему просто не прислать 2 переменные? Как я должен в принципе их обрабатывать?
Как-нибудь так:
string message = "artem_2010 (284681246)";
string[] messageParts = message.Split(' ');
string name = messageParts[0];
int num = int.Parse(messageParts[1].Trim('(', ')'));
>Почему просто не прислать 2 переменные?
Хз, по-хорошему так и надо делать.
> Как мне достать отдельно имя и отдельно номер(без скобок), которые могут быть любыми?
Regex
> да, нужно бы все это изучить по-хорошему
Что там изучать, пару символов и скобок покрывают 99% задач
Почему я не могу двигаться на wasd и одновременно оглядываться зажимая правую кнопку мыши? Чувствую себя инвалидом
Помогите сориентироваться!
Ненужный кусок говна
Нет, трата времени. Синтаксис выучить и привыкнуть вообще к скриптам самое простое, сами алгоритмы сложное.
Просто этим нужно регулярно заниматься, кодить всякую хуйню пилить, и через некоторое время начнёт усваиваться.
понял свою ошибку, нужно было из списка сцены обьект переносить, а не из самой сцены
Одна из первых ссылок в вк, как ты собирался геймдевить с такими навыками поиска инфы
Интересно это за денюжку реклама или от чистого сердца?
Я - бумер седая голова, и обычно ищу по торрентам и форумам.
Гугли Triplanar
Тогда еще спрошу, может осенит. Какие размеры спрайтов героя, и тайлов делать для 2д мобилко-платформера? Так чтобы не заруинить производительность, но при этом и графоний норм был? Не пиксельарт
Вроде для телефона стандарт брать размер экрана 1080p (на экаранах большего разрешения 1080 будет нормально смотрется). Дальше смотришь какую площадь экрана будет занимать спрайт и считаешь.
Блядь, как будто я из будущего себе пишу.
Что при рейкасте хит.дистанс правильно показывается, а при кастбоксе меньше на 0.0025
Параша, закрывай сервера, начинай пилить новую. 100% не взлетит. на что надеются эти долбоебы после Evolve? Это же насколько опущенцем надо быть чтобы покупать что-то у этих разрабов
Смотри что жрет озу больше всего и оптимизируй, хули тут думать
Выкладывай сюда, антон заценит.
чел, ты просто перегорел. Как показывает опыт - любое говно найдет ценителя, а раз уж ты пол года ебался, то что-то играбельное да вышло. Я бы на твоем месте всадил бы 100к в рекламу и посмотрел бы как пойдет. Только нормально рынок исследуй и реши кто твое ЦА, что бы узенько таргетировать. Ну и группу в вк веди, зумерки любят такое, бонусов там насыпай за активность и рефералов, это говно к любой игре прикрутить можно.
поясню про 100к - это ок бюджет, что бы минимально проверить заходит ли людям вообще продукт. Много тестов не сделаешь, конечно, но хотя бы выяснишь на кого лучше таргетировать. А то вдруг ты клон героев сделал, такое только дедам рекламировать можно. А дальше уже по обстоятельствам доливаешь остальное, или дропаешь нахуй, если совсем не идет. Профита с 100к не жди, даже на 1 бакс не надейся, будь готов что сливаешь в полный минус.
Русня рекламу смотрит и еще просит. А донаты не каждый муриканец купит, хотя и шансов больше.
Кстати поясните за сторы. Планирую свою поделку выкладывать только в плеймаркет, потому что:
- андроидобичи жрут говно, им привычно
- всего 25 баксов стоит акк
- нормальный поиск по стору, хоть какой-то шанс что игру случайно поставят и без рекламы
тогда как в эплсторе:
- жрут так же, но все же говна там поменьше
- 100 баксов акк
- поиск говно мочи, рандомные игры тупо теряются, даже если ищешь по точному названию
Какие еще подводные?
>Русня рекламу смотрит и еще просит. А донаты не каждый муриканец купит, хотя и шансов больше.
Реклама почти нихуя не приносит
>Кстати поясните за сторы
Есть деньги выкладывай в оба, нет - гуглплей
Сап аноны, пытаюсь реализовать в игре 2а вида управления по нажатию одной кнопки автопилот и прямое управление, но столкнулся с тем что один метод управления накладывается на другой метод, в юнити есть возможность отменять методы?
Или может я в коде облажался?
Наверное надо сделать проверку, что в любой момент времени мог быть включен только один метод управления. Если я конечно правильно понял проблему.
Да там больше ничего нет. 2 метода и два разных управления
Сделал по умолчанию автопилот, флаг выбора отрабатывает, по отдельности методы работают, но когда собираю их в одно условие они накладываются друг на друга. Вот я и спрашиваю как можно останавливать метод и заново запускать
Ну и комментарии у тебя.
Они, как ты выразился, "накладываются" друг на друга, потому что ты сам Autopilot выставляешь в противоположное значение при каждом проходе.
if !Autopilot {
Autopilot = true // было фолс, ты сеттишь в тру
} else {
Autopilot = false // было тру, ты сеттишь в фолс
}
У тебя проверка на автопилот работает только после таба, а должна в каждом кадре. По табу нужно только этот флаг менять
А, я не заметил, что у него там таб для переключения режима.
Короче
if tab {
Autopilot = !Autopilot
}
if Autopilot {
AutopilotStep()
} else {
ManualStep()
}
Перед этой хуйней поставь проверку на автопилот, потому что она у тебя каждый кадр вызывается только если таб не нажат, и метод AutopilotSpaceship рядом в else поставь, а внутри проверки на Tab просто напиши "Autopilot = !Autopilot;". Я думаю ты это хотел сделать
GetKeyDown вызывается только в том кадре когда была нажата клавиша, GetKey вызывается в каждом
int b;
string c;
аноны, почему при объявлении переменных по умолчанию a = false, b = 0, но с != "", а внезапно равняется null. где логика?
string ссылочный класс, int и bool структуры
Анимировать всякую хуйню можно через код, можно последовательности действий задавать и коллбеки назначать. Обычно UI им анимируют.
Ха! Там рядом лежит Game Development Patterns with Unity 2019, но он сука запаролен.
Оке. Кто читал - скажите оно вообще годное или нет?
>>763323
>>763325
>>763327
Спасибо сам разобрался, я просто разнёс в два условия включение и выключения режимов управления по нажатию таб и условие запуска того или иного управления в зависимости от установленного режима, это странно что когда пытался делать всё в одном условии то игрок просто не двигался.
В том паблике. По дате примерно +- 10 дней от поста на пикче.
Спасибо
>>763373
Была такая хуйня, это значит что проц ждет пока GPU справится со своей задачей, то есть видяха перегружена и не вытягивает. Вылечил оптимизацией кучи херни. Шрифты перебрал, убрал динамические шрифты, сделал нормальные пулы для обьектов (в том числе и для всплывающих циферок), и вот это еще >>754028
Плюс еще можно разбить динамические канвасы на отдельные канвасы, так как если один обьект изменяется, то юнити полностью перерисовывает весь канвас
Я выбрал unlit шейдер, поставил минимальные настройки в ProjectSettings и уменьшил разрешение. Стало идти значительно лучше, но всё равно есть небольшая задержка. Откуда такая прожорливость? Да, у меня старая видеокарта. Но она тащила 3D игры, сделанные на Юнити, а тут не может справиться с двумя кубами на сцене.
Ну видюха пиздец конечно, она 12 лет назад вышла. Проблема в ui вполне может быть еще, у меня игра состояла полностью из интерфейса и лагала пиздец пока я не оптимизировал все. Правда на телефоне было дело
Покопался в настройках. Все выкрутил на минумум. В билде дает 200 в окне и 74 на полный экран, хотя разрешение такое же.
Пожалуй, это дело в моей старой видюхе, которая не тащит современные шейдеры.
Можно взять готовую игру из ассет стора и менять как тебе хочется в плане моделек/текстурок/готовых механик
>>763436
На многие жанры уже есть готовые "шаблоны", есть для платформеров, шутеров, даже был дарксоулс-подобный шаблон, но сам должен понимать, что если захочешь что-то там поменять в плане механик, то придется кодить.
Кстати в Юнити, как и Анриале, есть возможность визуального скриптинга - Playmaker, я бы не рекомендовал, как то мне проще потратить месяц-два на изучение С# и нормально кодить, чем по сути сталкиваться с теми же проблемами в визуальном скриптинге, но без возможности создания масштабных систем
Запросто. Программирование можно выучить быстро. Тут нету ничего сложно. Это не умение рисовать и моделить.
Это не умение рисовать и моделить.
Насчёт рисовать не знаю, но моделить лично мне дался явно проще, чем кодинг. В принципе сейчас я могу делать в блендере всякие ба штуки, но это очень времена затратно и не окупается, и потратил на вкат не более года, когда с С# всё куда сложнее.
Погуглить, если нигде не сказано что эта музыка публичное достояние, то 99% ты не сможешь использовать ее законно
на канал грузишь скрытым, тебе сразу скажут
Спасибо.Еще всплыла проблема, не понимаю как работать со скелетами.
Понимаю как работает простая анимация. Есть обьект, и прикрепленный к нему аниматор проигрывает анимации которые берут спрайты из префаба.
А скелеты анимируют скелет скелет который уже на сцене, и я не могу запихать в аниматор анимацию которая привязана к другому скелету. А мне нужно, так как у меня один скелет изображает передвижение по одной оси, а другой по другой. И все через одни спрайты сделать не получится.
Незнаю как еще описать проблему.
ооо добро пожаловать в славный мир Юнитити, сам неделю назад пытался перекатиться с 18й на 20ю версию и внезапоно тоже самое.
Мне советовали в ручную очистить папки библиотек, но они не удаляются.
Эта хуйня вылезла, когда я юнити хаб обновил до третьей версии, и оно перестало создавать проекты.. но вчера в юнити хабе при создании проекта нажал кнопку update (выше над вводом имени) и вроде заработало и проект стало создавать без ошибок... (но на прошлой неделе это не помогало)
Точняк, спасибо.
Потому что они у тебя приватные и несериализуемые? Мне кажется проще самому написать систему сохранения чем этой хуйней пользоваться
Потому что не нужно использовать всякое говно. Есть годный бесплатный ассет, который используют все нормальные поцоны в своих играх - EasyFileSave.
Хочу попробовать сделать свою простенькую в 2д "игру-менеджер", к примеру генерируются 5 рандомных персонажей из них ты выбираешь 3 и дальше за игровой ход ты можешь выдать им задания. У каждого персонажа есть свои характеристики- к примеру ХП, сила, ловкость и интелект. Например задание А прибавит выполняющему персонажу +1 силы, а задание Б даст -1 ХП выполняющего и +1 ловкости другому персонажу. Т.к. я валенок в кодинге и представляю как это работает только примерно я попробовал потыкаться в Adventure Creator который обещает создание игр без этих знаний, но я быстро понял что он заточен под всякие платформеры, квесты и прочие игры где ты управляешь одним своим персонажем и немногочисленные туториалы описывают именно такие игры, а вот создание и управление пулом персонажей со своими характеристиками я не нашёл.
Подскажите куда воевать. Может кто то даже в конкретный туториал пальцем ткнёт или обожемой есть где то готовый кусок кода чтобы попытаться его понять и под себя переделать как то. Может мне вообще не юнити нужен, но на него вроде как полно готовых ассетов всяких что для такого неумехи как я очень удобно.
Вкатывальщик на книгах опять выходит на связь
Купил
Unity в действии | Хокинг Джозеф второе издание 2021года.
У меня просто слов нет насколько это крутая книга, единственно она не для вкатывальщиков, там много разборов по скрипту и новички вряд ли поймут без знания шарпа, а так читается на одном дыхании,
теперь в отличие от первого издания мы делаем 3д шутер и 2д платформер, разбираем работу по сети и изучаем всякие неочевидные плюшки движка. Кароче книга - огонь, но новичкам её я бы не советовал.
Кстати автор поясняет за обложку, никогда бы не догадался что это за хер с бугра.
>издание 2021года
Интересно, что изменилось по сравнению с издание 2019 года
https://vk.com/wall-159224823_74119
Скорее всего ничего.
Изучить С# под твои запросы займет пару вечеров. Если не можешь, то я вижу два пути, первый - ковыряться в юнитевском визуал скриптинге, который как по мне отнимет еще больше времени. Второй - вместо юнити взять гамакер
Не, я его немного понимаю, от электронной ощущения не те.
> Как сделать это в рамках 2д?
А в чем проблема то? Сделай 2D анимацию монетки.
https://acegif.com/ru/gifki-vrashhajushhejsja-monety/
Готовая гифка не подойдет, мне нужно остановить ее определенно стороной к пользователю, чтобы он точно видел что выпало.
А в чем проблема то конкретно? Делаешь анимацию вращающийся монетки, потом стопаешь ее когда надо. Либо делаешь две анимации - одна где монетка остановилась на орле, вторая - когда на решке и показываешь пользователю когда надо
Ну нихуя себе, интересно как в юнити это работает
Включил в настройках риалтайм ГИ, сделал объекты статическими - ничего не поменялось
Хуёво тебе
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
Кто-нибудь знает что с этим делать? Текс меш про не распознает некоторые заглавные символы, какого хуя.
Ебаный рот этого текс меш про, какого хуя там нет этого символа, это дефолтные шрифты из ассетов, я ничего своего не добавлял, там половины заглавных букв нет.
В юнити из коробки нет динамического GI. Так что или крути амбиент, или запекай лайтмапу.
Попробуй скачать какие-нибудь из гугл шрифтов, предварительно проверив наличие там всех букв. Может реально дело в говеных шрифтах из ассетов
кстати прикольная идея
https://game.courses/programmer/?ref=15&utm_source=youtube&utm_medium=description&utm_campaign=o
бесплатно без смс?
Сделал так, один image и спрайты (орла и решки) на нем меняются через аниматор, когда scale.x == 0. Но сука анимация не останавливается на конкретной стороне, она каждый раз возвращается к исходному положению. То есть если вначале стояла решка, вернется к решке, если стоял none, то вернется к нему.
Сделай две анимации
Анимируй через код лучше
А в чем проблема сделать в аниматоре переменную отслеживает какой стороной монета повернута? Можно пойти еще дальше и привязать скорость анимации или кривыми сделать к переменной и менять ее. Типа в начале монетка быстро крутится, а потом замедляется
572x540, 0:08
Vector3.ProjectOnPlane(direction, hit.normal); Это даёт почти то что нужно, но как-то неправильно. Есть еще варианты через два кросса и
(direction - Vector3.Dot(direction, hit.normal) * hit.normal).normalized
У всех трёх одинаковые результаты
Сходи скачай учебник юнити в действии 2е издание и посмотри как он сделал карточную игру я не парь людям мозги. Все велосипеды уже давно изобретены.
Всем спасибо, сам нагуглил
На сцене расположены противники (из одного префаба) и игрок. В противнике коллайдер-триггер. Когда игрок сталкивается с коллайдер-триггером противника - игрок должен отталкиваться от противника, поэтому необходима информация о текущем положении противника (коллайдер). Существует ивент PlayerHitted, вызывающийся в классе противника в методе OnTriggerEnter, который принимает коллайдер противника, на этот ивент подписан игрок для того чтобы отталкиваться.
Так вот, вопрос. На этот ивент я подписываюсь в классе игрока, но количество противников мне неизвестно, они спавнятся из префаба. Есть какой-то способ подписаться сразу на всех противников КРОМЕ способа подписки через цикл?
Я в префабе врага сделал ещё одну пустышку и назначил ей коллайдер круг и всё, всё отталкиваются друг от друга
А как же то что на скриншоте? Там же написано и gi, и риалтайм, и количество отражений. Это тогда что делает?
>Подключаешь нужные библы в скрипте, нет проблем.
В скрипте прописываю юзинг этой библиотеки. Использую в скрипте функционал из этой библиотеки. Проблема в том, что юнити выдает ошибку, что библиотека должна быть для 64-битной системы. Я выбираю эту библиотеку, лезу в инспектор, ставлю галочку напротив 64 бит, применяю и ничено не меняется.
На заборе тоже хуй написано. Это Enlighten - хитрый лайтмапер, в котором ты сначала запекаешь, а потом можешь менять свет геометрию - не можешь.
Скорее всего так и есть. Но в консольной программке, которая создавалась с дефолтными настройками на 64- битной системе, она работает без ошибок. А в Юнити не хочет, даже когда нажимаешь перекомпиляцию на 64 бита.
https://www.youtube.com/watch?v=LGhkKdud-DQ
https://www.youtube.com/watch?v=RTOZlVybcw4
но проблема в том, что тут используется bloom который распостраняется на всю сцену, а не на один объект. Можно как-то сделать свечение просто одного объекта? Я же не делаю игру на пс3, мне мыло не нужно.
Фишка в том, что слетело разрешение при запуске из юнити для теста(и в самой игре), но хрен с ним поменяю.
А вот то что микрософт студио не просто часть кода перестала дописывать поскольку не знает таких слов как Debug, Input, и какое то еще, но то что меняет на те что знает к примеру input на переменную moveInput очень бесит и откровенно мешает.
Какие с этим быть и что делать?
Обновления вроде все скачал
Визиал студио сам по себе открылся и начал на полгига чето качать, скорей всего решит проблему(я надеюсь), но осадок все равно остался
Вот тут пример отправки сообщения в вк есть, может полезно будет
https://habr.com/ru/post/438874/
спасибо, гляну
О нашел в свойства объекта Scale in lightmap кажется оно
Может на будущее еще комунибудь понадобится
Помогло вот это
>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 всё находить?
Это значит что ты делаешь что-то не так, очевидно же. Find обычно используют осторожно и редко, потому что ресурсы отжирает
Прикольная штука.
Ты думаешь тут кто-то про продакшен знает...
Т.е. мы нажимаем на стрелку вниз, получаем (0, 1) на performed и started. Но когда перестаем в cancelled приходит (0, 0), как и в любом другом случае. ЧЗХ ?
Я все правильно делаю? Или же насаживание себя на иглу ивентов не приведет меня к чему-то хорошему?
>в cancelled приходит (0, 0), как и в любом другом случае
Что не так? Что ещё должно приходить в случае отжатия кнопки?
Не юзай ивенты, только прямое взаимодействие и передача ссылок, потом скажешь спасибо.
В каком-то видосе видел что чел чинил эту хуйню засовывая спрайт в атлас, хуй знает почему это должно помочь. Если починишь, напиши плз, скоро тоже этой хуйней надо будет заниматься
Твой метод вернет bool. А мне нужно считать Vector2.
Повторюсь. Проблема в том, что на пике в 1 случае у нас ctx.ReadValue<Vector2>() вернет вектор куда мы нажали, а во втором не вернет вектор отжатой кнопки.
Ты правильно сказал. Нашел как раз тот видос. Просто создаешь атлас с дефолтными настройками и закидываешь спрайты туда, эффект пропадает. Спасибо большое
Вот я сейчас искал камеру от первого лица для шутера - чтобы там было элементарное - беганье, прыганье, приседание. Думал, найду какую-нибудь обертку над кхарактерконтроллером... Хуй там, какое-то говно обмазанное говном...
Нахуя в офф семпле от юнити эту синемамашину прибили гвоздями? Эти люди вообще хоть что-то знают о проектировании?
И ведь еще есть долбоебы (да и тут) которым похрен - похрен что в их клоне макмана юзается тяжелые ассеты с миллионами говна.
А потом удивляемся - чего это игры на юнити тормозят, и ведь даже не юнити виноват... А вот такие разрабы ассетов которые напихали всякого говна для галочки и пользователи ассетов которые это говно используют
Да вот примеры - есть такая игра project warlock - стилизованна под олдскул, первая часть норм бегала на слабых компах. Тут вышла демка второй части - пиздец оно тормозит и пердит, ну я глянул исходники - да таже самая хуйня с синемамашин с миллионами всякого говна которое никогда не будет использовано в игре, но оно вызывается из миллиардов Update
Потому что ассет с кучей свитоперделок будет продаваться, а ассет с одной фичей нет? В чем проблема сделать все самому если не устраивают ассеты?
Сам в С# разбираюсь на очень базовом уровне потому прошу подсказать. Куда он затолкал статы персонажа и где их можно поменять?
>камеру от первого лица для шутера - чтобы там было элементарное - беганье, прыганье, приседание.
Тебе любой пятиминутный туториал с ютуба от васяна подойдет. Или скрипт типа такого https://sharpcoderblog.com/blog/unity-3d-fps-controller
>Я тут разосрался с другом погромистом и теперь делаю все один (охуенное начало проекта, я знаю).
Зачем ты так сделал?
>Куда он затолкал статы персонажа и где их можно поменять?
Смотри, где сетСтат вызывается. Затем смотри откуда берутся значения, которые в сетСтат передаются. Так же смотри в инспекторе. Похоже я не понял твой вопрос
>зачем.
Он пару лет назад решил отяниться а неделю назад, после 10 лет близкой(нет не этом смысле) дружбы сказал что я пидор потому что незаслуженно зарабатываю больше чем он ,хуемразь как и все мужики, он пару недель назад встретил настоящих подруг а я иду нахуй
>где вызывается
Вызывается в Move , но инициализируется кажется там где скинул
То есть 3 анимации для обычного персонажа, 3 анимации для персонажа в определенной одежде, 3 анимации для персонажа в определенной обуви. Для них написано 3 одинаковых куска кода, которые ставят определенную переменную в аниматоре, в следствие чего переключается анимация.
Проблема в том, что для обычных 3 анимаций всё проходит нормально, визуально видно как стрелочка в аниматоре загорается, и дальше полоска анимации проигрывается снова и снова. Но как только я меняю и включаю код для анимации с ботинками, то стрелочка начинает моргать и анимация на половине начинается заново. Т.е у меня каждую секунду снова передается значение и анимация начинается каждый раз сначала.
В коде это все в Апдейте, но прописано одинаково, просто копипаст 3 раза с разным значением переменной для включения анимации. В аниматоре тоже все галочки стоят идентично.
Если все понял правильно тебе в аниматоре нужно снять галочку с Can Transition to Self
Не-не-не, не где свойства вызываются, а где вызывается сам метод setStat.
>я пидор потому что незаслуженно зарабатываю больше чем он ,хуемразь как и все мужики, он пару недель назад встретил настоящих подруг а я иду нахуй
Прогрессивный что ли какой-то.
В методе Awake. Все кажется дошло
>прогрессивный
Скорее несчастный и несколько недальновидный. Но это его дело
Ответ не отправился. Я прям только только заметил вкладку settings у каждого объекта в аниматоре. Но всё равно спасибо большое, в этом и была пробелма.
Еще вопрос напоследок. Как делать что ты 2D свет не просвечивал сквозь спрайт персонажа? 41727
Можешь на него Сакутина натравить.
Хз, я с 2Д плохо знаком.
1024x576, 0:56
Ага, какая-то хуйня. Выдели все и в инспекторе выбери render mode - important, может это для этого
URP? Тогда или соси бибу, или переходи на последнюю версию и включай дефёрд.
Спасибо, заработало
Не поможет, они на высоту влияют. Я предполагаю мне нужно что-то со временем связанное.
Drag параметр на 0
Пофиксил. Решение такое. При Continuous у нас в момент столкновения скорость равна 0. Поэтому у объекта, в который врезаемся воздаем 2 коллайдера, один is triggered, второй обычный. И нужно вытянуть коллайдер is triggered, чтобы объект сначала пересекался с ним, а потом уже врезался.
Хочу еще сделать возможность менять цвет произвольного полигона прямо в игре (типа курсором выбрать стену и далее выбрать цвет из палитры). Подскажите, как это сделать проще
Гуглишь как контроллер делать, как цвет полигонов менять
Не знаю. Мне надо челику в виде бинарника скинуть и чтобы он побегал
Слева как выглядит на сцене/в игре, справа как по факту, че за хуйня?
Решил короче. почему-то у меня просто были слишком светлые спрайты и я режил почекать, мб это из-за линеар колор спейса
я начал гуглить и нашел шейдак, закинул его в проект блять сука у него в параметрах имя как у дефолт юи шейдера и в итоге когда я перезашел в проект дефолт шейдер удалился или пропал куда то и оно взяло этот залупный говношейдер и показывало эту дрисню
просто в итоге вщял код дефолт шейдера с гита юнити закинул его в свой шейдак и все чикибамбони
А мне нужно чтобы она просто начинала показывать анимацию из других спрайтов.
Незнаю как обьяснить, мб по скринам чето понятно будет.
Есть барак с солдатами из которого постоянно выбегают юниты, сами юниты это префабы которые вызываются из объектов на сцене, пока родительский объукт не уничтожен дочерние объёкты работают исправно, но как только род. объект погибаем, казарма перестаёт спавнить юнитов.
Сделал префаб родительского объекта и вызываю его из кода, но когда делал префаб у меня постоянно теряются ссылки на gameManager и восстановить я их не могу, нужно делать префаб game manager, который так же теряет ссылки, как правильно вызывать объекты из кода?
а, всё понял
Т.е. я сделал врага гоблина, как ScriptableObject, у него есть здоровье. У меня на сцене два гоблина, в монобехейвере у которых есть переменные.
EnemyScriptable enemy = Resources.Load<EnemyScriptable>("Scriptable Objects/Enemies/Goblin");
И если я изменяю здоровье при атаке у переменной enemy, то оно меняется кругом (сразу у двух гоблинов) и сохраняется после выхода из игрового режима.
Можно ли сделать так, чтобы я отнимал здоровье только у одного гоблина. Или для этого нужно создавать другую переменную в Монобехейвере, которая будет брать базовое значение из ScriptableObject?
Как я понял это невозможно из-за особенностей языка. Классы передаются по ссылке, а не по значению.
Когда билдинг отменялся по каким-то причинам, иногда такое бывало.
Попробуй MemberwiseClone
какие подводные?
Подводные в чем? Если хочешь заработать на этом, то подводный камень - клоны флаппи берд никому нахуй не нужны, их и так уже дохуя
Статические переменные не отображаются в инспекторе, только если кастомный инспектор сделать.
if (new List<int>() { 3, 4, 5 }.All(i => x != i)) { }
требует добавления в скрипт using System.Linq; подчеркивая ошибку в All, а вот
List<string> oppMess = new List<string>(30);
работает и без него.
Это же все работа со списками, почему так?
понял,спасибо, прост для меня неочевидно пока
Пока я думаю создать один объект DontDestroyOnLoad, и там хранить все переменные: характеристики и инвентарь героя, пройденные квесты, результаты диалогов и т.д.
Но, может, это не самый оптимальный вариант. Так как это получится очень огромный класс с кучей значений.
Впринципе так и делается для рпг и рогаликов, но не одним объектом а несколько ещё и с чайлдами
В этой книжке пишут о том что нужно нажать кнопку Import Package/Environment.
Но у меня нет пункта Environment.
Не подскажите, где мне добыть нужные Standart Assets?
А всё, разобрался. Нужные мне ассеты валяются в ассет сторе.
>Сам только вкатываюсь, раньше по утубовским видео и курсам с юдео, но всё это полное гамно, криворукими ушлёпками с дефектами речи.
А может надо было разориться и обучаться на удеми
И даже из юьубовских gamesplusjames до того как свалил на удеми, пилил вполне себе отличные гайды
В ютубовских гайдах основные проблемы уебаны которых рекомендует юнити, и уебаны которые пытаются втюхать говно на третьем, четвёртом видео.
>и в погромировании достиг неплохих результатов с таким подходом. Читать книгу чревато - можно заебаться и потерять интерес. Когда сразу делаешь и непосредственно решаешь самую ближнюю проблему - мотивация только разгоняется.
Звучит как хорошая идея кстати. Просто выдумать что хочешь сделать и сразу же делать, а то заебался уже мануалы курить и видосы с ютуба с обучением, с каждым разом всё меньше и меньше интереса.
Звучит как отвратительная идея
Ты таким подходом сделаешь какое нибудь говно, если тебе силы воли не хватает месяц покурить туториолов по тем идеям котоыре хочешь реализовать, а потом делать. То лучше не начинать
Изобритать колесо звучит интересно и волнующе, но как конечный продукт подобное колесо обычно не очень круглое. Другое дело что перенемать опыт надо у знающих людей, и вот с этим могут влзникнуть проблемы
Ну ясное дело что на начале будет выходить говно. Я думаю такое будет происходит и с теми кто стартовал с теории. Речь же идёт о том чтобы сохранить интерес к обучению в первую очередь.
>Почему столько ютую гайдов скипают этот шаг?
Потому что на ютубе очень много мусорных гайдов. Чем больше мусорных гайдов, тем вероятнее, что они скипнут какой-либо шаг (например, как пилить сохранения/загрузку).
Зависит от игры, но в целом легко. Если лень заморачиваться то бесплатные ассеты есть
1920x1040, 0:31
1920x1040, 2:24
Вроде не дрожит. Не понимаю в чем прикол. Как это тестировать-то? Я уж думал с интерполяцией что-то или с камерой или светом.
Я хуй знает, просто предположил что в редакторе свет как-то криво отображается. Почему корабль уменьшается при приближении к звезде? Выглядит так как будто он пытается приземлиться на нее
Так и есть, пытается. Я еще не доделал эффект приземления или сгорания в атмосфере.
Впоследствии я хочу использовать модель интерьера в юнити.
Где мне лучше его затекстурировать - в максе перед экспортом или уже в юнити?
Что?
в редакторе криво отображается, у меня вот иконки которые через ровные промежутки выставлены - в редакторе стоят с небольшим смещением и шрифты местами чуть заметно плывут по размерам
где-то с месяц
хз, возможно для оптимизации работы редактора сделано, сложно сказать
>У меня есть интерьер в 3ds max, пока без текстур.
>Впоследствии я хочу использовать модель интерьера в юнити.
>Где мне лучше его затекстурировать - в максе перед экспортом или уже в юнити?
>
Бамп
В юнити, вроде, нельзя тексурить. Или есть аддон специальный? Даже если такой аддон есть, в 3д редакторе получиться более качественно.
Получится
А есть какие-то бэстпрактисы? Я так понял, далеко не все максовские материалы можно импортнуть в юнити
хочу что бы объект двигался вправо и столкнувшись с чем то разворачивался.
Решил что лучше это сделать (что бы не заморачиваться овелап коллайдерами) сохранением местоположения объекта , сохранением этого местоположения и сравнением нового и старого местоположений.
Вопрос: в чем сохранить и как?
Ты просто хочешь назначать материал с цветом, а не полноценную текстуру? Тогда можно в юнити, просто удаляй все лишнее в максе сразу при экспорте.
Так ты не задавай такие вопросы, блять, это база. Ты хочешь в юнити создавать текстурки, поехавший совсем? Юнити не графический редактор и даже не 3д редактор.
Начал делать анимации атаки через DOTween и появился вопрос. Предположим у меня сложная анимация, состоящая из около 30 точек, это нормальная практика все 30 точек руками вписывать в метод и потом этот метод вызывать или есть какой-то вариант не засорять код? Может как-то импортировать данные из Animation Clip'oв?
Если не знаешь, то так и скажи
onMouseDown считывает весь экран, а ему партикулами надо
Ну я просто не ебу, как себя ведут разные материалы при экспорте в юнити. В 3д максе овер 9к вариантов, тут и короновские, и родные максовские. И нигде нет нормального мануала именно по поддерживаемым материалам.
Vector3.moveTowards точно так же, только без изинга. он линейный. лерпом не пробовал
Такую простую анимацию делать прямо в движке, а еще лучше - скриптом.
>leftHand = animator.GetBoneTransform(HumanBodyBones.LeftHand);
>animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandPos);
>leftHandPos = new Vector3(newXpos, leftHand.position.y, leftHand.position.z);
Можно ли в IK двигать весами только какую-то определенную ось, например, Х, а чтобы по остальным все было как заложено в анимации? Я делаю так, но получается хуйня, неправдоподобное движение, прерывистое.
ты его где угодно можешь делать. в апдейте тот же результат
void AOE_Attack()
{
ImageSkills.gameObject.SetActive(true); //активируем панель скиллов
hitpointValue -= aoe_damage;
GameObject.FindWithTag("PanelSkills").SetActive(false); //находим панель скиллов по тегу и закрываем
}
Запускаю на тормозном компе, получаю по факту такой порядок операций:
1. расчет урона
2. попытка найти и закрыть панель, которая оказывается еще активировалась
3 все зависает нахуй, панель висит открытая
Это просто пиздец. Ну, я понимаю, что панель могла не сразу прогрузится на экране. Но, блять, команда то уже прошла. Можно же ее считать открытой или нет?! Хуй с ним если она чуть позже на экране появится, можно ее считать уже активированной, блять?! Тут же вся логика рушится, я в ахуе от такой реализации
в оригинале панель скиллов на другом объекте, но суть от этого не меняется. просто свел в один метод для простоты восприятия пиздеца
присылаю на тормозной комп по сети команду активировать объект на нем куча спрайтов, и сразу же команду деактивировать этот же объект через поиск по тегу.
в итоге тормозной комп выдает ошибку, что не нашел объект для деактивации. при этом в момент повисания объект на экране активен.
т.е. команда активации объекта хотя и запущена первой, по-факту не является завершенной, и команда деактивации через поиск по тегу, которая идет второй, никаких активных объектов не находит
Нужно было отключить сглаживание прозрачных текстур в пресете графония. Выглядит теперь с лесенками, но на всех разрешениях экрана зато одинакоыо. Может, есть какой-нибудь вариант оставить сглаживание и чтобы оно работало одинаково на всех разрешениях экрана?
хз, может ты там чего накосячил, что у тебя их дохуя создается, шейдеров этих. в апдейт например засунул создание вместо старта.
Да не, оказывается это юнити так тупит, если пару недель не перезапускать проект.
>Гугле плей требует
эти в конец охерели, мне тоже шлют свои хотелки, чтоб я там им что-то правил каждую неделю, в платной игре которая вышла 3 года назад и с тех пор не обновлялась ни разу.
отдельно хуею от их нового поиска в которой игру по названию нихера не найти. у меня игра условно называется "cool game: best" , но по запросу "cool game best" выдает кучу приложений с совершенно левыми названиями, где ни одно слово не совпадает.
причем большинство - абсолютный мусор с 10+ установками и 3-4 звездами, вышедший 5 лет назад. а моя игра с 10к устновок и 4+ висит на 500+ позиции. и надо обязательно написать точное название "cool game: best" чтоб ее найти. просто конченные блять
>условно называется "cool game: best" , но по запросу "cool game best" выдает кучу приложений с совершенно левыми названиями, где ни одно слово не совпадает.
Та же хуйня. Как у них поиск работает непонятно. Даже если дословно вводить название, запросто может ничего не показать.
сохранить исходное значение в переменную, а потом в апдейте сравнивать с ним текущее очевидно же,не?
Исходное может быть любым. Объект может иметь рандомный исходный поворот (z может быть вверху, например, или Y смотреть в лево, а не вверх и т.п.), но мне нужно отследить, что его угол изменился в только глобальном Vector3.right.
От чего при тесте на экране сцены обьект и его текстовое окно показывается, а на game экране нихуя, хотя интеракции с обьектом происходят
Слои все правильные
А всё, понял
708x538, 0:11
>мол пусть каждый дроид проверяет целую ветку дроидов перед ним пока не узнает есть ли там свободная клетка
зачем проверять дроидов, когда нужно проверять статус клетки в которую нужно зайти. в клетке должен быть триггер на дроидов разумеется
ты не решаешь проблему, а просто поменял точку входа. клетка себя проверяет или дройд проверяет клетку или ещё какой-нибудь "менеджер" её проверять будет – вопрос один и тот же. как решить проблему освобождения клетки
в клетке триггер с таймером, через пару секунд как из нее вышел дроид, она помечается как свободная. если в нее заходит другой дроид то она мгновенно становится занятой. кто не успел тот ждет.
неужели это так сложно?
>неужели это так сложно
они стоят по кругу и круг замкнут. они все смогут пройти на одну клетку вперёд если будут двигаться одновременно. чего не ясно то? в твоём случае если есть свободное место и у меня 5000 дройдов, то я год буду ждать прежде чем они по одному сделают свой ход. это абсолютно неприемлемое костыльное решение которое к тому же и не работает
перед первым пустая клетка, он отмечает свою клетку как пустую, и начинает анимацию перехода, следующий за ним в апдейте видит пустую клетку, также начинает переход, отметив свою клетку как пустую. все это происходит синхронно в один тик, т.к. там банальные проверки в 1 строчку кода.
для спорных мест вроде перекрестков, заранее при создании дроидов присваивай им номер n+=1, с приоритетом прохода у более ранних.
я написал тебе для более сложного случая, а у тебя совсем примитивная ебала оказывается и ты не можешь ее сделать, я худею с вас пердиксы
третий раз тебе объясняю. нет(!) свободной клетки. вообще нет клетки свободной. свободной клетки нет. они по кругу стоят. свободной клетки нет. только одновременный переход на следующую клетку (ту что занята до начала перехода) обеспечит возможность ходьбы для всего хоровода
>свободной клетки нет. они по кругу стоят.
но это же самый базовый случай, все клетки помечены как свободные, задано направление, в один тик у всех начинается анимация перехода.
как я понял в игре свободная клетка все-таки есть.
поэтому делай 2 режима движения, для замкнутого контура(базовый) и с пустыми клетками
>>779171
удали апдейт и старт, можно убрать монобехавиоур заодно, но он вроде как не мешает
>удали апдейт и старт, можно убрать монобехавиоур заодно, но он вроде как не мешает
Я имел в виду как сделать так, что в скрипт при создании добавлялся не шаблонный код со Стартом и Апдейтом, а мой собственный.
контур то изначально не замкнутый. дройды спавнятся и идут, а потом хуяк и замыкают круг. а что если я хочу разомкнуть этот круг? что если это не круг, а пересекающиеся несколько кругов? ты все предлагаешь описать два частных случая когда их может появится в процессе множество которое не предугадать с введением новых механик. должен быть, хоть и сложный, но единый механизм в который будет чётко знать будет ли перед ним свободная клетка. я думал симулировать передвижения каждого дройда, а потом обрабатывать места коллизий и разбираться с ними. и нет, свободной клетки нет, в моём примере это конкретный замкнутый круг где дройд А встаёт на место дройда Б, пока дройд Б, перемещается на место дройда Ц
варианта всего 2 по сути - замкнутый и не замкнутый.
отслеживай замкнутые контуры без пустых клеток и в них просто сдвигай всех на 1 клетку вперед.
для всех остальных случаев(в том числе замкнутых со свободными клетками), я писал выше как делать(определение хода индивидуально для каждого дроида, и потом запуск анимации перехода для всех одновременно). для перекрестков введи нумерацию при создании для определения приоритета прохода
Начал ковырять. Оказалось, что в этом скрипте 2 переменные
public float speedY = 0.2f;
public float speedX = 2f;
просто инициализируются с нулевым, блять, значением - дебаг и со старта и с апдейта выдает их со значением 0.
Причем, тут же созданная переменная
public float speedZ = 1f;
ведет себя адекватно.
Пару часов проебался с тестировнием этой дичи, как оно вообще так может быть? Потом убрал из переменных public, сохранил - без public все работает. Дебаг выдает верные значения..
Вернул public сохранил и тоже все работает, сука.
Просто сижу в ахуе, чезанахуй блять?!
Прикол в том, что инспектор вообще не трогал. Как я понял, в момент создания переменной в него прописывается первое ее значение. В моем случае прописались нули.
Потом оно тупо там висит, даже если в скрипте потом менять значение, ничего не происходит - от этого собственно и прихуел.
Все таки немного странная реализация. Понимаю еще, что при перезапуске значение остается - это удобно, да. Но я блять его вручную поменял в скрипте, наверное я хотел, чтобы оно поменялось, с хуяли там старое висит
, спизженый с забугорного сайта. Там его все нахваливают
Приделал себе - в 2д игре сразу роняет фпс с 100 до 15, при едва заметном размытии. в независимости от наполнения сцены, (даже на пустой)
По моему это какой-то пиздец, а не шейдер. Разве так оно должно работать?
просадок
Скомпилированный проект весит всего 340 мегабайт и в нем нихуя нет по сути кроме картинок. Но на диске он весит уже 2 гига. Знаю что можно почистить кеш в папке Library. Но чеза нах вообще происходит?
Использовать 3д графику.
> и юзать дотнетовский бинарный сериализатор
Поменял класс - и всё в жопе. Таки JSON лучше, и NewtonSoft это не васян, это де-факто стандарт.
public Image mask_;
и
public GameObject mask_;
какой предпочтительнее? картинка просто закрывает часть текста и меняем свою прозрачность через этот скрипт
private voide Xyu(параметр ссылка_на_скрипт, параметр метод)
{
ссылка_на_скрипт.метод();
}
Вызывается так:
Xyu(GetComponent<Script>(), posholNaXyu());
Как это делается?
По пьяне не считается.
Это копия, сохраненная 19 января 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.