24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны? - Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны? - Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity? - На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity? - Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры? - Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать? - Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты? - Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки? - Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
- Бесплатен ли Unity? - Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
- Движок Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка. http://www.ozon.ru/context/detail/id/34792570/ Также посмотри на видеотуториалы с официального сайта: https://unity3d.com/learn/tutorials Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь: http://catlikecoding.com/unity/tutorials/ Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху: https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unity В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Для людей абсолютно не знакомых с движком и программированием на C# есть 3и основные книги:
1. Разработка игр на Unity 2018 за 24 часа Майка Гейга (Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков). 2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне (Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.) 3. Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание Хокинг Джозеф (Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
>>796856 >Перекат делает после 1к постов >>796857 Оба треда висят в бамп лимите и медленно тонут. А ты продолжай и дальше сидеть в тонущем треде общаясь с копипастой.
Если проект делать на стандартной версии, а потом оплатить Юнити плюс на месяцок чтобы скомпилить проект и убрать обосцаное лого Юнити с заставки то такой Варик прокатит? Или же в Юнити есть какие то заебы с тем что изначально проект должен разрабатываться на другой версии?
>>796878 Юнити лого отключается во время компиляции проекта в ехе. Раньше было актуально просто на пиратку в конце переносить проект компилить и выпускать. Есть еще геморой способ инжерить папку проекта, но это для шарящих и он слетает если логиниться в хабе.
>>796878 Прокатит, но тебе же потом в любом случае придётся игру обновлять. Будешь ещё раз покупать?
У них единственно ограничение на бесплатную версию пикрелейтед. Можешь использовать кряк, который убирает лого, а если игра взлетит, то купишь лицензию.
>>796882 Уточнение. Всмысле где то в инете лежит отдельный кряк который ставится поверх официальной Юнити? Или взломанная версия в целом лежит? Я думал Юнити перестали крякать после выхода Юнити хаба
Сап юнитач. Не до конца знаю обо всех ресурсах Юнити и нужна подсказка. 2D платформер. Нужно "застроить" часть локации камнями. Как это лучше сделать? Перетаскивать по одному муторно и слишком много объектов в иерархии. Тайлами получается слишком плиточно . Как сделать лучше?
>>796904 Либо добавляешь также в ручную на фон картинки, или же в самой юньке переносишь. Писать скрипт для случайной генерации или генерации по точкам это оверкилл. Если уж совсем заёбисто сделай шаблоны и их мешай.
>>796883 >Всмысле где то в инете лежит отдельный кряк который ставится поверх официальной Юнити? Да, я такое видел. Даже не столько кряк был, а инструкция, как пропатчить свой exe или exe юнити, чтобы отключить лого. Погугли. У них же нет никакой защиты от отключения лого в твоём билде, там достаточно одну правку внести.
>>796883 Не слушай этого >>796911 балабола. То что он описал не существует и не существовало в принципе в паблике. Максимум что ты найдёшь лазия по весьма сомнительным помойкам это троян замаскированный под не рабочую тулзу. Есть реальный геморный способ, но ты его не осилишь.
>>796916 Да, да пчел, ты уже обмяк со своими "Да, я такое видел". Небось погугли и ничего не нашёл, да пиздаболик? Тоже и про твои байты, маняфантазии. Как я и написал, способ есть, но таким животным как ты писать его нет смысла.
>>796923 И что ты за не рабочий кал 4 летней давности кинул? Тебе еще раз тупому объяснить что это дерьмо не работает? Мог бы вообще с гугла первые 10 ссылок кинуть сказав смотри вон сколько всего! Тупая обезьяна, нету в паблике простого способа, иди нахуй.
Сап, аноны. Сам я новичок, успел сделать только одно поделие низкого качества (не считая работ по туториалам), потому и в этом вопросе хз. Итак - есть условная валюта, количество которой у игрока увеличивается на x раз в y секунд. Как это реализовать? Чекать, когда игрок выходит из игры, и при повторном заходе смотреть время, считать количество секунд, которое прошло, и тд? Можно ли как-то сделать этот процесс фоновым чтобы приложение засирало юзеру телефон ради накопления валюты, да? Мимо для тренировки делаю кликер, а туторы смотреть не хочется, хочу сам сделать, благо функционал не то чтобы слишком богатый нужен
>>796931 Сразу совет - Старайся ничего, никогда не держать в апдейте кроме прям нужных механик которые по другому никак. Для тебя идеально подойдёт корутина к примеру которая раз в 0.5 или 1сек чекает. Но самое правильно это когда при изменение значения один раз вызывалась там функция которая обновляет твой юи.
>>796951 >Пользователь может переставить время Пользователю неудобно оставлять время в будущем - рано или поздно он вернёт время в норму. Тогда просто зачисляешь ему отрицательную сумму и пусть он ждёт 2030 года или начинает игру с самого начала, лол. Ну а если твой кликер можно пройти за несколько минут, просто перематывая время на год вперёд, то грош цена такому кликеру, от него никакого интереса. Кликер вообще не должен вызывать желания перемотать время, кликер должен вызывать желание зайти в него через какое-то время. К тому же бОльшая часть аудитории кликеров не догадается даже до перемотки времени, это же мобильная платформа, там умных взрослых людей мало. А на ПК в разы эффективнее использовать автокликер, за одну ночь нагенерится больше монеток, чем можно сделать перемоткой времени на годы вперёд, я так делал. Собственно кликеры делают ставку на то, что кликами зарабатывать валюту эффективнее всего, но это очень быстро наскучивает и игрок предпочитает подождать, чем играть в такую скучную игру. Автокликер тут решает. Кстати, упёртый игрок может и мобильную игру на эмуляторе запустить и автокликером насиловать, тут никакая защита не поможет.
>Надо тянуть с сервера. А если нет сети/сервер сдох/временно не отвечает?
>>796989 > Пацаны читайти юнити в действии второе издание но оно старое говно, поэтому частично потеряло актуальность.
Лол кек чебурек парни не беспокойтесь, есть третье издание от 22 года, можно дернуть пдфку и кайфовать
> Нет нахуй третье издание нп напечатали на русском!!!!!!! Ты че пидар!!!! На русском не напечатали книгу!!!!!!!!!
У меня один вопрос - ты че ебанутый? Какое нахуй русское издание от питера вася? У тебя и юнити поди на русском???? Ппхапхапапахапха. Я реально в шокислав с этого человека. Вроде как хотел помочь, ну подсказать, а тут такой перфоманс лол. Чел, ты может не в курсе, но в среднем люди могут в английский прикинь и даже те, у кого он посредственный, сознательно страдают, потому что понимают безальтернативность его изучения для тоц сферы деятельности, которой мы тут планируем заниматься.
В общем гайз, я если что дернул с интернета третье издание в формате для электронных книг, конвертнул в пдфку и читаю. Не благодарите за информацию.
>>796996 >У тебя и юнити поди на русском???? Англичанин куев, ту хоть книгу открывал? Хоть в электронном виде? Там переведено всё на русский кроме самого интерфейса юнити и основных определений типа transform или rotate, чтобы такие ебланы как ты с минимальными навыками обучения смогли осилить юнити.
>Чел, ты может не в курсе, но в среднем люди могут в английский Так пиздуй на 4chan и общайся со своими среднестатистическими людьми. Здесь то ты чего забыл?
Чем больше я здесь сижу тем сильнее убеждаюсь, что в треде от силы 2-3 анона шарят остальные как ты залётные мимокроки.
>>797003 >так пиздуй на 4chan и общайся со своими среднестатистическими людьми. Здесь то ты чего забыл?
в чем причинно-следственная связь в данном случае? почему надо идти на 4chan?
>Чем больше я здесь сижу тем сильнее убеждаюсь, что в треде от силы 2-3 анона шарят остальные как ты залётные мимокроки.
из чего этот вывод следует и к чему он вообще? Ты мне ставишь в вину то, что я не читал книгу на русском и теперь я не шарю? я правильно понял? не шарю как выглядит книга на русском? серьезно?
>Англичанин куев, ту хоть книгу открывал? Хоть в электронном виде?
Зачем мне открывать книгу на русском, если я читаю ее на английском? Я в чем виноват в данном случае?
Ты серьезно не понимаешь, что я довел до сведения читающих информацию о том, что есть следующее издание книги и все!!!! А ты зачем-то высрал вот этот вот кал >Сам перевёл и напечатал?
Ты из весенних шизиков или что? Ты же ебнутый, серьезно. Бля, дружок, просто извинись, ок?
>>797007 >извинись Причино следственные связи поломаны у тебя, а извиняться мне? Охуенная логика. С такой логикой тебе не то что в кодинге на уроках информатики тяжко будет. Крепись.
>>797009 Ладно-ладно. Все все все. Ты прав. Парни, извиняюсь перед всеми!! Юнити в действии ( Unity in action) 3е издание не существует!!!! Извинити что ввел в заблуждение!
Как создать 2д коллайдер дугой вроде кривых безье? У меня есть тайлы, которые нарезаны полукругом, но TilemapCollider создает угловатые коллайдеры. Совсем не годится.
Привет игроделы, я хочу делать взаимосоединяемые 3д комплекты стен, дверных проемов, коридоров, полов и потолков для Unity на стоки, какие тонкости и подводные камни? В юнити же все равно какие блоки по размеру и соотношению сторон? Для теста начал пробовать делать площадью 3 на 3 метра. разной высоты: пол 2м стена3м потолок2м
>>797041 >какие тонкости и подводные камни Смотря какие стоки, если ассет стор, то подводных и гемора выше крыше, помимо того чтобы выйти на минимальный доход надо пол-годика год часто выкладывать. Это было до спецухи офк, сейчас х2-х3 гемора будет.
>>797042 Ну мне финансовые сложности не пугают, я ради творчества в большей степени. Есть ли курсы гайды по тому какие нужны блоки и ченить такое, а то я в юнити 0 и учить не собираюсь только моделить под нее пока?
Сделал пару 2д врагов нормально, и тут новый становится невидимым в режиме тестирования. В обычном режиме видно, но если приближать камеру, или фокусировать кнопкой F на другом обьекте камеру, то первый обьект снова изсчезает. Не пойму в чем проблема.
>>797041 Не до конца уверен, как это все реализовано конкретно в юнити, но если брать разные модульные наборы в анриле, то там модульные наборы от двух авторов нифига между собой могут не стыковаться. И приходится подгонять скейлом до нужного. Дверные проемы от одного автора могут не совпадать с дверями от другого. Проще всего в таком случае скачать 3-4 разных популярных модульных набора и выверить размеры дверей, окон, квадраты стен/потолков/полов. Посмотреть как именно сделаны лестницы и перилы и как они изменяются при скейлах, чтобы могло стыковаться с твоими. Выписать себе данные размеры и по ним клепать, те которые тебе больше всего покажутся адекватными из выбранных, ну и чтобы они хорошо с сеткой в самом юнити скейлились. Всякие отдельные меш объекты вроде мусорок, автоматов, столов и стульев, уже пофигу, плюс минус по шаблону персонажа и по настоящим размерам метража прикидывай и ок. Ещё сразу уточняй для себя вопрос как именно в каждом 3д объекте задается точка пивота. В анрильчике допустим принято чтобы она была слева внизу на объекте для ротации и именно с такой точкой надо экспортировать.
Чуваки, может глупый вопрос, но как изменить длину слайдера через код? Например, приравнять длину слайдера (не макс валью) к числовому значению через скрипт. sliderName.Transform.width = X sliderName.RectTransform.Width = X sliderName.GetComponent<RectTransform>().width = X Ничего не работает. Гугл тоже молчит.
>>797115 Ты опиши точно что ты хочешь, нихрена не понятно.
Если fillAmout, то он от 0f до 1f идёт, и чтобы правильно его заполнять значениями нужно делить или умножать итоговое чтобы оно было в рамках от 0f до 1f. К примеру макс 1000 хп, а у персонажа 200, делим 200/1000 и получаем 0.2f.
Если ты про физический размер то это в компоненте RectTransform, он может меняться через sizeDelta. К примеру нужно 200 в ширину и 50 в высоту, присваивается новый вектор (200f,50f) - GetComponent<RectTransform>().sizeDelta = new Vector2(200f,50f).
Также ты можешь поменять его через Scale, там используется вектор 3(1f,1f,1f).
>>797119 >Если ты про физический размер то это в компоненте RectTransform, он может меняться через sizeDelta. К примеру нужно 200 в ширину и 50 в высоту, присваивается новый вектор (200f,50f) - GetComponent<RectTransform>().sizeDelta = new Vector2(200f,50f). Воооо. Спасибо, анон. Я именно про это и спрашивал. Хз откуда я должен был про это знать. В документации по слайдерам и геткомпоненту такого не было. В гугле только 1 ссыль нечто похожее, но без sizeDelta и тем более без вектора. >Также ты можешь поменять его через Scale, там используется вектор 3(1f,1f,1f). Ну до этого я сам допер, но мне нужно было именно ширину увеличивать и только вправо (это полоска хп должна быть). Чтобы ты понимал, максимально похожее на то что мне нужно было в гугле: > healthRect.GetComponent<RectTransform> ().SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, sliderSize); > sliderSize += Time.deltaTime; Я чуть блять голову себе не сломал пока пытался это осознать. Короч еще раз спасибо, анон.
>>797120 >это полоска хп должна быть Зачем ты меняешь слайдер для этого?
Ты либо пользуйся самим свойством у слайдера fill, либо же делай картинку и переставляй у неё свойство на fill и уже её заливай так-же от 0f до 1f.
Как в Unity3D автоматически менять размер InputField при изменении текста?Аноним02/04/22 Суб 16:37:37#54№797164
Как в Unity3D автоматически менять размер InputField при изменении текста? В пустом проекте Unity 3D добавил InputField, он появлился на Canvas. С помощью Add Component добавил Content size Fitter (Script) к InputField. После запуска с помощью Play ввод текста не менят размер InputField. Но если выключить и включить Content size Fitter (Script), то размер меняется. Где и что нужно добавить, чтобы автоматичеки менялся размер в запущенной программе?
>>797129 Это сложно объяснить так. Типа фил у меня отвечает за заполнение в % (то есть 1 до 100 в скрипте), а сама длина слайдера должна быть абсолютной в конкретных числах (если макс. хп у перса увеличивается). Получилось вот так. А раньше все индикаторы всегда были одного размера, менялся только их fill.
Есть какие-то лафхаки как расставлять освещение в закрытых уровнях с команатми, при условии, что оно должно быть динамическим, запекать глобал илюминейшен не вариант?
Вот если я ставлю просто поинт лайт в центре комнаты - получается хуйня, в центре очень ярко, по углам темно. Если дополнить эмбиентом и дирекшиналом - получается получше, но а если мне надо, чтобы были комнаты в которых полностью темно и не должно быть никакого эмбиента, то как быть? Может можно как-то регионы на которые действует эмбмент и дирекшионал настроить?
>>797236 Самый лучший вариант это на ютубе посмотреть пару туториалов со светом, там оооочень много нюансов. Из главного это желаемое качество и параметры видюхи для запекания. Также на свет влияет настройки в качестве продежкта, по дефолту низкие-среднии пидорасят тень сильно. Ну и по стандарту, чем хочешь графонистее тем мощнее должна быть пекарня юзера. В конец обычно совмещают запекание на всей статике, и немного динамик света сверху.
>>797237 >>797268 То есть все таки без запекания лучше не делать? Прост у меня генерируется сцена, поэтому я так понимаю запечь свет я не могу, только если ассет какой-нибудь поискать для этого.
>>797289 поэлементная генерация - всегда плохая идея. Ты можешь генерить секторами, а т.к. запекание света происходит в текстуры, то никаких сложностей потом с настройкой не возникнет, главное отдельную сцену иметь для всех этих настроек. Без запекания никак, да, иначе свет будет неправильный на любых видюхах без рейтрейсинга, а это, как понимаешь, не высокий охват устройств, вряд ли ты ААА проект создаешь.
>>797289 Уже давно придумали всё за нас. Если копался в редакторах разных игр, то должен помнить что обычно уровни состоят из стыков разных небольших кусков, из которых они и собираются, вот их и запекают. Продумай свою архитектуру так чтобы это можно было реализовать, либо забей на свет и не парься о нём.
Скиньте что-нибудь по стейт-машинам, как их писать и понимать. Мне надо для анимаций сделать, а я мало что понимаю пока что из того, что нашел. В материалах она уже написана и ее разбирают по каким-то частям, объясняя, что это значит, но не все части затрагивают. Мне бы прямо с нулей, чтобы каждую строку разобрать.
Мне не понятно зачем там аж три скрипта, почему нельзя например в одном скрипте все сделать. Там пояснили про пару методов, которые в принципе понятны, но остальное почти не тронуто, а мне вообще не понятно что там за строки в Character.
Сап, аноны. Есть внутриигровой магазин с апгрейдами. Апгрейдов несколько, повышение уровня повышает цену агрейда. Пробовал хранить это всё в PlayerPrefs, но возникла проблема: агрейдов много, и для всех них по сути работает один скрипт, но поскольку все сохраняется c одним key, значение цены везде будет одинаковое. Само собой, мне такого не надо, показатели должны быть разными. Можно было бы просто тотально дублировать этот бедный скрипт, везде добавить условную циферку в ключу, чтобы всё сохранялось нормально и работало, но если я захочу переписать скрипт - мне придется редактировать КАЖДЫЙ скрипт у кучи кнопок в магазине. Причем все эти скрипты будут отличаться только в одной строчке (key для PlayerPrefs). Какой есть способ, чтобы не городить кучу файлов с практически одинаковым кодо?
>>797370 Отбой, внезапно придумал. Кому надо будет: создаем private string dvachCost, сериализуем его и меняем в интерфейсе юнити для каждой кнопки по отдельности. Соответственно сохранем с ключом dvachCost.
>>797371 >>797370 Ну пчел, это как бы БАЗА, это знать надо. Всегда так делают когда куча одинаковых скриптов с минимальными различиями (когда у предметов например меняется только айдишник и урон).
>>797371 >>797385 стандартное решение, но не так тупо, как он реализовал, что приходится руками каждую кнопку заполнять. Тут либо отдельный компонент с приватным сериализуемым полем, свойством для чтения и методом для записи, либо СО, что удобнее в будущем для изменения на поддерживаемом проекте. Потом городишь расширение редактора для авто-генерации этих ключей, и, если волнуешься за безопасность, прикручиваешь любой криптошифратор, заморочка на сутки, если впервые реализовывать, зато потом никакого гемора
>>796855 (OP) >Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. А как они проверяют, кто сколько зарабатывает?
>>797422 Они не следят. Но это однажды может всплыть и с тебя спросят, если ты будешь жить в цивилизованной стране. Поэтому лучше не быть жлобом и приобрести лицензию. Unity Plus стоит 400$ за год. Если ты заработал больше 100к, то оплатить не проблема.
>>797506 Блядь, это крайне бесполезная книга, повелся на FAQ полгода назад, зря 1,5к выбросил, любой тутор по юнити от школьника на ютубе конструктивнее и полезнее будет. Если вкатываться, то уж лучше с "Изучаем C# через разработку игр на Unity", либо уж сразу на утубе изучать CodeMonkey, Brackeys, Infallible Code и прочих нормальных пацанов
>>797516 >Если ты заработал больше 100к Ну, если бы я зарабатывал больше 100к в год, то я сам бы купил на несколько лет вперед. Мне кажется, что столько зарабатывают только передовые разработчики АААААААА-игр
>>797532 > Думаю, на unity остановлюсь Хороший выбор. На мобилки планируешь делать? Если да, посмотри игру That Level Again. Игру сделал местный анон. Он добавил подсказки, которые можно смотреть за рекламу и таким образом можно зарабатывать.
>>797541 на трекере есть большие паки разных ассетов, и так-же есть такая штука о которой не упоминают, но ты можешь использовать и ассеты от других движков, по типу моделей/графики/эффектов и звуков.
Поцаны, помогите. Вообще не умею в шейдеры. Может кто шейдер написать или у кого похожий есть уже? Как тут https://pastebin.com/yRPktdSP. Этот шейдер принимает свет и тени на спрайтах, что мне и нужно. Но очень хочется, чтобы была сортировка спрайтов с этим материалом по Sorting Layer и Order in Layer(это не очень обязательно), но самое главное, хотелось бы, чтобы можно было накладывать цвет в рендерере, как в обычным материале спрайта. Готов закинуть на пиво или побольше. Короче еще раз: Нужен шейдер с которым можно принимать свет и тени на спрайт, который можно сортировать как обычный спрайт-материал и самое главное которому можно настраивать свет
>>797643 >>797642 Бля, я сам походу разобрался, сам не понял как но вроде немного разобрался. https://pastebin.com/NPyKW8Ly если кому надо, но это полная хуйня, я сам почти не понял что сделал.
Дайте кто-нибудь спиздить идею для гиперказуалки. Что-нибудь простое, чтобы сконцентрироваться на процессе доведения до релиза и публикации в гуглсторе. С меня нихуя 20% с первого миллиона.
>>797685 Да вопрос не в деньгах, мне важнее сам процесс. Количество скачиваний не имеет значения. Просто приятнее делать что то более - менее осмысленное, заодно персональный челенж. Как насчёт падающего вниз шара, движение которого можно направлять, рисуя пальцем препятствия?
public GameObject Get() { if (cached == null) {создаем его} return Instantiate(cached); } }
То есть мы задаем параметр, потом вызываем функцию Get и она возвращает нам созданный геймобжект в соответствии с параметром.
Но так как объекты абсолютно идентичные - хорошо бы его закешировать и делать Instantiate, что я и сделал. В случае если объект сложный(в плане времени создания - может я там меш генерировать буду большой) дохуя, то это прям необходимо будет.
И тут возникают 2 проблемы: 1. Объект cached который взят за основу создается на сцене. Можно сделать SetActive(false), но не хочется, чтобы бемполезные объекты захламляли сцену.
Можно ли создать какой-то временный префаб, который виртуально существует только в рантайме/внутри сцены и никак не виден?
Еще я могу впринцпе поменять интерфейс и сам порядок работы с этим Govnoм - сделать че-то типа Get(Vector3[] positions) и сразу в нем создать один и заинстантиейтить на остальные позиции, но мне именно интерксно можно ли обойтись без этого?
2. Нету оповещения об изменении параметра amount через инспектор. А оно нужно, если я буду это всё делать в редакторе, а не рантайме. Можно сделать поле lastAmount и делать проверку совпадает ли текущее значение с ним, и если нет то перегенерировать.
Вопрос - а можно ли без написания кастомного инспектора встроить какое-то оповещение об изменении параметра через инспектор? Я могу кастомный инспектор написать, но опять же - интересно просто, можно ли по-хитрому это обойти?
>>797708 >Вопрос - а можно ли без написания кастомного инспектора встроить какое-то оповещение об изменении параметра через инспектор? Можно заговнокодить так, чтобы скрипт работал в редакторе, и в апдейте проверять значение. >Можно ли создать какой-то временный префаб, который виртуально существует только в рантайме/внутри сцены и никак не виден? В чем разница с выключенным объектом? Тебе точно нужен монобехавиор объект? Можешь написать обычный класс сишарповский и создавать его.
>>797714 > Можно заговнокодить так, чтобы скрипт работал в редакторе, и в апдейте проверять значение. Эт да, но это конечно пиздец.
> В чем разница с выключенным объектом? Ну типа иерархия сцены же захламляется, просто снизу будут висеть серые бесполезные объекты. В рантайме пох, а в эдиторе мне такое поведение не подходит.
>Тебе точно нужен монобехавиор объект? Можешь написать обычный класс сишарповский и создавать его. Не, в данном случае мне надо именно создать полноценный геймобжект, а потом спавнить его клон на сцене по вызову метода.
>>797724 >просто снизу будут висеть серые бесполезные объекты. В рантайме пох, а в эдиторе мне такое поведение не подходит Не буду спрашивать зачем. Как насчет спавнить не просто на сцене, а в родительском объекте? Создать объект для хлама и внутри него спавнить дочерние объекты.
В юнити возможно самому замутить кат-сцены хотя бы уровня gta san andreas? Искал на ютубе гайды, но ничего толком не нашел. Нашел только инфу, где показывалось, как профессиональные студии нанимают актеров для кат-сцен и надевают на них спец. костюмы с датчиками.
>>796855 (OP) >на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity" Есть какой-нибудь плагин чтобы этот ролик выключить насовсем?
>>797708 >> Объект cached который взят за основу создается на сцене. ну так потому что ты его инстанцируешь, валера. Вообще, довольно странную хуйню ты задумал, почему не фабрика или прототип, зачем тут СО, если ты сериализуешь только количество. В курсе ли ты, что это в билде не будет работать? Если в курсе, то ты должен быть и в курсе того, как оверрайдить поля СО и монобехов.
>> Нету оповещения об изменении параметра amount через инспектор Так сделай свойство для своего эмаунт и где он используется передавай значение на старте. Вопросы какие-то ебанутые, как и подход, честно
Почему рендер текстура гораздо темнее, чем должна быть? Причём на превью камеры всё выглядит ок, но если налепить эту текстуру на меш, то вдруг становится темнее.
>>797864 Даже больше, добавляю ещё одну полностью пустую сцену, перезагружаю первую сцену - текстура становится светлее. Убираю пустую сцену - темнеет. Перезагружаю - опять светлеет.
Прохожу Creative Core и просто в упор не понимаю нахуя и для кого снимали эти бесполезные видосы с пидорами и трансами, где они не рассказывают ничего полезного от слова совсем? Тупо деляться своими воспоминаниями, ощущениями и мнениями, пиздят что-то про майндсет - вообще охуеть блять. Никакой конкретики, одна вода. Но вроде текстовая часть норм.
>>797518 UiA - это, по сути, обзорная экскурсия по движку для тех, кто его никогда не использовал. С этим книга справляется отлично. Многие вещи оттуда пойдут для примитивного говна и туторов, но для нормального проекта некоторые практики даже вредны - из того что сейчас помню ни слова о порочности использования папки Resources и ни слова о LoadSceneMode.Additive, который, ващет, рекомендуемый режим смены сцен, чтобы не трахать GC лишний раз.
>>797947 (player.transform.position.x, player.transform.position.y + characterHeight, player.transform.position.z) ты вместо координаты передаешь скаляр, получаешь вектор, а не позицию
Аноны, курю второе издание Unity in action. Можете объяснить, почему движение по у двигает игрока назад? Код с книги перепечатывал. Плавающая gravity = -9.8f
void Update() { float deltaX = Input.GetAxis("Horizontal") speed; float deltaZ = Input.GetAxis("Vertical") speed; Vector3 movement = new Vector3(deltaX, 0, deltaZ); movement = Vector3.ClampMagnitude(movement, speed); movement.y = gravity; movement *= Time.deltaTime; movement = transform.TransformDirect }
Двач, скажи почему у меня анимация работает не так, как у других. Мне на данный момент надо, чтобы персонаж просто шел вперед, никуда не поворачивая, анимация такая сделана. У меня он движется, но в превью анимации у Юнити он топчется на месте, а у других такие анимации двигают персонажей в пространстве того же превью Юнити. Посмотрите на скрины, чтобы понятнее стало.
Кстати пацаны есть какой-нибудь гайд по работе сразу в нескольких сценах? Тип UI отдельная сцена, level отдельная сцена и тд. Увидел как совет в видосе у Game Dev Guide, но никакого детального объяснения не было.
>>798019 Ну может потому что это гораздо более удобный и логичный способ работать с элементами игры, который ещё и позволяет одновременно работать в команде с меньшими проблемами?
>>798017 Давно так делаю. По архитектуре у меня так: 1 сцена это связыватель ссылок и в ней же все важные инициализации и данные. 2 сцена это весь ui, или же поделенный еще между несколькими сценами. И последняя 3 сцена это сама игра или её часть, опять же поделенная между сценами. Удобно то что имея 1 сцену+юи, легко перезагружается едро игры т.е 3 сцена, не трахая всё вокруг с обнулением или повторной инициализацией. Из минусов разве что для себя это связывание ссылок через год обьект.
>>797951 >UiA - это, по сути, обзорная экскурсия по движку для тех, кто его никогда не использовал. Там на первой странице написано, что она для программистов которые хотят освоить юнити, всем остальным непопути.
Двач, я не понимаю, как мне обратиться к скрипту в объекте, если он на другом объекте (скрин 1)? Мне нужно из HealthBar на объекте Health вызвать скрипт EnemyManager на V2. Вот это не дает результат, currentTarget не null соответственно:
EnemyManager enemyManager;
public void Awake() { enemyManager = GetComponentInParent<EnemyManager>();
}
public void FixedUpdate() { if (enemyManager.currentTarget != null) { Debug.Log("Hello World!"); }
>>798248 Проверяй места в коде где идёт передача ссылок или получение компонента, где-то нул либо неверное условие. Вставь везде дебаг строки для пущей наглядности процесса.
>>798257 Смущает, но изначально я мыслил, что все Parent объекты в сцене, это дочерние объекты Sample Scene. Это не сработало, я поискал другой вариант: EnemyManager enemyManager = gameObject.GetComponent<EnemyManager>(). Это тоже не сработало. Пока не нашел дургих
Пилю смесь RTS и TD в 2D. Из Ассетов пока только A*Pathfinding бесплатная версия. Стоит ли пиратить платную? Может, кто-то здесь пользовался.
Как лучше сделать обнаружение персонажами друг друга? Сейчас я использую Circle collider с флагом isTrigger, но если будут стены\непросматриваемые объекты, то выйдет не очень хорошо...
Есть персонажи, которые должны драться между собой. Есть два вида атаки - дальняя и ближняя. По идее, сначала персонажи вступают в дальний бой, затем, когда снаряды кончаются, начинается ближний. Однако, пока мой говнокод выдает только то, что при дальнем бою персонаж выпускает снаряды слишком быстро. Попытки использовать InvokeRepeating и проверки с Time.time не увенчались успехом. Куда копать? Напишите хотя-бы слово по которому это гуглить.
В ближнем бою персонажи машут своими "дубинами". Как чекать попадание?. Сейчас я использую активируемый во время анимации атаки BoxCollider, но это выглядит довольно топорно + неясно как при смене оружия менять и коллайдер. Если это будет к примеру копье, то получится ли сделать так, чтобы коллайдер (который будет на наконечнике) двигался во время анимации вслед за копьем?
>>798307 Ммм. я анус на это поставить не готов, но в памяти есть какая то хуйня максимально расплывчатая)))))))) что там надо кастить gameobject as enemymanager, чета типа такого.
>>798275 >Как лучше сделать обнаружение персонажами друг друга? Лучами если важна видимость, или коллайдерами если пофиг. Дополнительно можешь просто цели ввести флаг тумана войны, и если он активен, то юнит просто делает вид что не видит цель, но в списке она содержится и проверяется на этот флаг пока не покинет радиус обнаружения.
>дальняя и ближняя Для дальней вводишь юниту переменную инт с кол-во снарядов, и при проверки если их 0, то только ближний. Для кд атаки просто используй таймер в апдейте или корутину, опять же к примеру с кд 0.5, или 1 сек.
>Как чекать попадание? Я бы реализовал через модуль цели. Юнит определяется что за цель, расстояние, перед атакой чекает жива ли цель, достаёт ли до неё радиусом, и далее если всё ок проигруется атака и наносится урон. Юнит получает цель из своей функции поиска либо же из внешнего менеджера. Если нужно, то чекаешь каждую сек обновление и поиск цели.
>>798328 Теперь я тебя не понял, не знаю в чем разница. Просто взял из иерархии префаб, на котором висит скрипт, кинул в паблик другого скрипта.
По итогу я сделал что хотел, не совсем уверен как, но сделал. В EnemyManager у меня есть public HealthBar healthBar, в этом скрипте я вызываю по методу из HealthBar, когда персонаж жив и мертв:
private void FixedUpdate() { if (!isDead) { healthBar.TurnOnHealthBar(); HandleStateMachine(); }
else { healthBar.TurnOffHealthBar(); } }
В самом HealthBar скрипте тоже есть public EnemyManager enemyManager, нужный, чтобы получать инфу по таргету и bool переменной состояния:
public void TurnOnHealthBar() { if (enemyManager.currentTarget != null) { slider.gameObject.SetActive(true); Debug.Log("Hello World!"); } }
public void TurnOffHealthBar() { if (enemyManager.isDead) { Debug.Log("Bye World!"); slider.gameObject.SetActive(false); } }
На префабе с EnemyManager висит UI с HealthBar и на UI HelthBar висит префаб с EnemyManager. По итогу работает как должно: враг меня замечает, включается хелсбар противника на экране. Враг умирает, хелсбар пропадает. В принципе, это верх моих знаний, другого способа не знаю
>>798336 Unity’s Prefab system allows you to create, configure, and store a GameObject complete with all its components, property values, and child GameObjects as a reusable Asset. The Prefab Asset acts as a template from which you can create new Prefab instances in the Scene .
>>798354 Понял, но на ассеты я ведь не могу добавить компоненты, в особенности скрипт. То есть я могу просто ссылаться на ассет в скриптах для разных нужд?
>>798361 Спасибо, буду им пользоваться в таких случаях
>>798365 >Понял, но на ассеты я ведь не могу добавить компоненты, в особенности скрипт. То есть я могу просто ссылаться на ассет в скриптах для разных нужд?
Почему префаб же можно изменять, добавляй что хочешь. Но вот, если ты ссылаешся на префаб, то я не очень понимаю что ты из него можешь достать, возможно ничего. В юнити ин экшен, например, есть такая конструкция, что ты создаешь переменную, линкуешь в нее префаб, потом делаешь instaniate этот префаб as геймобжект, и только потом тащишь с него компоненты. У меня честно не дошли еще руки почитать мануал на это счет, но сдается мне, кастили там не просто так.
>>798275 >Пилю смесь RTS и TD в 2D. Из Ассетов пока только APathfinding бесплатная версия. Стоит ли пиратить платную? Может, кто-то здесь пользовался. Я пользовался. Хотел вот тоже спросить у кого-нибудь. Судя по списку фич платной версии, это не очень того стоит. Плюс, у этой хуйни лицензия креейтив коммонс — ты должен будешь указать автора алгоритма у себя в игре, а потом ещё спросить у него, хочет ли он, чтобы его код был в твоей игре.
Пришёл сюда спросить, а каким патфайндингом тут пользуются для 2д тейлов? В юнити нет дефолтной фичи, APathfinding имеет анальную лицензию, а другие MIT, но стрёмно как-то пользоваться всё равно. Может кто посоветует чего? Неужели переводить игру в 3д и использовать навмеш?
Ковыряю значит юнити в действии, дохожу до такого момента IsPointerOverGameObject. Ну в целом понятно че это, но хотелось почитать детали. Вбиваю в скиптинг апи, а мне говорит хуй. Ну ок нахуй, вбиваю в гугл, находит скиптинг апи с таким же интерфейсом, но только там какая-то другая версия. Через что-то не помню что, нашел третий скриптинг апи где вроде все есть, но там как-то все всрато и сложно и т.д. Ебаный икибастос святой гейммейкерсутидомануал, есть в этом ебаном юнити нормальное место где описаны все скриптинг возможности?
>>796855 (OP) Кто нибудь сталкивался с ошибкой в пакет менеджере "you seem to be offline" не дающим скачать любые ассеты кроме родных что в папке на диске? Главное в аккаунт логинится, юнька обновляется, всё ок скачивается, но этот менеджер залупается. Причем по прямой ссылки с гита качает, либо же с диска. Не пойму это наши сломали блоками сеть, или из вне такая херь? Раньше никогда такого не замечал.
>>798675 Временное решение подрубаться через мобильный интернет, походу провайдер что-то где-то блочит, залупа канешна. И главное не понятно почему именно только этот узкий кусок, а не что-то глобальное.
Что касаемо боя - пили машину состояний, для привязке к повторению можно использовать корутины Для детекта попадания - нужно подумать как ты хочешь реализовать боёвку. Если твоя дубина может бить сплешем, то надо именно смотреть попадания через колайдеры(например), если хочешь, чтоб 1 юнит атаковал только 1 юнит, то тут надо сделать таргеты и без всяких колайдеров атаку.
>>798797 Нет, есть анимации, которые с включенным RootMotion двигают модель в пространстве, но у меня же она просто дергалась, а не двигалась. Видимо это на этапе анимирования закладывается, что модель движется по координатам, а не в вакууме, ну и игровые движки это считывают
>>798824 Игровая анимация всегда происходит на месте, исключения составляют лишь особые действия или кат сцены. Анимация движение персонажа не входит в это исключение и всегда происходит строго на месте.
>>798828 Либо я тебя не понимаю, либо ты меня не понимаешь. Вот видео, которое изначально ввело меня в ступор, почему персонаж идет вперед без определения ему скорости движения или запекания навмеша: https://youtu.be/eKUkFAz5pUc?t=334 (с таймером на 5:34, смотреть все не обязательно. На 5:34 он прописывает смену фазы анимаций и персонаж движется. Других скриптов на движение нет во всей серии уроков)
Весь смотреть тоже не надо, там показано, что без скрипта на движение можно двигать персонажа в лицевую сторону просто через RootMotion. Обрати внимание, что на этом сраном Mixamo есть пункт In place, который и указывает анимации как ей двигатсья: в пространстве или на месте.
Если это не заранее вшитое в анимацию движения, объясни, пожалуйста, что это и как это сделать в блендере.
>>798829 Нет, ничего не вшивается в анимацию. Возьми блендер и запиши 60 кадров как куб двигается в разные стороны, потом импортни в юньку, и поймёшь. Для наглядности можешь его перемещать во время анимации, и увидишь что центр всегда будет один и тот же.
>>798831 Пчел ну хотяб подтянул матчасть. Знаешь же что в юнити есть xyz, и анимация к ним никак не относится, это просто как гифка которая проигруется на месте.
>>798833 эм, ну как бы вася здесь ты, если анимация задана со смещением координат, то и аниматор может её поддерживать при включенном Root Motion, достаточно только в него потом передавать значение переменных, отвечающих за проигрывание анимации, без привязки к трансформу или риджидбоди
>>798833 Посмотри видео блядина, что ты хуйню несешь то про свои гифки и анимации. Ты можешь глазами зрячими увидеть, что нет либо строки задающей движение персонажу, как в первом видео, либо нет вообще скрипта на движение, как во втором. Что ты блядь несешь, нахуй
>>798834 >Root Motion При чём тут рут мошион? Он вообще относится к анимации и её лупам, и никак к разговору.
>анимация задана со смещением координат Я же писал про кубы, ты можешь какую хочшеь анимацию сделать, но у неё будет конец и перед в другую, либо луп. Как думаешь почему это физически не возможно передвигать объекты с помощью анимации?
>>798835 >видео Блядина тебе и объясняю, мало ли что ты видишь в видео, ты блядь проект не видишь весь, и что там натыкано на объектах. Я же тебе объясняю как работает ебучая юнити, и там нету никакой магии как движение объектов с помощью анимаций, и такое нигде не применяется.
Челы я понимаю вам охота попиздеть, но вы посмотрев пару видосиков про юньку на ютубе не туда лезете, у меня многолетний стаж работы в ней.
>>798836 >ты блядь проект не видишь весь, и что там натыкано на объектах.
Весь проект чего блядь и каких нахуй объектов? Весь проект юнити? Всех объектов, которые используются в проекте? Тот сука сымый проект, который растянут уже на 16 выпусков, я не вижу что в нем натыкано? В том сука проекте, который создавался с голой арены, в нем я не вижу что находится? На тех сука самых объектах, которые снимаются на ОБС, я не вижу что на них находится? Я не вижу все скрипты, которые рассасывались 15 выпусков, которые висят на объектах? Их я блядь не вижу?
Многолетний страж, ты смотрел видео, мразота? Как сука движутся модели в пространстве без прописанного в скриптах движения, ты можешь ответить на этот вопрос? Поделись опытом многолетняя робота
>>798836 >Он вообще относится к анимации и её лупам ясно, иди нахуй >>798837 Ты уже, видимо сам разобрался, нужно в аниматор добавить float (если хочешь скорость контролировать, или в деревья лево-право мешать), либо булевую, если просто проигрывать или нет, а в condition нужной анимации поставить зависимость от этой переменной. В скрипте при инпуте передавать в аниматор SetFloat или SetBool и все будет работать на рут моушн. Твоя анимация In place, так что да, работать так не будет
Выкатываюсь, снова. Вроде тупить перестал, но тут я добрался до системы частиц и не могу даже правильно на английском загуглить. Есть такая проблема, делаю костер текстурку 2Dшную нарисовал в ФШ экспортировал в пнг и закинул. Пытался сделать материал от particalSystem, но там вобще розовая текстура и нихуя не меняется, как бы не старался. В чем проблема: создал от основного шейдера материал, кинул на него текстуру и кинул в Render партикал систем. Там появляются артефакты в виде рамок/фона. Спрайт определил в 2д текстуру рендер частиц от билборда. Как фиксить? Нихуя не понимаю и подобрать слова для гугла не могу
>>798971 Открываешь любой гайд на ютубе по партикулам который не старше +-1-2 месяца и делаешь по нему. От и до. Там обычно все ньюансы показываются в том числе и прозрачность. Новее всего будет по шейдеру, и там на самом деле не сложно. Потрать пару часиков, зато выхлоп будет стократный.
Оф курс от юнитеков по спецэффектам, в частности системе частиц. Только что прошёл, весьма годно. судя по всему ты проебался чутка со спрайтом, тут тебе надо разбираться отдельно, но черного фона быть не должно. В курсе предлагается скачать проект, там есть готовые спрайты, можешь посмотреть чем они отличаются от твоих.
>>798946 >В чем проблема: создал от основного шейдера материал, кинул на него текстуру и кинул в Render партикал систем. А лол, ну так ты шейдера материала не для партиклей выбрал. Тебе нужно поменять на particle/unlit. Пикрил. А курсики от юнитеков то окупаются!
Ребят, помогите плиз нубу.. Наверно вопрос избитый сто раз, но я рабочее решение так и не нашёл.. Упростим задачу, вот есть некоторый объект, расположенный на 2д плоскости, и некая стрелка, которая должна показывать на этот объект. Всё в 2д. Надо как с этими Квартерионами задавать вращение стрелки, что бы она показывала на объект. Уже всё перепробовал, Vector.Angle, Quaternion.FromToRotation, Quaternion.LookRotation и т.д и т.п, всё не работает, или я им неправильные параметры задаю. Я могу сам сделать без квартерионов, используя тангенсы, но там получаются условия, которые бы хотелось избежать. Наверно решение простое то..
>>799201 Чето ты с жопы начал делать. У тебя 2D, нахуя ты вектор3 юзаешь? У тебя есть 2 объекта, бери координаты у куба XY и рассчитывай поворот по Z у стрелки и все.
гуйс, такой вопрос. В общем решил так сказать немножко отвлечься от мануалов и применить на практике скупые знания путем создания игры пятнашки. У меня есть стартовый массив, в котором просто числа от 0 до 15. Есть метод, который берет данные из этого массива и возвращает второй массив, но числа в нем перемешаны. Не знаю зачем, но я просто хочу пока стартовый массив сохранить неизменным. В коде у меня получился пик. Вопрос в том, есть ли какие-то другие методы копирования массива в массив, чтобы копировалось именно значение, а не ссылка.
>>799522 Луль))) вообще не ебу. верхнюю часть по идее можно вообще убрать.
Карочи. у меня есть префаб одной игровой плиточки, который при инстантиейте подсасывает из массива число и отображает его сверху плиточки, если 0, то не создается нихуя. Я процикливаю массив и таким образом создаю игровое поле.
Проблема в том, что я пока не придумал как мне задать условия победы и именно поэтому я не перемешиваю стартовый массив, в котором числа тупо по возрастанию, а создаю другой, в который закидываю значения из первого и перемешиваю. Чтобы возможно потом задать каким-то образом условия победы через какие-то манипуляции с массивами. Как будет на самом деле я вообще не ебу, я только сегодня начал чета делать и оно в таком виде потому что ну хоть какая-то нить.
>>799524 Ну вот придумал кстати, каждая плиточка будет чекать через рейкастинг соседние плиточки и проверять номерочек. Верхний/нижний +- 4, боковые на +-1, когда у всех плиточек сработает тогда вин. Балдеж. завтра напрограммироваю.
>>799524 Так не легче сделать так: У нас есть массив XY, где X строка а Y столбец и ячейки xy_ab, где ab это рандомное значение места необходимого. Прокидываешь xy_ab эксклюзивные значения, условие победы: у всех ячеек xy_ab, xy==ab. Ну по крайней мере я бы так делал, плюс считать удобнее по горизонтали y+-, лево право x+-.
>>799573 В общем решил я сделать так. Есть один одномерный массив из 16 ячеек. Перемешиваю, инстанцирую плиточки с рандомом номеров. Когда я буду двигать плиточку, то номер этой плиточки будет свапаться в массиве с 0, обзначающим пустую клетку игрового поля. В итоге условием победы будет, что при проциклевании массива значение в ячейке совпадает с индексом ячейки+1 и все. т.е. А метод движения плиточек будет через рейтресинг работать, тупо чекнул 4 вектора, где нет колизии поехал на нормализованный вектор, т.к. сторона плиточки равна 1.
Есть 2 шейдера пикрил - пик1+пик2 типа фон(две диаграмы вороного едут в противоположных направлениях и дают свой вклад в синий и красный цвет соответственно), пик3 типа мерцающие звёзды, поясните, сделал ли я тут что-то совсем очевидно ебанутое и непраильное?
Я просто повесил на фон два спрайта и на них эти шейдеры, и на телефоне оно в районе 30 фпс выдаёт. Как только отключаю фон - сразу всё норм. Но сцена по сути пустая, может поэтмоу я не знаю - может звёзды эти там тоже в 60 фпс еле крутятся, а мне такой не подходит. На компе - что с фоном что без рендеринг 0.9 мс стабильно, поэтому не знаю даже как тут пытаться выловить в чем проблема.
>>799639 >Как только отключаю фон - сразу всё норм. >как тут пытаться выловить в чем проблема. Вроде очевидно, нет? С частицами у меня все хуево, могу лишь сказать очевидное: где то создается нагрузка, которая жрет фпс. Возможно большое разрешение текстуры и из-за их кол-ва частиц. А вобще, пиши более внятно очень сложно понять что куда ты кинул
Аноны, нужно ваше мнение. У меня есть две сцены: главное меню и игра, и синглтон с настройками. Мне нужно, чтобы после нажатия в главном меню кнопки начать игру, после загрузки сцены игра синглтон один раз вызывал метод, который формирует игровую сцену. У меня в голове пока есть такое решение. В синглтоне есть булева переменная. В апдейт методе код сначала проверяет ее, потом проверяет имя сцены, если все ок, то исполняется код формирующий сцену, а булева переменная меняет значение. Норм ли такое решение? Я пробовал найти какой-то метод, который чекает смену сцены, чет не нашел.
У меня есть много видов пуль и всяких снарядов, на них висят разные скрипты и эффекты попадания, соответственно я хочу сделать пул для каждой их разновидности.
Как в таком случае мне задавать тип снаряда конкретному оружию? То есть сейчас я просто делаю префаб снаряда, делаю префаб оружия, и в префаб оружия даю ссылку на снаряд, и он каждый выстрел его инстантиэйтит. Если я сделаю пул, то такое уже не пройдет.
Я конечно могу сделать просто текстовое поле и глобальный пул менеджер, который по строке будет давать нужный пул из словаря например, хотелось бы более нормальное решение.
>>799767 Не понял что ты хочешь. Проверять какая сцена загрузилась? Вставить между двумя сценами еще одну для своей логики? Вызывать одну функцию которая будет смотреть что тебе надо и потом запускать в нужном порядке?
>>799778 Самый лучший метод это не инстансить а держать в памяти пулю, или её группу, и просто включать выключать. Хранить снаряд можешь ссылкой при инициализации сцены, один раз в начале подгрузка, потом просто ссылка.
>>799785 >Не понял что ты хочешь. Проверять какая сцена загрузилась? Вставить между двумя сценами еще одну для своей логики? Вызывать одну функцию которая будет смотреть что тебе надо и потом запускать в нужном порядке?
не. у меня геймменеджер, который донтдестройонлоад. В нем есть код, который должен сработать один раз при загрузке сцены. Когда была одна сцена, то код просто лежал в Start и было норм. Но теперь у меня две сцены и код должен отработать во второй. Соответственно моя идея в том, чтоб Update в менеджере чекал имя сцены и на нужном имени уже запускался код. конкретно в этом решении мне не нравится, что оно в апдейте. Поэтому интересуюсь насколько оно норм вообще в таком виде.
>>799800 я делаю все то и оно у меня работает как надо, меня интересовало насколько такое решение вообще ок, может есть какие-то методы полезные в работе со сценами, котоырые я не нашел и с помощью которых можно было бы сделать по другому.
>>799790 вот тут мое решение. мне не нравится, что оно в апдейте, хотелось бы, чтобы проверка была только один раз, сразу после загрузки сцены, а не каждый кадр.
>>799804 >вот тут мое решение. мне не нравится, что оно в апдейте Так в апдейте никогда ничего не должно быть кроме функционала который по сути не может работать в другом месте, по типу перемещения и т.д. Есть даже такой дедовский способ что люди пользуются корутиной с тиком 0.1/0.2сек по аналогии с апдейтом для своих нужд, но думаю это не твой кейс.
>>799854 Конечно нет. Корутина по своей сути аналогия апдейта, но её плюс в том что юзается она лишь когда надо, и с меньшей нагрузкой, а не всю игру или до того как в ручную скрипт отключишь.
У меня есть враг(много врагов) и надо сделать ему анимацию смерти(просто цвет плавно меняется до прозрачного). Я могу просто в скрипте сделать переменную timeToDestroy, и соответственно как только враг умирает - отключать коллайдер и компоненты логики, и в апдейте начать уменьшать timeToDestroy и интерполировать цвет, после чего уничтожать объект.
Через что лучше реализовать блокировку взаимодействия через несколько слоев , дефолтного ивента, через который можно блокировать взаимодействие через UI мне не хватает?
>>800120 Я был в супер плохом настроении, у меня течная собака с утра весь пол зашкварила, и не выспался((
>>799845 >Так в апдейте никогда ничего не должно быть кроме функционала который по сути не может работать в другом месте, по типу перемещения и т.д. Есть даже такой дедовский способ что люди пользуются корутиной с тиком 0.1/0.2сек по аналогии с апдейтом для своих нужд, но думаю это не твой кейс.
трекаю твоей кейс на пике. чи да чи ни? каждый ход игрока запускает юнитиэвент с проверкой условий победы и стопает таймер, который считает время с начала игры.
>>800123 Зачем тебе чекать условия в корутине которая точно так-же работает как апдейт, если ты можешь чекать условие по прошествии действия к примеру? К примеру игрок сделал ход - Проверка условия победы/поражения. Если нужна проверка на время то да, такое только в апдейте.
>К примеру игрок сделал ход - Проверка условия победы/поражения.
у меня так и сделано. Через юнити евент. А корутин отдельно вообще. но в случае победы метод, который срабатывает по евенту останавливает корутин и соответсвенно я получаю время потраченное на победу.
>>800123 >Я был в супер плохом настроении, у меня течная собака с утра весь пол зашкварила, и не выспался(( Да понятное дело, однако представь, все бы тут кошмарили друг друга проебом в референсе, ладно тебе повезло за 20 мин ответели, мне иногда днями не отвечают, я думаю гуглом бы ты в два раза быстрей нашел ответ
Раз такая пляска, что не посылают в гугол, как сделать, чтоб при столкновении колайдеров оружия игрока и объекта шла анимашка реалистичная типо он назад сдал, партиклсистем уж сам пришью
А что если собирать игровые объекты из кучи маленьких компонентов, которые связывать между собой юнитиевентами через редактор? Вот как на прикрил с Health я сделал. Какие подводные камни/в чем я не прав?
Прост везде вижу, даже в примерах от самих юнити, которые в юнитихабе можно скачать, всякую хуйню типа EnemyController или PlayerController с миллионом каких-то разных полей(совершенно разных - и ссылка на систему частиц, и скорость, и количество хп - всё в одном), каких-то зависимостей зависимостей. Соответственно чтобы нового немного другого врага сделать - нужно делать новый компонент или модифицировать этот.
А если делать так, как я сделал - то просто сразу в редакторе еще один маленький компонент накинул, в нужный триггер что надо дописал - и вот новый вид противников готов.
>>796855 (OP) Сап юнитач, не могу вкурить нажатие циферок на клавиатуре. Короче любое нажатие буковку могу привязать к дейсвию, но как только пытаюсь использовать клавиатуру 1, 2, 3, для смены типа оружия юнити никак не реагирует. Где я обосрался?
if (Input.GetKey (KeyCode.Keypad7)) { //действие }
>>800155 Если у тебя всё работает как надо и удобно, то никаких подводных. Проблемы велосипедов обычно начинаются и приумножаются когда растёт игра и усложняется её структура. И далее в дело идут либо еще велосипеды, либо полное переделывание внутренностей.
>>800165 GetKey обрабатывается каждый кадр, используй Input.GetKeyDown("Space" либо через KeyCode.Space) он срабатывает один раз при нажатии.
Keypad7 Это клавиши на нумпаде с включённым нумлоком обычно. Для обычных используй KeyCode.Alpha1,2,3,4 и т.п.
>>796855 (OP) кто-то может пояснить за пиратство ассетов? Что мне будет, если я спирачу пару ассетов и буду продавать такой проект? Это вообще как-то смогут спалить?
>>800190 Да это чекается, но очень редко, и в основном по заявлению владельца. На глаз никто не будет смотреть. Проблемы начнутся когда ты оформишься в сервисе где будешь получать деньги, т.к там ты указываешь все свои данные, и когда спалят будет несколько дальнейших вариантов событий, от обычного бана и всё, до заявления.
Не хочу лишний тред создавать, пишу тут. На досуге решил почитать на лурке статьи по индусо/школо/быдло коду. Интересно стало, как на юнити выглядит быдлокод. Со шкильным понятно, там скорее всего циклы, файнды, и геты в апдейте. Просто решил проанализировать и сразу убрать хуевые привычки, если найду
>>800265 Там больше будет комбо быдлокод + не правильная архитектура. По коду будут везде паблик поля, миллионы переменных без массивов/списков/диктов, возможно вся логика игры в одном скрипте, куча всего в апдейте. По архитектуре будет куча объектов без четкой иерархии, не будет префабов или скрипов, куча динамик света, использование скриптов на объектах где всё будет в апдейте на каждом, назначение зависимостей в ручную путем перетаскивания в гуи, вся игра в одной сцене, большое кол-во скачанного из асс стора из-за чего вес папки проекта может достигать и сотки гб.
>>800280 Ты про кнтр+с и кнтр+д объектов? Глобально ничем. По памяти могу сказать лишь что было пару моментов когда сам эдитор юнити багал и обычное копирование ломало объект, и пришлось дублём множить, но это исключение.
>>800267 > паблик поля Вот кстати, я понимаю что при играх с онлайном, даже локальным требуется соблюдать приватность переменных, но вот если это сингл, думаю проблема не критичная. > возможно вся логика игры в одном скрипте Ну это пиздец, как вобще можно кодить более 200-400 строк > вся игра в одной сцене Вот кстати, пока еще не доходил, пилю архитектуру, но как условно в 3д опенворлде пилить многосценовость? Я что то слышал, про то что слепить сцену и резать ее, и потом при приближении подгружать и выгружать
>>800299 > Вот кстати, я понимаю что при играх с онлайном, даже локальным требуется соблюдать приватность переменных, но вот если это сингл, думаю проблема не критичная. Чееееел... Приватные/публичные поля никак не защищают данные. Это чисто архитектурное решение, которое на что-то влияет только в ИДЕ.
Вот представь - ты написал класс Health, все заебись. Прошло несколько месяцев и тут ты решил сделать нового противника, который хилится раз в секунду - пишешь такой: Health health = GetComponent<Health>(); Потом где-то в корутине или апдейте пишешь health.currentHealth += 30 Казалось бы все норм.
Запускаешь игру - и видишь как текущее хп у противника стало больле максимального. Поэтому чтобы такой хуйни не было ты делаешь currentHelath приватным, и делаешь метод public void AddHealth(float value) { currentHealth+= value; if (currentHealth > maxHealth) currentHealth = maxHealth; } И все - в следующий раз когда ты напишешь health. - тебе в подсказках вылезет метод AddHealth, а есди попытаешься использовать currentHealth - вылезет ошибка.
Да, этот пример простой, а представь более сложный пример, где внутри класса должна поддерживаться какая-то особая связь между его полями, и изменяя одно, должны меняться и другие, или евенты вызываться, или делаться проверка недопустимых значений. Держаться все это в голове для каждого класса нереально. Ну и отдельно надо выделить когда ты меняешь реализацию, удаляешь какие-то переменные - и все зависимые классы сразу ломаются, и надо все переделывать. А с приватными полями пох, один метод переписать, условно.
>>800313 Видимо я вобще очень странно пишу код. Просто для каждого раздела объектов пишу другие скрипты. Я вкурсе за ООП, но мне кажется такой подход более логичный, но по крайней мере с такими ошибками я не сталкивался. Я студяга, который изучал чистый C 2 года назад, так что стало интересно, тк на шарпе начал кодить пол года назад. Ну я ознакомился с основными подводными камнями на юнити и у меня столько скриптов и никаких проблем не ловил. Мб я заблуждась или живу на фарте, но я присошаюсь
>>800313 Лол так это просто написание удобных методов, я могу их вместе с паблик полями иметь. Тут скрывать поля имеет смысл если ты работаешь не один и боишься что джуны-долбоёбы начнут напрямую менять их не разобравшись с классом.
>>800299 > но вот если это сингл Опять же не критична пока у тебя маленькая игра на пару десятков скриптов и запутаться не возможно, но как только она разрастётся во что-то большее сам же будешь тратить дополнительное время на попытку понять что-куда относится, это как правила ТБ написанные кровью, понимают лишь те кто проходил.
>Ну это пиздец, как вобще можно кодить более 200-400 строк Удивлю но в скрипте может быть и пару тысяч кода, не всегда есть возможность разбить кусок логики на кучу мелких, тем самым породив за пару тысяч скриптов в сумме.
> но как условно в 3д опенворлде пилить многосценовость? По аналогии с лодом работает, игрок видит/не видит, находится ли в области и идёт подгрузка сцена, при не надобности выгрузка, относится этот метод не только к большим сценам, но так-же например к высоко полигональным, как в RE в каждая комната может подгружаться отдельно.
>>800270 Да проблема решилась, надо было просто выбрать медиэйшн как один из способов монетизации и всё заработало. Кстати гугл плей там не собирается девелоперов пидорить? Без впна даже в консоль не пускает. Только покупку запретили пока что?
Чё за хуита? Я уже даже от админа попробовал. Где логи хоть какие-нибудь поглядеть, а то еррор и всё тут. Перед этим запустил версию какую то старую которая была установлена и было всё норм, удалил чтоб лтс поставить, а оно не ставиться Ток решил вкатиться в очередной раз и тут такие подарки от юнити. Неужели придётся в говнот идти?
>>800349 >>800350 Проверь есть ли место на диске, запущен ли хаб от админа, есть ли право записи на диск, соответствует ли мин.требованиям пс. Для универсального решения удали хаб и юнити, в ручную почисть апп дату, и прог файл с прог дата, потом пройдись клинером, перезагрузи пс и установи хаб сначало.
Прошёл все pathways от юнитеков. Креатив кор прошёл последним. В качестве ознакомления с движком и его возможностями весьма полезно было. Пришло время собсно начать делать игру.
Попробовал взять First Person Controller юнитивский, и стоило мне попробовать поменять капсулу на их же гуманоида-арматуру как сразу начали вылезать косяки, связанные с синемашиной. Я вот теперь думаю разбираться с этой сраной синемашиой или написать свой фпс контроллер, который тупо берёт данные мышки и клавы и крутит камеру?
>>800380 Свой напиши по аналогии, там не сложно и синямашина не нужна, а вот с фёрд пёрсоном где камера вокруг да еще и с коллайдером, там придётся сексом хорошо позаниматься.
Ребят, пожалуйста не бейте, у меня отвалился прогер на курсовой проект, времени читать и изучать это дерьмо нет, ничего не знаю совершенно. Вопрос такой, нужно прикрутить к игре локер игрового процесса, типа, в сутки можно играть только 30 минут, обычная привязка к времени устройства, по истечению 30 минут появляется алярм и игра вынуждает выйти. Как это реализовать?
Прошёл тутириалы, они были на 2020 версии, решил попробовать 2021, и сразу стопорнулся на том чтобы тупо ловить данные мышки - мне эдитор заявил что у него стоит новая инпут система, я пошёл смотреть что там за залупа, а там ебля с созданием инпут экшонов, генерацией скриптов и прочих интересностей. Вы через эту залупу работаете или просто на старых версиях?
>>800513 хз, я ничего такого не заметил. начинал курить юнити с 19ой, сейчас пишу первую прогу на 21. в 20й последней версии кстати багнутый аниматор, не работают связи.
>>800513 >>800515 Делай на старой, на новой получится удобнее и универсальнее, но там нужно время чтобы в неё вкатиться и понимать как её реализовать. Потом просто отведи для этого пару часиков и вкуришь.
>>800636 >А в чём преимущества если не сложно пояснить? Очень универсальный менеджер инпута с более удобной глобальной настройкой, маст хэв если собираешься делать управления для разных девайсов. Для обычно анона можно спокойно и без него обходится ванильными инпутами в апдейте, почти ничего не потеряет.
>>800649 Понятно, я сейчас делаю прототип, или даже пруф оф концепт, отложу знакомство с этой радостью до момента когда подойду к конечной версии игры и задумаюсь о какой-либо платформе кроме винды.
>>800649 >>800651 Главное преимущество там совсем не в удобстве сегрегации по девайсам хотя и весомое и даже не в простой настройке через сам эдитор, а в охуеть какой гибкости на уровне кода если работать. Вот так выглядит мой инпут контроллер последние 3 проекта ни на строчку не меняясь:
>>800618 >есть подозрение, что эта хуйня продолжает работать после завершения работы и плодится после вызова Есть Debug.Log(), чтобы проверить >как это фиксить Единственное что могу предположить, из-за того что asyncOp.isDone постоянно == false, он его и крутит
Сап. Я нуфаг. Такой вопрос: Я создал анимационный клип на объект (это типа экземпляр оружия), положил его как компонент Animation, поставил в свойстве Legacy. Потом прибиндил скриптом проигрывание этой анимации на нажатие кнопки. Так вот, система взятия этого "оружия" "персонажем" состоит в том, что в момент взятия скрипт включает у него компонент ParentConstraint и отключает кинематику, гравити и может что-то там еще. Так вот, анимация проигрывается только на объектах, которые лежат свободно, а взятый в руку игнорит анимацию. Это можно как-то пофиксить? Я только пару вечеров в Упити, сорян если вопрос очень тупой.
>>800767 Ну, да. Мне пока интересно было бы на голом скрипте сделать. С аниматором надо трахаться чтоб понять как там че устроено. А скрипт я просто закрепил на GameObjecte и могу пинать в любой момент. Но он почему-то пинается у всех инстансов этого "оружия" в сцене (так и задумано на время дебага, планировалось что потом я буду точечно пинать анимацию у того, что в руках), кроме того, который привязан к персу через ParentConstraint. Может, конечно, надо было делать так, что оружие в момент взятия становится "потомком" чисто по иерархии персонажа, но мне показалось красиво что в дереве все статично, а объект просто сам по себе через Constraint следует за персом.
>>800783 >С аниматором надо трахаться чтоб понять как там че устроено. На самом деле нет, потрать 10 мин чтоб разобраться, потом будешь на легке использовать. Вкратце суть: Ставишь на объект аниматор, создаешь клип, заходишь в клип и клацаешь запись, далее делаешь любые действия с любыми объектами, не забывая менять ползунок на шкале анимации, и в конце стоп. И в итоге ты можешь реализовать что угодно воспроизведением одного клипа.
Понял что глаза разбегаются когда смотрю на свой код, а это значит что поря привести его в порядок, вывести логику в методы где можно, дать переменным более семантические названия, разделить всё логично пустыми строками, ебануть комментариев где семантики маловато, переписать логику где можно, заменить её на попроще.
>>800786 Буду пробовать. Просто не совсем понял зачем нужна прокладка в виде аниматора, который вроде как нужен для связи кучи анимаций и стейтов между собой, по возможности с минимум кода, для проигрывания единственной анимации по тупому прожатию кнопки. Ну и вообще я просто хотел побольше покодить и поменьше торчать в визуале, джаст фор релакс. Спасибо анон. за ответы.
>>800783 Видимо проблему я сразу вычленил. >Ну, да. Мне пока интересно было бы на голом скрипте сделать Зачем будучи нуфагом изобретать велосипед? Аниматор - бест инструмент юнити, наверное. Тем более, вместо того чтобы тратить время еще и на прописывание анимации в коде, ты можешь просто 1 строкой пингануть в аниматор необходимую переменную. >С аниматором надо трахаться чтоб понять как там че устроено. 10 минутного гайда на трубе хватает, для понимания основного функционала (опущу работу с масками и тд, хотя сам еще в это не сильно погружался) >Может, конечно, надо было делать так, что оружие в момент взятия становится "потомком" чисто по иерархии персонажа Да. Самая простая реализация анимации оружия, что в скелете персонажа у нужной кости создаешь пустой ГО и суешь его туда, и он в след за анимацией персонажа двигается. Падажди ты делал анимацию оружия???
>>800791 Я его понимаю тащемта, потому что ГУИ аниматора это просто прокладка для кода, некоторым людям проще с кодом работать чем таскать эти ебучие иконки.
Для программиста причём этот ебучий аниматор может быть тупо неудобным. Потому что тебе надо вылезать из своей ИДЕшки, залезать в унити, двигать иконки стейт машины, задавать условия кликом мышки, а потом возвращаться в код, ловить события или наоборот самому их создавать чтобы контроллер их ловил. Лучше и удобнее в отдельной вкладке ИДЕ иметь код с контроллером и всё. Что-то сложное делать с этой ГУИ заебёшься.
>>800792 >некоторым людям проще с кодом работать чем таскать эти ебучие иконки. Ну допустим хочется кода, ради кода. Но тут возникают уже заебы в архитектуре и тд, если аниматор для объекта занимает один слот, условно, то реализация через код сулит не только кучей ненужных файлов, но и возможными ошибками и артефактами. Я не думаю что написать скрипт анимации имеет больший КПД, чем перенести 1 анимацию в аниматор, добавить в аниматоре 1 переменную, и провести одну стрелочку. Я думаю даже, это более дебильный подход, просто из-за распыления сил на придумывание велосипедов. Я еще могу понять, когда скила на реализацию не хватает как анимаировать и приходиться обращаться к миксамо, или моделить и обращаться к ассетам, но создавать самому проблемы которые могут обернуться пиздецовыми рисками с архитектурой, я считаю ну таким. И такая штука показательная на самом деле, если тебе сложно 10 минут посмотреть на ютюбе разбор аниматора, то вряд ли ты что то сделаешь, каким бы ты не был ахуенным кодером, имхо
>>800793 >Для программиста причём этот ебучий аниматор может быть тупо неудобным. Потому что тебе надо вылезать из своей ИДЕшки, залезать в унити А нахуя лезть в инди? С таким рвением можно перейти на плюсы и читсяк с подключением ебучего опенГЛ'а, и кодить сколько душе угодно. При разработке у меня сразу включенны Unity, 3dsMax, vc, blender(для анимаций, потому что в максе хуета, а маю не хочу трогать), photojop и ничего, меня это не раздражает, а наоборот я разгружаю голову меня софт по мере проблем. А тут разобраться в однокнопочной ГУИ, которая предлагает решение, вызывает проблемы...
>>800794 >>800795 Пчел, если тебе удобнее работать с ГУИ, то работай в ГУИ, я просто чутка умею в программинг и вижу что контроллер это просто стейт машина, где вместо кода у тебя иконки, которые надо двигать, у кого есть понимание как это работает на уровне кода и мужество работать с API, который юнити предоставляют как раз для таких случаев, то им во многих случаях будет удобнее работать через код. Я сам скоро начну пердолинг с анимациями и заранее предвижу что тоже не буду пользоваться ГУИшкой, а буду ебашить всё через код.
>>800798 > я просто чутка умею в программинг Я тоже и что? Ты мне объясни смысл пердолинга с кодом? Те ты предлагаешь создавать анимацию для всех объектов, как чел выше, засирать проект кодом, когда ты можешь просто привязать трансфер оружия к анимации ГГ? В чем логика? > у кого есть понимание как это работает на уровне кода и мужество работать с API, который юнити предоставляют как раз для таких случаев Каких случаев? Что экстроорднароного в геймплее ты придумал для анимаций, что приходиться все это пилить, путем засирания проекта скрптами? Такой подход при разработке, полностью игнорирует принципы ООП. Да гуи, но это не визуальное программирование, там ты можешь отслеживать в реал тайме переход анимации, чего в IDE не можешь, плюс ты можешь отслеживать поведение анимация, а не тратить кучу времени на то, где же ошибка, когда анимация хуево работает. Опять же в 1 аниматор ты можешь засунуть дохулион анимаций для префаба, а для кодинга, ты лишь увеличиваешь архитектуру игры и вскоре запутаешься
>>800791 >Падажди ты делал анимацию оружия??? Ну да. На данный момент там вообще нет никакого 3D персонажа, есть дефолтный FPS контроллер, я хотел сделать чтоб можно было подобрать запиленный быстро в 3D редакторе меч. Ну на сам меч я натянул анимацию удара. Хотел ее активировать, пока меч привязан к "руке" через Constraint. Олсо, пока писал понял что это все бред с точки зрения архитектуры, и нужно "руке" создавать анимацию, а меч лепить к ней статично. Тогда не будет например такого затыка, как разные стили удара для разных потенциальных персонажей. Да и вообще с точки зрения правильной композиции это верно будет. >>800792 >>800793 Именно так, я прост по работе погроммист (не гейдев, правда), и мне тупо нравится этот род деятельности. По крайней мере, иногда. >>800795 >перейти на плюсы и читсяк с подключением ебучего опенГЛ'а, и кодить сколько душе угодно Прикол в том, чтоб видеть как все получается, какой-то визуал, и не через неделю, а быстро. И еще в том, что там будет дохрена всякой еба-математике, а дрочить API скриптов юньки сорт оф отдыха. Олсо, всем спасибо за ответы. Пока все понятно
>>800806 >Олсо, пока писал понял что это все бред с точки зрения архитектуры, и нужно "руке" создавать анимацию This >Прикол в том, чтоб видеть как все получается, какой-то визуал, и не через неделю, а быстро. И еще в том, что там будет дохрена всякой еба-математике, а дрочить API скриптов юньки сорт оф отдыха. Собственно я выше и расписал, как правильнее будет это все. Сам в шараге сдавал OpenGL и матерился на это говно, я привел его к таким аргументам по типу "Хочу делать игру но хочу только кодить", потому что с таким же успехом можно делать текстовые рпг в .bat файле А так, базовые вещи аниматора просты, если углубляться то да, ебли немного есть, но она аргументированна. Из самых пока для меня сложных вещей, является FX система и ели ели я как то справляюсь, так что удачи в изучении юни
>>800808 Да ничего. У меня вообще толком нет идей. Просто создал террайн, замазал его текстурой, накидал какого-то средневекового говна чтоб был хоть какой-то сеттинг, разложил эти мечи и топоры, да поставил перса. Плюс наскриптовал что можно оружие брать в руки и бросать, да еще при наведении на него "прицела" появляется плашка с его названием. Это и вся "игра" лол. Я просто юньку суммарно пару дней учу, и то начал 3 года назад, вот только реанимировал проект. и так ничего не знал, а сейчас и то забыл. Правда, бустанул программирование за эти годы на 5000% примерно. Уже снес кучу кринжа из скриптов. Из-за того что я нихуя не знаю, никакого сюжета нет, просто хочу замутить какие-то гейм механики, типа махания, фикса коллизий от ударов, какие-то HP у каких-то бочек которые будут списываться от урона. Короче, голую технику надо сначала запилить. >>800810 Уже сделал через махание псевдорукой, и этот "меч" теперь нормально к ней липнет по прежней схеме, через констрайнт. Спасибо за наводки и мотивейшен, анон.
>>800799 Сап юнитач, подскажите, как можно обнулять ссылку на объёкт не удаляя его? У меня есть боты которые ищут врагов, они находят и убивают их, но проблема в том что я не хочу чтобы их трупы сразу удалялись, поэтому у меня просто проигрывается анимация смерти валяется гора трупов. Но мои боты не перестают атаковать трупы, так как их объекты по прежнему не Null, пробовал насильно объявлять каждого врага мёртвым и присваивал ему значение NULL не помогло.
Я ещё помнил, что можно удалять как то все скрипты с объекта, но забыл конструкцию, может кто знает чего делать?
как правильно сортировать полупрозрачные пересекающиеся поверхности? трава, листья деревьев, волосы и т.д. сортировка по render queue выглядит нормально только с одного ракурса, а cutout выглядит ужасно.
>>800901 Самое просто - добавь скрипт с одной булевой переменной на всех врагов, при спавне тру, а как только они умирают фалсе. И проверку при нахождении если фалсе, то игнор.
Аноны, кто сталкивался с таким? Повтыкал unity и проект в исключения для антивируса. Фаервалу приказал разрешить доступ к инету, но один хуй эта ошибка
>>800938 Так он тебе прямо и пишет, нет доступа. Для теста выруби антивирус и брэнду винды, если запустится значит в них косяк, если нет, придётся копаться.
>>800940 Хз, есть конечно небольшой шанс что провайдер блочит соединение или сама юнька, но судя по ошибки больше похоже что у тебя лажа с блоком внутри.
>>800965 с хуя ли бот должен знать сколько у цели осталось хп? >>800937 обычно делается так: 1) метод поиска цели включает в себя условие если цель не мертва (по сути, можно и тег оставить, но теги - зло) 2) как только бот получает цель, то подписывается на его эвент смерти 3) при получении уведомления запускается метод поиска цели, всё
Добрый день, юнити-боги помогите. Делаю, говноигру, в которой по нажатию на кнопки запускаются нарезанные видосы. Сначала я использовал 1 Video Player, которому кормил clip-ы, и думал что проблема в долгой подготовке видео к показу. Но теперь я использую Video Player на каждый отрезок. Отрезки запускаются так. говно-код << switch (Stage) { case("L-P"): Stop(); VPlayer[5].gameObject.SetActive(true); VPlayer[5].Play(); Stage = "Wait"; break; case("Wait"): break; } говно-код >> Притом через "Play On Aweke" результат такой же. Деактивировать их, потому что если они просто на паузе то они занимают Render Texture своим последним кадром. (Звук при этом идет от работающего отрезка) Функция отключающия отрезки говно-код << private void Stop() { foreach (var player in VPlayer) { player.gameObject.SetActive(false); } } говно-код >> Этот код пробовал в засунуть в Update, FixedUpdate, LateUpdate и на собственный Action при нажатии на кнопки, результат везде тот же.
Так и не смог понять почему поведение "собраной" игры отличается от поведения в редакторе, в режиме "Play" Может что-то не то в настройках самого проекта...
Здравствуйте. Как оптимально переносить покадровые 2д анимации в юнити?
Делаю обычную анимацию покадровую в Фш допустим. 1) можно ли как-то оптимизировать процесс перевода обычной покадровой анимации в спрайтшит, чтобы вручную не разводить все на одном слое. 2) как сделать чтобы пивот поинты ставились как на оригинальном спрайте, а не в середине каждого спрайта? Если ставить вручную то все равно ровно не выходит, и анимация получается дерганая
>>801012 Эта тема не такая простая как кажется, лично делал подобное, для плавного перехода использовал такой костыль - Аниматор с маской и разные слои Объектов-Текстур, иначе выходило не то что хотел. Связано это с работой материала и рендера.
>>801021 1) вопрос скорее к художникам, но вообще все анимации в проект спрайтшитами всегда и поступают, это самый оптимальный вариант 2) в 2д у тебя вообще не должно таких вопросов возникать, создаешь пустой ГО, суёшь в него пустой ГО (View) со спрай-рендерором и аниматором и приподнимаешь на сколько тебе нужно, но если хочется подрочиться, то заходишь в Sprite Editor и на главной вкладке переносишь Custom Pivot куда тебе удобно, вообще пошарься по всем его вкладкам, там много разных приколов есть, которые облегчают создание префаба
OnMouse события вызываются в зависимости от удаления объекта коллайдера от камеры по Z-координате. Для некоторых объектов нужно соблюдать конкретный порядок - если A и B перекрываются, то вызывается A, если B и C - то вызывается C и т. д.
Вопрос: как это аккуратнее сделать? Создать три пустых-объекта-слоя на разных координатах Z в иерархии и добавлять объекты с коллайдерами туда? Как быть уверенным, что какой-то скрипт случайно не изменит координату Z?
>>801059 >Если ты будешь менять только привязку к слою где бы то ни было, то эта координата меняться вне координат слоёв не будет вообще
Объекты нужно перемещать по уровню, по осям X и Y. Никто не мешает передать в Transform.position что угодно. Можно, конечно, принудительно в Update сбрасывать Z на 0, но где гарантия, что событие отработает после того, как координата сбросится.
>>801064 За инструкцию благодарен, но мне бы без подключения куда-то через аккаунт, конкретно через свой веб сервер. Если это слишком сложно или невозможно, то ладно.
>>801067 Ну если так, то тебе надо разбираться хули у тебя в unityLoader.js ошибка. Я так понимаю это сгенерированный юнити код, очевидный вариант попробовать перебилдить и посмотреть будет ли работать.
Посмотри чё там в нетворке приходит от сервера, запость сюда.
>>801073 Повозился вобщем, нашёл как решают подобное, не у всех получается. Пишут, что не понимает сервер расширение, решение я нашёл, там надо добавить в web.config немного кода, но по итогу тоже самое.
>>801066 Ты что-то не понял, какое условие? Кратко задача звучит так: надо заставить объекты сохранять свой жизненный цикл фиксированную координату по Z, заданную в редакторе. У первой группы всегда 0, у второй 1, у третьей 2, у четвёртой 3 и т. д. И чтобы нельзя было это поломать, перемещая их, случайно передав изменение позиции по Z.
>>801080 Стоит по умолчанию. Я не сжимаю после сборки проет и так его кидаю в папку одноимённую на сервере. Так что тут ещё вопрос в том, что наверное его надо в zip запаковать, но это неточно.
Что я понял, так это то, что сервер не понимает что это такое и у него не получается это запустить, а как запускать не прописано в самом проекте. Или сам унити неполный и создаёт что-то не так.
На второй картинке решение на офф сайте, не заработало, скорее всего потому что надо туда ещё что-то своё дописывать, я не дописывал.
Теней нету, звук есть, графон странный, ну да ладно, веб же.
Теперь можно подобный сервер настроить на старом ФХ 8320 с 32ГБ рам.
Сегодня я снова стал сторонником венды, потому что на линухе вроде бы все отключили репо, а 2016 сервак взлетел на вмваре без проблем, да и жрёт 800 МБ оперативы чистый.
>>801116 По стандарту. Выйти из юнити и хаба. Удалить все пакеджи из либрари проекта, перезагрузить комп. Зайти в проект снова. Если не поможет, то удалить юнити, перезагрузить, установить заного.
Делаю тетрис и не получается сделать остановку, после заполнения, фигуры продолжают появляться, пока комп не зависнет. Пытаюсь сделать остановку через "OnTriggerEnter2D", пробовал также "OnTriggerStay2D",ничего не получается.
>>801117 Не поможет. У меня такая же хуйня уже 2а года. >>801116 Открой в новом проекте пакет менеджер и удали по одному компоненты, какй нибудь да выдаст себя. У меня например вижуал студиа не устанавливается поэтому я удалил этот пакет.
>>801193 во-первых, инкапсуляция, братан, с чего бот должен считать, что 0 хп - это смерть игрока, вдруг у него баф на второе дыхание, когда хп уходит в ноль и сразу хилится, в то время когда бот уже будет бежать в другую сторону. Во-вторых, отсутствие гибкости, если вдруг тебе захочется поменять условие окончания боя, то придется переписывать всех ботов (если у тебя несколько видов), в то время как эвент можно просто инвокать в разных местах. В-третьих, это в принципе подход конченый, когда объекту нужно лезть в данные другого, ибо потом каждую фичу, будь то дроп лута или дрожание камеры нужно прикручивать к этому условию (хп < 0), в итоге не код, а спагетти
>>801193 >>801209 а, ну и представь ситуацию, когда два бота выбрали одну цель, и пока первый убивает её, второй только к ней бежит, получается, что ему нужно добежать и только тогда (перед ударом) проверить, не мертва ли цель, эвент бы ещё в процессе бы перезапустил поиск цели. В общем, залупа твой способ
Кто-нибудь релизил свои ассеты в сторе? Как продвигали?
Я вот просто закинул в стор + создал тред на форуме, и в первый день была 1 покупка, во второй 3, а дальше как-то все затихло, хочу вот теперь видос для реддита сделать. Где еще можно как-то не сильно навязчиво прорекламить?
>>801227 хуй знает, но судя по всему это пиздец как надо очко рвать, на скрине у пчелика только один ассет, который имеет хоть какую-то популярность и звёзды
>>801253 Я пробовал купить через сервис-помогайку в покупке, где вводили чешскую карту - нихуя у меня не получилось. Плюнул на всё и свалил на Анрил, там хоть киви работает, пусть рикителло сам свою багованную поебень жрёт.
Лень тестить самому. Если корутина1 делает yield return корутина2();, остановка корутины 1 остановит и корутину 2 тоже? А если остановить корутину2, что случится с корутиной1?
>>801527 В данном исполнении плитки перемещаются мгновенно, так что нет. Но если поменять на плавное перемещение, то будет некрасиво, пока едет первая плитка, можно будет запулить вторую, которая поедет на место старой. Но я буду обязательно переделывать код, т.к. первая программа в жизни, сам понимаешь, и там будет с анимацией движения и чтоб плитки не двигались когда не надо..
>>801532 Пропустил плюс, думал как по старинке только прошка есть, но тем не менее 40 в месяц или 400 в год, это помимо гемора оплаты из рф с переплатами не вариант. Так что моё предложение намного вкуснее.
>>801537 нет. у меня доска хранится в массиве. из чисел от 0 до 15. При нажатии плитка проверяет +-4 и +-1 индексы в массиве, и если там число 0, то двигается на его место.
>>801537 точнее даже не так, я при нажатии из индекса плитки вычитаю индекс пустой клетки и беру модуль этого числа и если он равен 1 или 4, то уже пошло поехало.
Привет, может кто имел дело: Хочу подобрать себе движок (ассет) с наиболее "реалистичным" разъебом тачек, собираюсь делать игру в духе flatout, кармы, дестр дерби. До этого имел дело по работе лишь с RCC 3.0
Аноны, здарова привет. Карочи во время игры в массиве корректно обсчитываются и хранятся лучшие результаты игроков. При нажатии кнопки выход из игры обрабатывается функция сейв и закрывается игра. Но в Save залупа. Почему-то внутри этой функции 0 и NULL вместо вместо лучших результатов. Пояснительную бригаду бы.
>>801613 Так, ну во-первых тебя залупная реализация синглтона(не надо так делать) - я весь код не вижу, но так навскидку могу предположить, что где-то ты что-то напутал, может вторую сцену грузишь с еще одним геймконтроллером, который меняет инстанс на себя, а там соответственно как раз нули и есть.
А во-вторых покажи что именно у тебя по кнопке выход из игры висит и в каком порядке оно коллится.
>>801613 А, ну и конечно Destroy(this) это ты явно ошибся - я так понимаю ты хотел Destroy(instance)? Потому что сразу уюпосле этого у тебя идет instance=this, т.е. если ты этот объект уничтожил то он станет инстансом...
>залупная реализация синглтона(не надо так делать)
а как правильнее, есть пример? взял так сказать че нашел.
>>801629 если сделать Destroy(instance) то уничтожится старый инстанс со старыми данными и создастся новый нулевый. гейм контроллер в сцене один и если ему в апдейт метод засунуть дебаг, то он дает нормальный результат.
>>801634 > если сделать Destroy(instance) то уничтожится старый инстанс со старыми данными и создастся новый нулевый. гейм контроллер в сцене один и если ему в апдейт метод засунуть дебаг, то он дает нормальный результат. А потом ниже все равно делается instance = this
Т.е. вот у тебя есть в сцене GameController, все норм. Потом где-то появляется еще один(либо сразу стоял на сцене, либо загружается с другой сценой) - тогда он самоуничтожается с помощью Destroy(this) и все равно меняет ссылку на себя в строке instance = this, т.е старый инстанс всегда перезписывается.
> а как правильнее, есть пример? взял так сказать че нашел. Ну тут смотря как у тебя всё на сцены поделено. У тебя 1 сцена для игры и 1 на главное меню или как? Лучше вообще для подобных задач синглтоны не юзать, но если хочешь с синглтоном, то просто не наследуй им MonoBehaviour, соответственно и на сцену ставить его не нужно будет.
Проинициализируешь его с помощью public static readonly GameController instance = new GameController();
Тащемта есть такой код, должен делать чтобы камера плавно наклонялась когда в стороны хожу,а оно ведет он себя не так как надо, а как на видео. Колобок получается. В векторах не шипко разбираюсь, в чем может быть дело?
>>801684 Один и тот же угол можно представить кватернионами по-разному.
Поэтому когда ты делаешь transform.localEuler - оно может тебе ваще не те углы вернуть. Поэтому оно тебе возвращает говно, и ты из говна интерполируешь в таргетангл, поэтому его по пути перекручивает.
Чтобы это пофиксить заведи поле в котором будешь хранить локальные углы эйлера, и работац с ними, дальше в апдецте их уже в trnaform.localEuler присваивай. Т.е. главное чтобы ты НЕ получал углы эйлера из трансформа.
Ещё можешь кватернионами заебошить что тебе надо, по идее надо сделать кватернион для направления вперед, и на него домножать трансформ...
>>801800 >2 проеб - колапс в консоли выключи Да, в этом была проблема.
И если уж на то пошло есть в юнити метод чтобы подобные значения выводились в ОДНУ строку? У меня несколько массивов которые нужно проверить и построчно сложно отлавливать элементы.
Ток в остальном коде так >>801804 не делай. Просто для дебага в консоль вывести - пох, а вот если в игре такое будет то пизда. Поэтому нужно юзать StringBuilder.
>>796855 (OP) Фух пиздос целых 2а дня потратил на скрипт, взлома кодовых замков, аля отмычки, как в скайриме. Ебался с этими корутинами в старте и вводом информации игроком через стрелки, но всё таки получилось. В консольке конечно всё проще было.
Вопрос. Как рисовать гизмосы без геймобжектов? Хочу в PreviewSceneStage сделать редактор скриптабл обжекта, но так чтобы у меня была возможность его нарисовать его через гизмосы. Чтобы например скриптабл обжект сгенерировал какой-то класс с нужной датой, а я такой сказал ему "нука нарисуйся гизмосами", но я не хочу спавнить в сцене геймобжект просто чтобы в нём вызывать один метод. Вот для хандлесов и гуи в окне сцены я могу дёрнуть SceneView.duringSceneGui, но для гизмосов я что-то не нашел ниче такого.
Хочу сделать свою специфичную хуйню для инверсивной кинематики!
>>800659 каждый монобехавиор должен быть единственным классом в файле с соответствующим названием. в остальном ограничений нет тоже касается компонентов дотс, но не будем о страшном
воопше тут в основе совершенно неправильно реализованная компонентная система, суть которой в разбиении одной большой сущности на как можно больше количество отдельных фрагментов что бы потом можно было собирать из этих фрагментов что угодно в любых комбинациях. т.е. возвращаясь к примеру с хп. есть хп. есть силовой щит. есть армор который уменьшает урон. есть триггер который срабатывает по истечени хп и пополняет полоску Н раз. все это можно сделать одним компонентом и каждый раз накидывать полный список всех параметров даже если у цели их нет и крутить их логику на пустых значениях. а можно сделать кучу отдельных и добавлять только те что нужно. или накидывать/удалять их в процессе меняя свойства на лету.
ну это теория. на практике делай как тебе удобно. тем более как ужо упомянуто это реализовано через го и мб очень и очень не так как должно было быть в теории. правильно оно реализовано в дотс, но не будем о страшном
>>802227 на самом деле на мой взляд в юнити просто систему компонентов юзают через жопу. у меня например по итогу в каких-то велосипедных проектах монобихейворы нужны только чтобы API вызывать. один хуй большая часть проекта это какая-то внутренняя шелуха вроде инвентаря, генератора, манагера, которая никак не проявляется как геймобжект.
нахуй там дробить что-то ещё вроде хп/щита, пердеть триггерами. реально это нужно только если по максимуму всю эту хуйню с префабами используешь.
4 месяца курсов и 2 недели соло разработки произвели пикрил. Я просто тупой или поначалу всегда так медленно всё идёт? Причём оборачиваясь назад понимаю что сейчас мог бы всё то же сделать за минут 20.
>>802274 >2 недели соло разработки Это какой-то прикол юнитибомжей, что вам приходится вообще тратить какое-то время на то, что доступно анрилогосподам из коробки?
>>802278 Какая игра, я блять 2 недели базовые движения с анимациями настраивал. Вот только ща приступлю к геймплейным механикам.
>>802279 У анрила из коробки есть контроллер от 1 лица с анимированным гуманоидом, который кивает башкой вверх и вниз в зависимости от инпута камеры? Просто у Юнити есть контроллер от 1 лица с капсулой и от 3 лица с гуманоидом, но скрестить их вместе и заставить башку крутится при помощи рига у меня ушло две недели. Вообще я с самого начала вката в юнити оборачиваюсь на анрил и гадаю не обосрался ли я с выбором.
>>802403 возможно даже вся эта хуйня работает в UnityCrashHandler, который всегда запускается в фоне и вот он то 100% отсылает данные компуктера при краше
>>796855 (OP) Сап юнитач. Поясни за корутины. Обычная операция как выстрел с задержкой, как делается через корутины или инвоки? Ранее я всегда использовал таймер в апдейте и мне не очень нравится это, но это просто и удобно. Пытаюсь сделать правильно то с помощью корутины, то с помощью инвокарепит, но не работает. Просто не срабатывает. Как вы обычно делаете задержки перед выстрелом?
>>802420 Делаешь корутину и запускаешь его при выстреле. Только не делай платиновую ошибку юнитача и не хуярь запуск корутины в апдейте без условия хотя бы, а лучше стейт машину наебни. Помни что апдейт запускается каждый ёбаный кадр. У нас тут уже были любители запустить корутину в цикле внутри апдейта, а потом спрашивать хули Юнити крашиться.
>>802421 Вот сейчас не совсем понял. Корутину нельзя засовывать в апдейд? То что цикл в апдейт нельзя засовывать это я знаю, так получается можно вместо апдейта для выстрела просто юзать корутину?
>>802436 >>802439 >Только URP Двачую этого юнитидева. Раньше было вообще лучше не юзать не то, не другое. Сейчас URP уже по умолчанию рабочая штука которая должна стоять.
>HDRP Можешь в принципе юзать если готов ебаться с оптимизацией, и шейдерами, оно то рабочее, но кпд от ебли ну очень сомнительный.
Ванильный билд уже не актуально юзать вообще не в каких кейсах. Ну разве что за исключением совсем уникальных и без графических.
>>802469 Да там есть вся системная, служебная инфа о пользователе, редакторе, плагинах и всём что использовалось при компилирование проекта в ехе. Для обычного мимо крока расшифровать не получится из не знания хеша кодировки от юиков, но для них это не проблема. Если интересна тема изучи реверс инжеринг юнити игр, там смежная тема по хакингу.
Допустим я пилю несколько своих проектов на фри версии на протяжении полугода, а потом решил релизнуть все, что есть. Можно будет оплатить подписку и опубликовать сразу все что делал с Плюс версии чтобы убрать заставку Юнити? Нет же смысла оплачивать полгода разработки тогда
>>802477 Да, можно. Вот только я не пойму, тебе Юнити нравится достаточно чтобы выпускать на нём игры, но ты готов платить деньги чтобы скрыть что ты им пользуешься, лол?
>>802487 он наверное думает, что заставка слишком кринжовая не презентабельная, я тоже раньше так думал и хотел скрыть, но стало настолько похуй что мне похуй
>>802274 лол ну если ты медленноват и в день уделял этому мало времени и это твой первый самостоятельный опыт этой хуйни то да, ты в пределах того что можно ожидать от новичка.
>>802279 где-то здесь должна быть шутка про лапшу в анриле.
>>802291 а чего ты вообще с ригом возится стал то? нахуячи бы чтобы у тебя кубик крутился вместо башки на капсуле и нормас, для прототипа сойдёт.
>>802274 > Я просто тупой или Ты просто ленивая жопа.
Дай угадаю как ты это делал: "так, надо что-нибудь делать... ой, а что там в ютубчике показывают? Не, надо игру же делать... тогда посмотрю в ютубчике ролики про юнити... Надо бы еще сходить пожрать, посрать... Что-то спать захотелось..."
лол какой простой алгоритм и как сильно он меня заебал пока я его имплементировал. разворачивать деревья и ебатся с индексами боль. надо теперь подумать как написать его так чтобы можно было прочитать.
как бы перестать писать велосипеды и начать делать игры
>>802494 >а чего ты вообще с ригом возится стал то? Он мне понадобится для дяльнейших механик, поэтому мне надо было его освоить, а во-вторых потенциально он может весьма реалистично двигать всё тело при повороте.
Кто нибудь ещё сидит на очке кроме меня что в один прекрасный день Юнити отменит бизнес в России как это щас модно и уйдёт в закат? Насколько такое вообще возможно, что мы проснемся и будем выбирать другой движок?
>>802568 >Юнити отменит бизнес в России Вообще без разницы, тупо включаешь впн и работаешь дальше. Даже если представить сюрреалистичный сценарий что удалять или заморозят все аккаунты где ру указан, то тупо с вэпэнэ регаешься заного, всё.
>>802585 Юнитач, помоги разобраться. Кароче есть выстрелы, без автоатаки, игрок стреляет только тогда когда мышкой наводит на врага, но это вроде рудемент РТС когда ты направляешь солдата на врага, юнит сам цепляется и дальше без участия игрока. Не плюнуть ли на это решение и не разрешить стрелять игроку вообще по всем кто движется?
>>802585 >Пиратил, пирачу и буду пиратить. Ты не забывай что есть те кто игры делает, да еще и издаёт их. Для тебя безыгорного конечно ничего не поменялось.
>>802509 да не в смысле нахуй ты вообще с всовывания персонажа начал. я к тому что ты пытаешься понять как работает сразу много инструментов. когда ты конч так делать не следует.
>>802507 хочу процедурную анимацию для процедурных животных. у меня есть один другой забавный проект где я сделал прямой аналог блендфилда из меканима, только блендит он то что я ему скажу, а не анимации.
>>802510 я в курсе, я даже скачал почитал его. мне не понравилось как он решает некоторые задачи и он не подходит для того что я хочу. он для работы с обычными анимациями выглядит чем-то хорошим, но для процедурных нет некоторого критического функционала и допиливать я его не буду.
>>802618 >может и диздок написать за тебя? Может ты пойдёшь нахуй? Я как раз и начал сомневаться в правильности этого решения, когда перенёс его из диздока в игру. Кстати на помойку отправились и двойные щелчки вместе с автоатакой.
>>802620 ну так если у тебя диздок большой и что-то дальше строится на логике отсутствия/наличия автоатаки/автоприцеливания/автоебания то хули, делай как в диздоке. плохой план лучше чем никакой.
а если у тебя диздок как у меня нарисован на салфетке то хули, какая нахуй разница, сделай оба варианта и посмотри какой веселей. отнимет максимум вечер, а решения сделать поможет.
>>802618 >да не в смысле нахуй ты вообще с всовывания персонажа начал. я к тому что ты пытаешься понять как работает сразу много инструментов. когда ты конч так делать не следует. Какие много инструментов? Я из интсрументов только попользовался animation rigging и посыпал это всё простеньким кодом, чтобы зафурычило.
>>802625 ноуп. опенворолд про путешествие на телеге с ослом.
>>802651 плюс импортёр моделек, плюс разбирательство как устроены кости в юнити, плюс судя по сомнительным четырёхмесячным курсам погромист из тебя так себе, плюс разбирательство как манипулировать ротациями. я могу много чего в список добавить.
>>802654 >плюс импортёр моделек, плюс разбирательство как устроены кости в юнити, плюс судя по сомнительным четырёхмесячным курсам погромист из тебя так себе, плюс разбирательство как манипулировать ротациями. я могу много чего в список добавить. Охуеть, а игра что ли просто усилием воли создаётся или че? Типа нихуя не изучая просто тужишься пока из ануса не полезет код с игрой? Ты описываешь базовые инструменты, я хз как ты представляешь чтобы я обошёл такие необходимые вещи типа манипуляций трансформа и хуякс и сделал прототип.
>>802656 да нет, бестолковый, я к тому что ты подошел к проблеме не дробя её. вместо этого ты 2 недели думал что пытался решить её, а на самом деле решал всё что не решил до этого одновременно.
подвигал бы кубики, сделал змейку, разобрался бы как там устроены кватернионы, векторы, подтянул геометрию если забыл со школьной программы, почитал документацию у интересующих тебя инструментов, разобрался в стандартных инструментах, вместо того чтобы тянуть ещё из package manager и так далее.
так то ты мог не крутить трансформ, а вон одной строчкой сказать персонажу "смотри сюда".
>>796855 (OP) Аноны кто сталкивался с такой проблемой. Скачал туторы по юнити с оф сайта, худо бедно установил, но когда запускаю камера просто без остановки крутится вокруг персонажа, при том это в Лего туторе и FPS туторе, на картинге такого нет. Из личного опыта знаю что такое бывает если не назначил таргет для камеры, но здесь всё назначено. Пробовал код смотреть, но там какая то лажа. Может кто сможет чего подсказать?
>>802680 ??? ремейк жаб что-ли не менее бессмысленный долгострой?
хули, прототип у меня есть, выглядит заебись, решил вот улучшить то что видишь чаще чем всё остальное - осла. а заодно добавить всяких других животных.
>>802682 не ну если дашь весь код почитать, то почитаю, может чего увижу. ну а лучше весь проект. так то крутится можно от чего угодно начиная от обосрамса с инпутом, заканчивая тем что ты забыл риджидбади локнуть оси вращения и оно просто по инерции крутится.
>>802665 >да нет, бестолковый, я к тому что ты подошел к проблеме не дробя её. вместо этого ты 2 недели думал что пытался решить её, а на самом деле решал всё что не решил до этого одновременно. Процеируешь чтоле? Ты мою проблему то хоть знаешь? Именно потому что я её раздробил, я и начал с башки.
>подвигал бы кубики, сделал змейку, разобрался бы как там устроены кватернионы, векторы, подтянул геометрию если забыл со школьной программы, почитал документацию у интересующих тебя инструментов, разобрался в стандартных инструментах, вместо того чтобы тянуть ещё из package manager и так далее. Это входило в те 4 месяца курсиков, помимо прочих базовых инструментов. И ты сам себе противоречишь, сперва затираешь что я проблему не раздробил, а потом предлагаешь пердолиться со змейками вместо того чтобы игру делать, причём сразу после моей тирады о том что надо знать базовые инструменты.
>так то ты мог не крутить трансформ, а вон одной строчкой сказать персонажу "смотри сюда". А смотреть куда? На таргет? А таргет за счёт чего двигается?
>>802685 >Процеируешь чтоле? Ты мою проблему то хоть знаешь? Именно потому что я её раздробил, я и начал с башки. да, я знаю твою проблему. твоя проблема в том что ты 4 месяца какую-то хуйню поглощал, а потом две недели пытался головой покрутить.
>Это входило в те 4 месяца курсиков, помимо прочих базовых инструментов. я сомневаюсь, иначе я не вижу ни одной разумной причины почему ты в animation rigging полез. из чего я делаю вывод о том что ты просто инструменты не знаешь.
>а потом предлагаешь пердолиться со змейками вместо того чтобы игру делать ну а какой твой план то? ебатся с каждой проблемой одновременно чтобы потом решать такие мелочи по две недели? либо у тебя курсы были полной парашей, либо ты тупой. я всё-же предположу что курсы были парашей и ты решил вместо курсов просто начать ебошить. но в итоге делаешь это сразу переходя к чему-то к чему ты никак не подготовлен. мой тебе совет: умерь пыл. уменьши количество инструментов с которыми ты взаимодействуешь.
>А смотреть куда? На таргет? А таргет за счёт чего двигается? сделай кватернион и крути его, а потом делай форвард вектор из башки помноженный на этот кватернион. получишь вектор который начинается в башке, который крутится на указанную ротацию и начинаясь из башки ты гарантированно крутишь башку на нужный тебе угол.
а пользуясь аниматором ты в добавок получишь изкаробки более мягкое вращение, тогда будет крутится не только башка, а ещё пара костей ниже. и более няшные наклоны, так как тогда персонаж там немного пригибается, а не пытается сломать шею.
Аноны, подскажите: мне нужно сделать так чтобы пустой объект двигался в пределах внешнего ПЕРИМЕТРА полусферы, пикрил. Как задать ему вот это ограничение в виде полусферы? Желательно программатически.
>>802689 ну например перемножай вектор указывающий направление и радиус полусферы на кватернион ротации объекта относительно центра сферы. я бы сделал именно так.
ну или просто нормализуй направление до объекта (сделай его равным единице) и перемножь на радиус сферы, тогда обьект гарантированно будет в пределах радиуса сферы. и укажи направление полусферы другим вектором и сравнивай углы до объекта и направления сферы. если он >90 то перемещай объект обратно чтобы он не вылезал за полусферу.
лучше область применения укажи, может ещё чего скажу.
>>802690 Я наверное неправильно выразился, полусферы как геймобъекта у меня нет и не будет, мне нужно чтобы обьект двигался так будто по периметру полусферы, а когда доходил до края, то застывал.
>>802707 мой ответ по прежнему полностью соответствует запросу. полусферу описывает вектор, у тебя из вариантов либо толкать объект в сторону полусферы, либо крутить точку на границе и ограничивать её ротацию. или тебе ответ картинками объяснить?
>>802722 лол проснулся, начал писать, рисовать, понял что я быстрей просто код напишу минут за 10-15, чем нарисую картинку и объясню как оно должно работать.
на ссылку на экзампл https://mega.nz/file/YxUxDS4Y#1fbck7ZKyaYolXo3YZCmuJ_P3SybwTob091hn_rT1mc внутри то что на видео и код с картинки. вообще я сильно не задумывался, наверняка с кватернионами оно может прыгать от границы к границе. второй способ попроще, но без отслеживания ротации нельзя бегать как жук
но лучше просто бы рассказал что оно должно делать. если объект изначально является частью полусферы то нахуй такие трудности? просто не двигай его за пределы полусферы изначально.
>>802781 Спасибо за пример, это не совсем то что надо, но возможно это двинет меня в нужном направлении. Мне пока плохо понятно что ты там сделал из-за недостатка знаний API, но всё потихоньку. Еще раз спасибо.
>>802792 ну разбирайся, хули. я бы не сказал что здесь какое-то API используется хитро, то-же самое можно сделать в любом другом 3д двигле. в первом магия ротаций, ротации можно складывать (в юнити это делается перемножением) и если ротация выходит за полусферу то я просто толкаю её обратно на угол который она ушла от полусферы. то как ты крутишь изначально объект роли не играет, там в начале можно и forward/right оси любой другой хуйни использовать. просто тут это оси шарика который крутишь. можно и просто transform.forward/right написать, тогда относительно осей сферы будет крутится и это более интуитивно. если ещё не забыл что такое скалярное произведение и векторное произведение то никаких вопросов вроде не должно остаться.
во втором случае просто если сфера ушла за границы полусферы то толкается на границу полусферы, а потом на дистанцию сферы.
но хули, просто лучше скажи что ты хочешь сделать то. скорей всего тебе не нужна ни магия ротаций, ни запихивание объекта в полусферу, а просто две локальные переменные которые вектор двигают в своих пределах, или ещё какая хуйня.
>>802798 Наверное мою задачу можно упростить еще сильнее. Короче вот есть центр этой сферы, мну нужно чтобы вот эта вот точка двигалась вокруг него, но не прям вокруг, а чтобы движение ограничивалось полусферой. Ну типа как чтобы их невидимая палка соединяла.
Посоны, такой вопрос: работаю в unity 2022 хочу вять курс по шейдерам - как не обосраться и выбрать нужный? Как я понимаю, есть отличия от того, что было в 2019
Пчелы, курсы всяких гейбоксов вообще годная вещь или денях своих не стоят, т.к. всё есть в интернетах?
Хочу пока как хобби для себя заняться кое чем на юнити, если эт важн в данном контексте.
Может быть эти курсы даже не как полезная по сути, но как мотивирующая хуйня хорошо работает? А то зная себя я всё растяну до максимума без каких-либо поинтов по целям.
>>807379 Если тебе как хобби, то нахуй тебе курсы не нужны. Учись гуглить, если прям совсем не лезет на старте - на торрентах найди курсы и бесплатно просмотри
Я тут прочитал что в Юнити нельзя создать 2д, только псевдо 2д. Это так? То есть по факту игрушка будет генерить 3д и дополнительно грузить процессор/карту?
Пользователи среды для разработчиков видеоигр Unity Hub столкнулись с вирусом, который распространяется вместе с официальным обновлением утилиты, сообщают специалисты по информационной безопасности из компании Snyk. Проникая на устройство, вредонос начинает уничтожать или портить хранящиеся на жестком диске файлы. Примечательно, что вирус срабатывает только на устройствах, которые подключены к интернету из России или из Белоруссии.
«Хотя атака продиктована в том числе и протестными настроениями, она выдвигает на первый план более серьезную проблему – уязвимость цепочек поставок в ПО. Транзитивные зависимости в вашем коде могут иметь огромное влияние на вашу безопасность», – написали специалисты Snyk.
Только начинаю ковырять юнити. Сейчас разбираюсь с навигацией и ИИ. Подскажите, почему есть две вкладки и в каждой вкладке могут быть разные значения, например на скрине разная высота препятствия. Почему их две разных? Какая в итоге будет использоваться, та которая во вкладке Bake?
>>816015 можно что-то полезное вынести, но он слишком токсичный уебок по факту его говностудия ничего выдающегося не произвела, а он сам чсв-хуй и игфоцыган
>>816015 У меня отбивал охоту учиться. Типа если ты не пишешь "правильный" код, то ты ничего не имеешь права выпускать. Хотя, по факту, для своего проекта лишь бы работало. Наезжал на Коде Манкей, который зарабатывал на своих играл десятки тысяч и получил от Юнити награду за образовательный контент.
Кстати, сам он как-то не смог пройти тестовое на Джуна в какую-то крутую компанию Российскую. Об этом есть ролик.
Делаю по гайдам в ютубе в основном проект, поэтому возможно тупые вопросы, но все таки:
1) Как удобнее реализовать 2д туман, такой чтобы чем дальше от игрока, тем сильнее сгущался. На ум приходит наложить на камеру картинку тумана прозрачную в середине, и не прозрачную по краям. Но как-то вроде убого звучит.
2) Как удобнее реализовать систему видимости как на гифке, в игре NOX, учитывая что это 2д (вроде как). Как-то через рейкаст наверное?
Меня тут возможно обосрут, но все таки. С другом загорелись идеей сделать пошаговую роллевую игру, он неплохо рисует, есть музыкант, мне просто нравится небольшие истории писать и интересно попробовать себя в геймдеве. Технарских навыков из нашей микрокоманды никто не имеет, мы не разбираемся в движках, программировании etc. Денег, как обычно, нихуя нет, все на голом энтузиазме. Может тут найдется кодер, который захочет влезть в нашу тему и, если не принять участие в проекте, то хотя бы просветить с чего лучше начинать. Сейчас составляем дизайн-документ, но, как видится, без грамотного кодера всё это вилами по воде.
>>818080 Чтобы создать игру, нужно работать фуллтайм не меньше 2-3 месяцев. Это самые скромные подсчеты. Может, даже твой друг художник не готов потратить такое количество времени.
>>818216 Он инициатор всей этой идеи, а меня просто позвал поучаствовать. Мы в принципе никуда не торопимся, делаем в свободное время, отчасти, чтобы получить опыт в сфере, которая нам интересна.
>>818205 Да, нам уже один знакомый кодер сказал, что это огромный объем работы, но он представляет себе, что мы делаем новый Pillars of Eternity, но мы хотим небольшой по масштабам проект сделать с упором в реиграбельность. Как это сделать по хитрому может подсказать только кодер
>>796942 А проблем не будет если игрушка взлетит нет?
Помогите найти скорость объекта относительно себя самого.Аноним21/07/22 Чтв 00:45:03#543№820847
Аноны помогите. Если человек едет в машине со скоростью 80 км/ч, то относительно мира его скорость 80 км/ч, но относительно себя самого 0, так как он сидит в кресле. Velocity возвращает скорость относительно мира. Как мне найти скорость относительно себя.
>>818080 Готов стать вашим геймдизайнером и лидером, пиши контактики Алсо, возьму насебя раскрутку и монетизацию Бабки пополам - мне 50% и вам с другом 50%. Но рогалик делать не будем, нахуй он нужон, рагалик ваш. Будем делать порноквест с минииграми типо 3 в ряд. Выиграл в миниигру - довел девку до оргазму. И у каждой девки будут свои игры. В конце типо девка-босс, садистка-бдсмщица.
Боги юнити, подскажите как узнать параллельность объектов типа плоскостей? Есть x,y,z у них в rotation, в градусах они могут быть разные абсолютно, а как вот узнать параллельны они или нет?
Прошлый тред: https://2ch.hk/gd/res/780319.html#795861
Официальный сайт: 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.
Для людей абсолютно не знакомых с движком и программированием на C# есть 3и основные книги:
1. Разработка игр на Unity 2018 за 24 часа Майка Гейга
(Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков).
2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне
(Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.)
3. Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание Хокинг Джозеф
(Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)
Шапка: https://www.writeurl.com/publish/qzgktisltkskaitem6aa