Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности! ------------------Прошлый тред: >>449619 (OP) Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol------------------Официальный сайт: 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-storeUnityWiki: http://wiki.unity3d.com/index.php/Main_Pageyni : https://www.youtube.com/watch?v=gnkBKtnYeb8Made With Unity 2D Games Showreel 2017: https://www.youtube.com/watch?v=NMUr2yNALhU The Unity Awards 2017 Winners: https://www.youtube.com/watch?v=8--xPOlY7kU------------------------------------------------------------------На Unity сделано много замечательных игр - 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.
>>456738Я тебе рекомендую начать с книги Герберта Шилтда. А если захочешь углубленно изучить шарпы и виртуалку, тогда милости прошу к товарищу Рихтеру.>>456743Есть. Опиши круг задач, а я может быть что-нибудь подкину.
>>456551Я бы на твои проекты глянул для начала. Ибо нужно знать какой у тебя уровень.>>456672Уж поверь, ты еще говноказуалок не видел. зайди на BigFishGames и посмотри, что там
>>456738https://www.reddit.com/r/csharp/comments/6nfsjd/beginner_c_books/>>45674390% асинхронизма в Юнити это рутины.Однако же в 2017.3 ввели Job System:https://www.youtube.com/watch?v=AXUvnk7Jws4однако параллелизация в юнити все-равно гавно
Интересно узнать решение этой ошибки, возникающей во время создания андроид билда: Win32Exception: ApplicationName='C:/AndroidSDK\tools\aapt.exe', CommandLine='package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/AndroidSDK\platforms\android-25\android.jar" -F bin/resources.ap_', CurrentDirectory='Temp/StagingArea'System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)System.Diagnostics.Process.Start ()(wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:44)UnityEditor.Utils.Program.Start () (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:28)UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)UnityEditor.Android.PostProcessor.Tasks.BuildResources.CompileResources (UnityEditor.Android.PostProcessor.PostProcessorContext context)UnityEditor.Android.PostProcessor.Tasks.BuildResources.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:186)UnityEditor.HostView:OnGUI()
>>456762Так не то гуглишь, гугли как дебажить ошибу процесса компиляции дабы получить читаемый и вменяемый трейс, а не то, как решить именно это трабоу.СЧам же видишь, что эта чушь нечитаема и ни о чем не говорит
>>456759У меня при билде под вебгл было что-то похожее, помог старый дедовский способ переустановил юньку и все sdk
>>456747Да никакой еще уровень. Доделываю свой первый топ-даун шутер (начал по тутору с офф.сайта, потом понял что к чему и продолжил сам). Cейчас доделаю, и буду пилить какую-нибудь штуку для мобилки (хочу ознакомиться с 2D и особенностями разработки под телефоны. Потом попробую что-нибудь с онлайном поковырять). Как я изучаю: ставлю цель, что я хочу прикрутить к игре следующим, потом ищу что-то в API либо просто гуглю. В общем, это такой мой план на следующие пару месяцев. >>456738Мне очень помогла книжка c# player's guide. Все предельно просто. Позволила буквально за пару недель понять основы ООП, учитывая, что все, что я знал о программировании до этого это html-теги. Т.е. ничего. Алсо, у меня вопрос. Где можно посмотреть ГРАМОТНЫЙ код? Как я понимаю, задача программиста не только в том, чтобы все работало, но и чтобы все было хорошо написано, и в случае чего быстро фиксилось, и не только написавшим. Просто хочу не потом это исправлять, а сразу учиться писать хорошо. Есть какие-нибудь уроки по этому мастерству? (как комментить, обзывать переменные/классы, все такое)
>>456775C# assebly декомпиляться на ура, тот же dnSpyБери любой релизнутый проект, декомпиль и смотри что к чему
>>456775> Где можно посмотреть ГРАМОТНЫЙ код?Где-то у меня был мем про то, что чувак понимает, что он теперь самый настоящий погромист, а того самого идеального кода не существует. И код, который он пишет, менее умелые люди берут в пример.
>>456775>как комментитьпонятно>>456775>обзывать переменные/классымаксимально точноРекомендую обмазаться автоматическими ревьюверами, они знатно будут тыкать тебя в говно твой код. Типа codacy что нибудь
>>456782Он имеет ввиду common practicesПредставь себе ты работаешь в коллективе из 20 кодеров. Твой коммент "эта та самая хуйнявка из наследного класса" будет охуенным брейнфаком для них
>>456781>Рекомендую обмазаться автоматическими ревьюверами, они знатно будут тыкать тебя в говно твой код. Типа codacy что нибудьСпасибо, попробую эту штуку. >>456783>common practicesВо, то что надо. https://en.wikipedia.org/wiki/Coding_conventions
Любознательный ньюфаг в треде.Изучал и писал на Python, перекатился теперь на JavaScript и потихоньку изучаю Unity. Просмотрел несколько туториалов (Space Shooter и 2D roguelike если быть совсем точным), изучаю сейчас общее руководство по скриптингу и потихоньку практикуюсь с простыми задачами в самом движке. В общем, можете накидать советов мудрых за щеку? Очень хотелось бы знать не прогадал ли с выбором языка, и нет ли у JS каких-нибудь минусов по сравнению с Шарпом на Unity? К тому же, обнаружил что туториалы по Unity 9по-крайней мере самые попадающиеся на глаза) в основном просвещенны максимально простым платформерам и топ-даун шутеркам в лучшем случае. Где можно посмотреть какие-нибудь более углубленные проекты или посвященные другим жанрам, кроме парочки старых туториалов по 3d-стратегиям на YouTube?Ну, и просто напоследок - с насколько тупыми вопросами можно обращаться в тред? Пока что изучаю в одиночку, но боюсь во многих местах я действую с изрядным костылизмом в самых простых вещах, но не знаю куда с такой мелочью обращаться за помощью.
>>456812Если не ошибаюсь, тот же новый Job System, обмазанный по сто раз, в новых версиях 2017.2-3 - пока в полной мере только для шарпа.JS же удобнее, если для мобильных платформ делаешь, там будет единая структура кода, в том числе и внешнего
>>456812> не прогадал ли с выбором языкаЯ видел дохуя туторов по шарпу и ниодного по JS.> Где можно посмотреть какие-нибудь более углубленные проекты или посвященные другим жанрамМне казалось, чувак с ником Burg Zerg Arcade делал какую-то более-менее полноценную RPG. Официальные туторы по Unity заточены больше под реализацию конкретных механик. Советую посмотреть live сессии, потому что там материал поинтереснее и фичи идут уровнем выше, т.е. это уже не настройка камеры и движения игрока, это реализация способностей и оружий, например.> боюсь во многих местах я действую с изрядным костылизмом в самых простых вещахПохуй. Пиши как можешь, но не забывай про гугл. Потом все равно найдешь более изящное решение, прокачаешь навык. Опять же, смотри Live сессии, там помимо того, что грамотно написан код, тебе еще и объясняют, почему лучше писать вот так.
>>456812>В общем, можете накидать советов мудрыхПервый совет - забудь про "js" (в юнити не стандартный жс, а какая-то похожая скриптопараша). Все нормальные туторы, советы, ответы даны для шарпа.
Пацаны, ньюфаго-хэлп. Есть две переменные, int score и int waveCount. Нужно, чтобы через каждые 300 score, waveCount повышалась на единичку. Т.е. 0 0300 1600 2900 31200 4ИТДДа, я совсем тупой.
>>456835Это ему не поможет, ему нужно обновить waveCount соответсвенно текущему значению score, а не ловить именно 300, 600 и т.п. Мб у него score инкрементится по разным значениям, + 35, + 150 и т.п. деля на 300 он не только получит текущую фазу, если roundDown, но и, в случае с float, отеосительный остаток до следущей фазы, если нужно там шкалу отображать
>>456824Да, уже обратил внимание. Параллельно учу JS на Кодакадемии и непрерывно проигрывал с того во что язык превратили в движке. Что ж, к счастью в туториалах по скриптингу неплохой материал собран, надеюсь его хватит. Да и Шилдз где-то лежал.>>456817>Официальные туторы по Unity заточены больше под реализацию конкретных механикТак-то ведь хорошо, но я уже сталкиваюсь с тем что остро нехватает некоторых аспектов. Например ни в одном из туториалов не нашел хороших примеров работы с камерами - везде она просто прибита к месту и максимум объясняется что означают её параметры настройки. Пришлось скачивать сборную солянку из стандартных ассетов чтобы посмотреть какие варианты реализованы там со всеми полагающими перемещениями и настройками видам. Я так понимаю не стоит стесняться и в будущем таскать ассеты и смотреть как они работают чтобы велосипеды не творить?
>>456837Так и есть. Сделал по вот этому совету >>456826Вообще, вопрос не стоит обсуждения я просто тупой.
>>456843>Я так понимаю не стоит стесняться и в будущем таскать ассеты и смотреть как они работают чтобы велосипеды не творить?Assetwhoring стандарт для Unity девелопинга. Собсно, Unity тем и популярен, что куча ассетов и за тебя уде все написано, просто, блять, в лего играй и составляй игру мечты.За это же Unity и не любят, впрочем, патрицианы с UE или более серьезных движков.
>>456850>ничего работать не будет.http://store.steampowered.com/tag/en/Indie/работает еще как, весь Стим СТор в дерьме
Посоны, поясните что такое "reflection". Постоянно вижу этот термин, но гугл нормально не объясняет. И почему он такой медленный, как пишут?
>>456851Да брось. Вот никогда не понимал этих претензий к переполненности стим стора. Вы что, против капитализма чтоли? Чем больше товара на полках, тем больше среди них попадается хороших вещей. Т.е. из 1000 игр будет 100 хороших. А из 100 игр будет 10 хороших (ну ладно, 30). Но все равно, 100>30. А то, что искать надо, ну а хули. Можно и поискать. Почему никто не жалуется, что в день публикуется под тысячу книг? Каждый может найти то, что хочет.
>>456853>А то, что искать надо, ну а хули. Можно и поискатьА ещё найдутся хитрые продавцы, которые будут товар проталкивать всеми силами. И будет дохуя никому не нужной рекламы к слову, согласно исследованиям, люди банально не видят всплывающую и контекстную рекламу на страницах. Приучились игнорировать вспышки Вот и зачем зря силы тратить сначала на заполнение сверх меры, а затем пропихивание и конкуренцию?
>>456852https://msdn.microsoft.com/ru-ru/library/system.reflection(v=vs.110).aspx?f=255&MSPPError=-2147217396https://stackoverflow.com/questions/3101577/what-is-reflection-in-c-what-are-the-benefit-how-to-use-it-to-get-benifitПо сути, как переводится, так и понимается. Отражение. Например, через reflection ты можешь получить тип переменной по ее имени в строковом формате и т.п.>И почему он такой медленный, как пишут?Ну тут нужно глубоко копатьhttps://stackoverflow.com/questions/771524/how-slow-is-reflection
>>456855Так пусть проталкивают. Не против, если кто-то зарабатывает свою копеечку на дураках. Но зато если я захочу найти во что поиграть, я точно найду. Конечно, есть тренды, и триплэй текстовый квест ты не получишь. Но просто качественный найдешь легко. Как и вообще что угодно.
>>456858>Но зато если я захочу найти во что поиграть, я точно найдуНе найдёшь. В этом-то и вся суть, об этом исследования и говорят.
>>456859Проверка на nullcheck - первое, чему должен научиться C# кодерТем более, когда речь о Unity. Там аж два типа null когда conditioned
>>456862Ну хуй знает. Я вот сейчас захотел поиграть в игру про летающий спиннер в космосе, нарисованную одноруким раковым ребенком дауном. И что думаешь, не смог я найти такую игру? Конечно смог: http://store.steampowered .com/app/745510/Fidget_Spinner_In_Space/
>>456864Не знаю с чего я проиграл больше - с того что эта игра существует, или с того что в списке "похожие товары" первая же ссылка ведет на новый Ассасинс крид.
>>456852>И почему он такой медленный, как пишут?Грубо говоря, обычный код обращается по цифровым ссылкам, а рефлекшен сначала ищет ссылку по символьному имени, потом использует
>>456736 (OP)https://www.youtube.com/watch?v=8mol-WPnstY&t=459s В этом видео ещё элементы из yni на превью
>>456882Да они задолбали, даже на тестовых сценах меньше сотни объектов.Что если я хочу от 1к до 10к сложных юнитов и объектов на сцене, с анимацией, физикой, аи. Это же пиздец как лагает.Даже без графена, потому что 4 ядра да и то, если повезёт. Почему вычисления на gpu не перенесут? Или я чего-то не знаю (знаю про physx).
>>456825private int score;public int Score{get{return score;}set{score = value;waveCount = Mathf.FloorToInt(score);}}Делай так
>>456893Ну это же пиздец, а есть привязка объектов к границам камеры какая-нибудь? НАпример мне в камеру 16:9 надо засунуть 14x25 спрайтов, и без сетки пиздец не удобно работать над дизайном уровней, нахуя она вообще нужна тогда, если даже под границы камеры не подстраивается
>>456889Не понял что для тебя "размер сетки", но в ортографической камере покрути Size, может это то, что тебе нужно.
Ребят, как можно сделать, чтобы во время какого-нибудь лупа нельзя было трогать какую-нибудь переменную? Ну т.е. если враг делает какое-то действие, ему нельзя было сбивать хп.
>>456912>в ортографической камереЭто где? Напиши по английски расположение или заскринь пожалуйстаСетку ту и имею, что там за размер юнита и отвечает, просто она не вмещается ровно в область камеры, а мне нужно чтобы всё чётенько было
>>456930>>456925Спасибо. Вот еще вопрос:Как прекратить задавать настолько тупые вопросы, до которых сам додумываешься через минуту, если вдруг немного завтыкал.
>>456939> Как прекратить задавать настолько тупые вопросы, до которых сам додумываешься через минутуhttps://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0
>>456948> хуле волноватьсяТут смотря на кого попадёшь. В прошлом или позапрошлом треде ананас рассказывал как его или его товарища на собеседовании обоссали за foreach, мол, труЪ-посоны так не делают, надо через for прогонять.
>>456949Обоссали, наверное, потому как в старой Unity был баг, когда foreach в heap срал, его починили в 5.3.x. Какие другие причины могут быть - не вижу.
>>456951Ошибся, 5.5.0.f3https://forum.unity.com/threads/is-there-a-better-and-cleaner-way-then-foreach-c.451228/Абсолютно ничего плохого в foreach нет, это лучший метод лупить через тот же словарь и им подобные. На уровне компиляции кода foreach банально будет превращен в enumenator iterator, это виртуально одно и то же.
>>456956> 5.5.0.f3Хм, ебашил через форич ещё со времён царя Гороха и даже не замечал что он серит.Да и хрен с ним.
>>456932>>456934Спасибо, я чёт и не углядел.Слушайте, а где почитать мануал, как сделать возможность менять разрешение графики в опциях игры. Например я сделал игру в 5:3 (400x240), а мне надо чтобы при выборе опции могло делаться в 16:9 (1920x1080), при таком раскладе кратно не получится увеличить, надо чтобы графика немножко растянулась в ширину, а в высоту например чтобы просто лишнее скрылось, например черная полоска, которая была в 5:3Мне бы мануал, или может кто так подскажет, как это делается, две разные камеры надо или как, но если разные камеры, то графика не растянется, на канвас натягивать спрайты? не очень удобно при дизайне уровней
>>456736 (OP)Анон, а как лучше сделать набор уровней для моей игрушки? Ну то есть допустим я сделал сцену игровое поле там, фишки, башенки, врагов, написал скрипты - вот мой уровень. Для каждого уровня понадобится ведь новая сцена? А для каждой сцены вновь создавать фишки-башенки-врагов и писать скрипты? Или можно как-то единоразово описать геймобжекты и их поведение, а потом как-то лишь прописать их расположение для каждого из уровней?
>>457005Тебе изначально необходимо понять что такое сцена. Это набор геймобджектов и их компонентов в иерархии.Все ресурсы проекта могут быть заюзаны хоть в первой сцене, хоть в десятой, хоть у чёрта в залупе.
>>457007Блядь, я почему-то думал, что сцена выступает так же и контейнером для использующихся в ней ресурсов. Сейчас глянул, действительно, похуй вообще. Сцены отдельно - ресурсы отдельно.
>>457005Дублируй существующую и изменяй как новую, с новым сеттингом и т.п, сохраняй как scene2. Пожалуйста, загружай после scene1Тут все зависит от нужды и контекста. Загрузка готовых сцен будет самым быстрым и дешевым способом. Генерация - самых дорогим (expensive)
>>457008> я почему-то думал, что сцена выступает так же и контейнером для использующихся в ней ресурсовЕсли только начал, то это нормально, не парься.
>моушен блюр, хроматическую абберацию, фейковый интерлейсТакие эффекты можно как-то добавить?Как у бро из поста:>>440815>>440849
>>457083Лучше постпвь себе задачу и решай при помощи гугла. Анализируй решение, придумывай что-то свое. В видосиках порой неучи ебаные, поэтому нет лучше учения, чем самоучение.
>>457083Этот >>457085 прав лишь частично. Я б посоветовал посмотреть и повторить официальные туториалы, по мере сложности. И не копипастить код, а переписывать с экрана ручками. Основы крепко в мозг засядут и дальше можно уже включать режим "гуляй душа".А васяны да, частенько хуй пойми что несут.
Сап аноны. Решил зайти в геймдюв за поддержкой в созданий игр на Юнити. Проблема наступила при распаковки ассета из ассет store, он завис на OverНайнХандред секунд, подождал 5 минут, подождал час, итог: не дождался, закрыл Юнити, снова открыл Юнити, открыл проект, нифига не засейвелось и придётся всё начинать сначала... Поэтому я обрнатился за помощью в геймдюв-тред. Лень исправлять самому, спрошу на дваче
Как внутри surface шейдера получить значение толщины объекта?Суть нарисовал на пике, надо толщины, отмеченные красными стрелками.
>>457090Все хуйня, давай заново. Впредь не открывай юнити сразу после краша.Вытаскивай сцену из бэкапа.https://support.unity3d.com/hc/en-us/articles/210224803-Can-I-restore-my-unsaved-scene-after-Unity-crash-
>>457106Не нервничай, сучечке, ты мне за работу не платил, дабы по твоим правилам отвечать. Никто тут тебе ничего не должен, запомни.
>>457100Так у тебя вся планета одним объектом? Ну ебни вторым проходом текстуру облаков с дисплейсментом по нормали, умноженной на высоту облаков и всякие uv искажения на нее захуяч. Зачем тебе ширину то считать?Я бы вообще планету и облака разными объектами сделал, чтобы не ебаться с этим.
>>457100Если я всё правильно понял, то тебе хочется голубую обводку нарисовать, так?Попробуй сделать так: 1 меш -- это планета. У неё рисуются фронт-фейсы, 2 меш -- это атмосфера. У неё рисуются только бэкфейсы.
Чо бля, никто не знает как называется эта кромка света правильно по научному?Вот при затмении, на "поверхности" Луны это называется короной, а вот на "поверхности" атмосферы земли - есть свое имя.
Сап, юнач. Поясни за сишарп. Смотрю тутор по скавенжерам, здесь в BoardManager в InitialiseList () этот самый лист сначала очищают. Объясни нахуя, ведь мы, вроде как, для каждого уровня создаем отдельный объект BoardManager, так зачем очищать тогда? Извиняйте, если вопрос нубский, я в программированиях не разбираюсь.
А я запилил свой первый элемент ГУИ переопределяя базовый класс потом - покакал. А именно - слайдер с экспоненциальной шкалой. Есть замечания о том как это следовало сделать лучше (кроме скачивания говеных ассетов)using System;using UnityEngine.UI;public class SliderExponential : Slider{ private Func<float, float> getValueFunction = x => x; private Func<float, float> setValueFunction = x => x; public float expotentialValue { get { return getValueFunction(base.value); } set { base.value = setValueFunction(value); } } public void setExpotential(Func<float, float> getValueFunction, Func<float, float> setValueFunction) { this.getValueFunction = getValueFunction; this.setValueFunction = setValueFunction; }} В Start() родителя нужно инициализировать slider.setExpotential(x => 0.1f x x, x => Mathf.Sqrt(x * 10f)); Вторая функция - обратная первой
>>457199Кроме слова base которое тут не нужно. Ну и разметка проебалась: x => 0.1f УМНОЖЬ СУКА x УМНОЖЬ СУКА x
>>457201Лол, на самом деле base нужно, без него логика ломается. Охуительная практика для разработки движка - использовать поле value рядом с зарезервированным словом value, 10 юнити из 10
>>457193>>457173https://unity3d.com/ru/learn/tutorials/projects/2d-roguelike-tutorial/writing-board-manager?playlist=17150Строки 41, 45, 48
>>457158>>457231Блять, ядумал там что-то серьезное:https://msdn.microsoft.com/ru-ru/library/dwb5h52a(v=vs.110).aspxОбычная практика очищать List/Dictionary перед использованием, если используется заново
>>457234Так про то и речь - оно заново не используется. В каждом экземпляре класса сначала создается List, потом очищается, а потом используется. Я этого не понимаю.
>>457239>Я этого не понимаю.Потому как подобно 90% всех юнити-говнокодеров, ты сформировал мнение, мол, "C# простой, по сути - скриптовый язык, синтаксис выучил и все, готов в бой". Оно как бы так, однако знание простых основ целевого языка таки отсеяло бы 99% вопрос аналогично заданному.Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices.
>>457245>Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices.Пруфы то будут?
>>457260>>457262Да пжалста, есть куча аргументов за и против:https://www.dotnetperls.com/list-clear^ List.Clear() используется без пояснения, автоматом - common practiceА вот тут поясняется:https://stackoverflow.com/questions/1969993/is-it-better-to-return-null-or-empty-collectionА вот тут чувак, будучу модным круты contrarian? хайпит и зарабатывает brownie points, пихая "мэтров" (в его воображении) с горы и заявляя обратное:https://www.codeproject.com/Articles/794448/Is-it-Really-Better-to-Return-an-Empty-List-InsteaТо есть все как обычно. Выводы делайте сами.Кул-стори тайм:Лично я говнокодер и ничего этого не знал. Привычка клерить пустой, новосозданный лист просто сама по себе развилась. Потом, начав вникать в чужой код, заметил что многие кодеры делают то же самое. Само собой пришло понимание что к чему.Это как использовать `internal` для класса или нет - каждый сам решает.
>>457263Братишка, ты вообще в курсе что твои ссылки не имеют отношения к тому что надо очищать список после создания? В первой, например, пишут что надо ИЛИ создавать новый список ИЛИ очищать
>>457267Возвращайся, как прочитаешь полностью и вникнешь.Вообще, заметив в чужом коде кучу странных вещей, как тот же List.Clear(), у тебя должен резонно возникнуть вопрос - а заче--, ох, да вот жеж блять этот вопрос: >>457158Ну пиздец, ты еще не только приведенные аргументы не читаешь, да и сам тред тоже. Ну и нахуй ты тогда?
>>457270Пиздец ты поехавший, приводит статьи на другие темы и еще чем то не доволен. Вообще в ахуе, сижу проигрываю с тебя а мог бы игры делать
>>457273>а мог бы игры делатьАга, игры от индюка, кто даже basics C# не знает. Игры типа:>>456864этого высера
>>457274А вот и подрыв. Вместо того что бы признать что ты обосрался и привел левые примеры в которых clear() и используется то всего то полтора раза
>>457275>Вместо того что бы признать что ты обосралсяТы из /b/ сюда пришел, что ли? Этот старый прием там со школотой на ура работает, мол, заявить что кто-то обосрался и спровоцировать его на damage control.Поясняю на пальцах: тут никто никому ничего не должен. Чувак задал вопрос, я ответил. Ответ не понравился - ну и ладно, никто не обязан его принимать, как святые скрижали.Но если ты заявил, что он тебе не понравился потому как НЕПРАВИЛЬНЫЙ: будь добр, сучечке, доказать это и обосновать свою позицию.ну это я, конечно, замахнулся, доказать ты ничего не сможешь и тупо в обратку пойдешь на перекидывание стрелок, ad hominem и strawman/
>>457276Но ведь доказывать СВОЕ утверждение должен был ты, но не смог, приведя ссылки на рандомные статьи. О чем я тебе и говорю, с сожалением и сочувствием так то обосраться прилюдно
>>457278>Но ведь доказывать СВОЕ утверждение должен был тыЧто я и сделал. Нужно понять простую вещь: тот факт, что ты не считаешь мое доказательство правильным или не понимаешь его - не значит, что оно не правильное.А вот еще одна вещь: вместо того, что бы как глупый попугай повторять "ты не прав, ты не прав", мог бы уже привести правильное доказательство на поставленный оригинальный вопрос, которое, в сравнение с моим доказательством, было бы более весомым и актуальным и, соответственно, нивелировало мое.Внимание, риторический вопрос: почему ты еще этого не сделал?Отвечать не нужно.
>>457282>что ты не считаешь мое доказательство правильным или не понимаешь его - не значит, что оно не правильное.>Братишка, я говорю что ты рандомные статьи привел, которые никак не являются доказательством того что Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practicesя прям как с пахомом тут сижу и доказываю очевидные вещи
>>457287Братишка, как я тебе приведу более правильные доказательства не существования common practice? Чайком тебя не ошпарить?
>>457291>как я тебе приведу более правильные доказательства не существования common practice?Ну как я и сказал, ты будешь переводить стрелки. Мы же оба прекрасно понимаем, что тебе не нужно этого доказывать, тебе лишь нужно привести своё доказательство и пояснение на вопрос >>457158:>Почему List.Clear() так используется.Вот и все. Само собой сделать ты этого не можешь, поэтому занимаешься goalposts moving - делая вид, что объект аргумента был совсем другой (как правило, в подобных случая выбирают более широкий топик, который в принципе доказан или опровергнут быть не может, ты выбрал адресацию common practices, хотя это НЕ было вопросом или субъектом его, это было частью моего ответа) и тем самым смещая линию обсуждения на другой топик.
>>457263>Очистка даже новосозданного generic-массива>https://www.dotnetperls.com/list-clear>Should you clear a List to reuse it? Or should you just allocate a new List?>https://stackoverflow.com/questions/1969993/is-it-better-to-return-null-or-empty-collection>https://www.codeproject.com/Articles/794448/Is-it-Really-Better-to-Return-an-Empty-List-Instea>Is it better to return null or empty collection?
>>457292Братишка, ты же поехавший, доказывай давай свое первоначальное утверждение Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices или уже признавай что обосрался, хуле ты. Алсо, чайку попей https://ru.wikipedia.org/wiki/Чайник_Рассела
>>457158Короче почитал ваш срач, даже интересно стало. Скорее всего это сделано для удобства расширения. Никакого сакрального смысла в очищении листа после создания нет. Просто потом этот метод может вызываться чтобы ВНЕЗАПНО очистить aka инициализировать лист, что и подразумевается из его названия.
>>457300ps весь тутор я не читал, может там этот боард менеджер используется повторно, учитывая что initialize принимает номер сцены в качестве аргумента
>>457293>>Is it better to return null or empty collection?Ну вот теперь перечитай и задумайся, где же тут ответ.Альсо, >https://www.dotnetperls.com/list-clearне был ответом на вопрос, это было частью ответа, в которой я показал пример аналогичного использования .Clear() (outside of Unity-sphere)>>457295Свой ответ на вопрос анона у тебя есть или нет?Есть - выкладывай, нет - не отвечай.>>457302>может там этот боард менеджер используется повторноЕСЛИ используется повторно, то тогда ответ очевиден.Однако же, это не умаляет оригинального вопроса, ибо я привел пример использования в контексте, где инстанция не реюзается.И вообще, common practices - это не знак "правильного кода", не призывк действию, мол, если ты так не делаешь - то лопух. Понимайте это банально как "привычка" или "так принято". Вы не раз встретите еще аналогичные примеры в чужом коде,с опытом придет понимание и таких вопросов не будет.А вообще, можно, блять, банально хотя бы Шарп по книге поучить, там уже ответы есть на подавляющее большинство подобных вопросов.
>>456736 (OP)Херачу на ведро, проблема такая. После компиляции, на телефоне в одной сцене не отображается часть объектов, хотя во вкладках сценс и гейм все ок. Камера перспектив.
>>457307>Альсо, >>https://www.dotnetperls.com/list-clear>не был ответом на вопрос, это было частью ответа, в которой я показал пример аналогичного использования .Clear() (outside of Unity-sphere) Ты - законченный дегенерат. Там clear используется для очистки существующего списка а не свежесозданного
А как вообще ассеты лицензируются? Правильно ли я понимаю, что можно зайти на assetstore.unity3d.com, выбрать любые ассеты с подписью FREE, нажать Add to Downloads, скачать их, вставить в свою игру и заработать на ней 100к долларов (да кого я обманываю, 15 баксов на плеймаркете - уже неплохо) ничего так и не заплатив автору? Или есть какие-то тонкости и нюансы?
>>457373> Правильно ли я понимаю, что можно зайти на assetstore.unity3d.com, выбрать любые ассеты с подписью FREE, нажать Add to Downloads, скачать их, вставить в свою игруДа.> заработать на ней 100к долларовНет.
>>457374Что да/нет? То, что я смогу физически их вставить в свою игру - я и так знаю. Интересует правовая сторона вопроса.
>>457375> Интересует правовая сторона вопросаВ ассетах пишут, даёт ли автор право использовать их в коммерческих целях.
>>457377> Или можно только те, в которых написано что разрешено?Если пишут что разрешено — значит смело хуярь.Обычно пишут "для ознакомления" или "можно смело пидорить и продавать".
>>457373https://support.unity3d.com/hc/en-us/articles/205623589-Can-I-use-assets-from-the-Asset-Store-in-my-commercial-game-
>>457381>In order to use Unity Asset Store you must be 18 years of age or older. On using the service you warrant that you have legal capacity to enter into the agreement.Ну ахеть теперь. Если правда вскроется - мои игры удалят, а заработанные копейки потребуют вернуть?
>>457307Даунич, посмотри на реализацию clear и убедись, что твое common practice это жиденький обосрамсhttps://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs>мимокрокодил с гринтекстом вместо курсива
>>456736 (OP)Кирюша, очень серьезный вопрос.Какая практическая разница между использование CommandBuffer vs Graphics, в создании скрин-спейс ефектов.Вообще какая между ними разница, мб командБуффер помогает как то по ресурсам выигрывать, я так понял это более низкоуровневая поебота?У меня вот задача сделать "скрин спейс фог", под мобилки. Естественно, желательно мммаксимально дешево.
>>457475>мб командБуффер помогает как то по ресурсам выигрыватьБлять, вам профилирование на что? Сделай оба варианта и смотри, что будет быстрее в твоем случае.Однозначного ответа нет
Котики, у меня иногда из-за ошибок код уходит в while(true){}. Можно ли как то вывести редактор из бесконечности иначе чем через убивание процесса?
>>457485То есть ты задаёшь бесконечный цикл в одном из кадров, и удивляешься что следующий кадр не прорисовывается?
>>457486>То есть ты задаёшь бесконечный цикл в одном из кадров, и удивляешься что следующий кадр не прорисовывается?Ниет жи, я пишу йоба-условие которое иногда содержит ошибки и уводит цикл в бесконечность.>>457489>break?>Можно включить в цикл таймер и брейкать если занимает более чем n секунд/минутСпасибо, но имел в виду что то встроенное в систему. Типа ставишь брекпойнт, и останавливаешь выполнение кода нафиг, выходя таким образом из бесконечности
>>457490>Типа ставишь брекпойнт, и останавливаешь выполнение кода нафиг, выходя таким образом из бесконечностиНу брейкпоинты в дебагерре есть, однако откуда дебагерру знать, что ты в "неправильном" бесконечном цикле
>>457492>Ну брейкпоинты в дебагерре есть, однако откуда дебагерру знать, что ты в "неправильном" бесконечном циклеЖаль нет в call trace кнопки terminate process nahui>>457491>Используй корутину, Люк. Даже если уйдёшь в бесконечность - ничего не сломаешь.Спасибо
>>457480Ну была же у них причина пилить два отдельных класса...ну выжеумные лучшечемгугл!Алсо, заказал хозяина купить мне пикрил. Годное чтиво? На компе полистал, вроде все чинно: буквы в ряд, слова в предложения, да и по теме.
Все тот же любознательный ньюфаг в треде, и таки с первым вопросом.Дано 2D поле, на котором по заданными минимальным и максимальным float-координатам пространстве рандомно спавнится заданное количество звезд. Естественно, из-за float существует вероятность что звезды заспавнятся почти друг на друге. Какие есть простые способы решить это, не вводя клетки в игру? Была идея решить через проверку коллизий, но сначала она не заработала в 2D режиме, а потом при рассуждениях я подумал что идея не выгорит (чтобы проверить коллизию нужно чтобы звезда заспавнилась, а значит ещё нужно будет её удалять если место неудачное, и по идее это будет тупо долго так вот спавнить-удалять пока не найдется подходящее место).
>>4575091. Сгенерируй рандомно точку2. Для каждой звезды проверяй расстояние от этой точки. Если расстояние меньше размера звезды, то goto 1
>>457509Можешь все звезды, точнее, их координаты в список и затем по циклу проверяй каждый новый сгенеренный результат, если слишком близко, делай оффсет или пропускай.Это медленно, но если операция нужна лишь однажды при загрузке - пойдет.
>>457472Нет, всерос не нужно подтверждать результатами ЕГЭ. Даже ДВИ сдавать не нужно, зачисление вне конкурса по диплому и аттестату.>>457474Вся суть олимпиад школьников в том, что теория не выходит за рамки школьной программы. Но всякие основы алгебры, аналитической геометрии, теории чисел и, в особенности, теории игр, дискретки и логики будут очень полезными. Причем оттуда необходимы не сами формулы и понятия, а именно методология рассуждений и поиска доказательств. Готовился просто, без задней мысли.
>>457409Ты пиши свою подпись под основным текстом, а не над, а то я на секунду подумал, что по твоей ссылке опровержение моих слов.
Много раз слышал такое мнение, что программирвоание на С# и Unity не особо улучшает тебя, как программиста. Мне это кажется довольно странным, потому что в играх логика гораздо сложнее, чем, например, в каком-нибудь веб-приложении, да и применять ООП в игорях, по-моему, надо постоянно. Поясните за этот момент, геймдев-бояре.
>>457589> что программирвоание на С# и Unity не особо улучшает тебя, как программистаКонкретно это, в контексте Юнити и c# - правильно.А вот это:>потому что в играх логика гораздо сложнеетупая генерализация, потому как игры могут быть написаны на любом другом языке и движке, в том числе и своем. Как пример: UE4 и С++ это вообще другая весовая категория.
Как сделать чтобы в 2д герой не соскальзывал с платформы? Попробовал метод от сюда:https://null-code.ru/solution/41-vzaimodeystvie-s-dvizhuscheysya-platformoy-liftom.htmlТипа всё, что контактирует с платформой, становится дочерним объектом, но код нихуя не работает,хз, я нуб, помогите
>>457601Бля отбой, перезагрузил студию и всё заработало. Заебало это кстати, что часто код не работает, потому что что-то юнити не улавливаетс первых разов
>>457589В Юнити слишком легко набраться плохих привычек, что может быть плохо если ты до Юнити ничего не знал. В противном случае ты будешь кодировать и плакать, плакать и кодировать, настолько Юнити в этом аспекте ужасно.ООП в играх имеет принципиальные проблемы: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ Data oriented design работает лучше.
>>457628Синглетоны на каждый чих, сильное связывание, связывание через редактор, говнокод вообще, Invoke, SendMessage. Это краткий список. Юнити не предлагает тебе никакой архитектуры или структуры, тебе дают API, редактор, сборку и MonoBehaviour - ебись с этим всем сам конём. Получается совершенно лютые формы народного творчества в реальных играх.Анрыл хотя бы предлагает более-менее чёткую структуру.
Как сделать объект радиус, при попадании в который этот объект за мной начинал бегать? Я это все сделал, но сделал через OnTriggerEnter и колижн бокс, всё круто, но только есть баг, колижнбокс хоть и триггер, но всё равно часто нажимая влево-вправо и подпрыгивая, я умудряюсь отталкиваться от него, хотя при триггер такого не должно быть, чяднт?
>>457634> радиус, при попадании в который этот объект за мной начинал бегать?Тебе именно радиус вокруг объекта? Типа "если подошёл на метр, то хуё-моё", или, скажем так, "угол зрения"?
>>457631> Синглетоны на каждый чихНо что в этом плохого, если смысл синглотона оправдан? Инвентарь у игрока почти всегда один, если не пилить тактикул, например.
>>457637Это ровно то что я и имею ввиду под "плохими привычками".1. Ты привязываешься к конкретной реализации инвентаря. Слишком легко добавить ещё одну функцию которая вроде бы не совсем инвентарь но всё же связана. Инвентарь превращается в монстра делающего всё, включая кофе.2. Через N месяцев код будет настолько запутанным и напичкан взаимными связями что каждое изменение где угодно будет что нибудь ломать в другом местеСвязи должны быть явными, хорошо видимыми, через прописанные интерфейсы и разрешаться через DI по возможности.
>>457634Извиняюсь за проёбанные окончания в словах.>>457635Мне надо, что бы когда я подошёл к этому объекту, он подлетел ко мне и дальше за мной летал, никак не взаимодействуя своим телом с другими объектами, пролетал сквозь всё подряд, но мог бы в будущем стрелять. Мы говорим о 2д.>Типа "если подошёл на метр, то хуё-моё", или, скажем так, "угол зрения"?Да можно и то и то. Я просто пока догадался только сделать колайдер с радиусом, и через онтриггеринтер оттдавать комнаду на привязку к герою, типа зашел в область коллайдера, начал действовать метод. Мне нужен способ без использования колайдера, если есть такой, ну или че с этим колайдером сделать, что бы он не баговал так. Мне пригодится потом в программировании врагов
>>457639> Да можно и то и тоЕсли чисто радиус, то бери расстояние от игрока до моба, нахер тебе онтриггерэнтер лишний раз дрочить?А если угол зрения, то помимо радиуса проверяй угол между "зрением" моба и позицией игрока. Если угол меньше заданного (например, 45 градусов) и расстояние попадает в условие, то начинай за ним бегать под Бенни Хилла.
>>457641Ну, напримерTransform player;float angleV = 45f;float playerDist = 2f;void Start () {player = GameObject.Find ("Player").transform;}void Update () {if (player) {float dist = Vector3.Distance (transform.position, player.position);Quaternion look = Quaternion.LookRotation (player.transform.position - transform.position);float angle = Quaternion.Angle (transform.rotation, look);if (angle <= angleV && dist <= playerDist) {//тут уже пиши что тебе надо, побегушки за игроком, посвистывание и попёрдывание}}}
Добрый день, господа. В начале осени решил получить работу в GameDev. Читал учебники, срал в тредспасибо за ответы, экспериментировал с 2D. Хотел к новому году запилить небольшой но свой проект, написать немного документации и с этим добром обивать пороги студий дабы получить работу. Стремлюсь к должности Game Designer И вовсе не потому что я ничего не умею но хочу делать игры. Это взвешенное, осознанное решение основанное на самоанализе. Две недели назад узнал об одном мероприятии, на котором, теоретически, меня могут схантить. В связи с этим, было принято решение запилить хоть что-то играбельное из экспериментальной каши. Вопрос только один - с этим можно на что-то рассчитывать?Скачать бесплатно, без регистрации и смс:drive.google.com/file/d/1ypTcc28LPZOWTM0rB_8gN4JH4FbfTngK/viewАрт и звук из открытых источников. Ассеты не использовал (кроме частиц)
>>457631ты какую-то дикую хуйню написал. все это - инструменты. погромист не становится плохим от того что ими пользуется.>>457638по моему ты сам являешься плохим погромистом если ты в здравом уме думаешь что люди которые пишут код в юнити не рефакторят его.
>>457646> Стремлюсь к должности Game Designerчтобы стать гейдизайнером ты должен сперва сделать парочку годных игр в соло. таких кирюх с АХУИТЕЛЬНЫМИ ТОП ЕДЕЯМИ ЛУДШЕЙ ЕГРЫ различной степени всратости жопой жуй, спрева докажи что чего-то стоишь
>>457648>АХУИТЕЛЬНЫМИ ТОП ЕДЕЯМИ ЛУДШЕЙ ЕГРЫЭто не идея охуительной игры. Это что-то полностью сделанное мною. Просто демонстрация того, что я что-то могу. >ты должен сперва сделать парочку годных игр в солоДовольно высокий порог, тебе не кажется?
>>457649важная должность - высокий порог. геймдизайнеры никому нахуй ненужны, если не понимают как делаются игры.
>>457652ты не понимать стремись, ты игры стремись делать. твое понимание бесполезно, в отличии от умения делать игры.
>>457638Ты сейчас описал не то, почему синглтон будет плохо использовать для инвентаря, ты описал ситуацию, в которой синглтон просто будет лежать в куче лапши. Плохому танцору и кривой пол мешать будет.>>457646> Скачать бесплатно, без регистрации и смс:Больше смахивает на прототип, и дело даже не в графоне. Графон ничего так, вернул меня во время фанатских карт на SC:BW. Но геймплей слишком вялый. В мобов стрелять скучно, особенно потому что их надо закликивать бесконечными снарядами. Пушки работают одинаково. Сосульки, я так понимаю, замедляют, но их не хочется использовать, потому что никакого преимущества это не дает: можно просто закликать противника рокетами/бутылками. Мобы слишком быстрые, но при этом легко кайтятся. Хилки с такой сложностью не имеют особого смысла.В дизайне комнат нет никакого смысла, но на это похуй.Я бы сделал больший упор на разнообразие оружия, чтобы игрок мог выбрать подходящий ему способ убийства мобов и добавил второстепенные оружия, которые бы замедляли, травили, поджигали мобов. Плавное торможение стоит либо убрать, либо подкрепить большим количеством этих зеленых лазеров (я так понимаю, они наносят урон игроку), чтобы можно было в них легко въебаться по неосторожности. Мобы впитывают слишком много урона, стоит сделать их опаснее. Либо превратить их в пушечное мясо, с которым ходят более-менее опасные противники. Соответственно, впускать игрока на арену со всякими бочками, укрытиями и т.п.
>>457654Это и есть прототип. То, что смог с нуля сделать за 2 месяца. И я никогда не собирался это резилить ни в каком виде. Только показать работодателю. Спасибо за фидбек. До 2 уровня дошел?>>457653Я тебя понял. Хуячу дальше.
>>457643Не взлетает чёт. Если проверку на угол убераю, то реагирует, но не так как мне надо, я не пойму как сделать...если я отхожу от объекта, расстояние теряется и объект перестает за мной бегать, а мне надо, что бы он один раз активировался и постоянно действовал. Я пиздец чёт тупой, мозг не привык в таком ключе мыслить...
как блять сохранить проект в юнити, чтобы потом можно было открыть его. и продолжить работать. а то я сохраняю, запускаю, все ок, работает, закрываю, открываю заново и у меня ващи нихуя нет, ни камеры, ни объектов ни хуя. все в папках. а на главном окне рабочем пусто
>>457631>Юнити не предлагает тебе никакой архитектуры или структуры Лол блядь, еще не хватало что бы мне навязывали какую то кривую архитектуру. Я сам архитектуру сделаю, плохую или хорошую, проблема головы а не инструмента>>457638>разрешаться через DI по возможностиЧто за DI?
>>457663>Что за DI?Data InterfaceУ Unity есть похожий аддон под названием ECS - Entity System, он - data-driven
>>457631> Invoke, SendMessageНе использовал это ни разу.> Синглетоны на каждый чихНе делаю их.> Юнити не предлагает тебе никакой архитектуры или структурыЯ сам ее делаю.Вообще, я почти все свожу к дефолтномуотносительно ооп.Я нормален?
>>457666Намек понял, Кэп, паста для >>457646 incoming:http://www.lizengland.com/blog/2014/04/the-door-problem/
>>457643>>457641>>457640хех мда, а могли бы по-нормальному через свое скалярное произведение запилить, а не через какие-то там кватернионы.
>>457670Ну типа того. А если в мобильный ф2п проект, то нужно учиться тервер и как задизайнить микротранзакции в матч3
>>457669>Не использовал это ни разу.а зря. иногда полезно. но обычно нет.>Не делаю их.интересно как же ты тогда гуи делаешь, например. че, даже менеджеров не делаешь? человек ли ты?>Я нормален? учитывая что ты не пользуешься какими-то инструментами по мутным причинам то не очень. дальше что? goto не использовать?
>>457647Я являюсь тимлидом с 4 юнити-погромистами в подчинении - они творят такую хуйю что волосы на жопе шевелятся. Всё что написал - не более чем краткий обзор типичного народного творчества.>>457654Типично где есть синглетоны там есть и лапша.>>457663>Что за DI?Dependency Injection. Ты не пишешь "вот ты, да ты, дай мне инвентарь", ты пишешь "мне нужен инвентарь для работы" и система снаружи тебе его даёт и тебя не ебёт откуда он приехал.
>>457643>>457672Это будет более expensive d Update.Представь у тебя 100 врагов на каждом левеле.OnTrigger лучше.Касательно:>Я это все сделал, но сделал через OnTriggerEnter и колижн бокс, всё круто, но только есть баг, колижнбокс хоть и триггер, но всё равно часто нажимая влево-вправо и подпрыгивая, я умудряюсь отталкиваться от него>я умудряюсь отталкиваться от негоДрочи Physical Layers и ignore mask
>>457675>Ты не пишешь "вот ты, да ты, дай мне инвентарь", ты пишешь "мне нужен инвентарь для работы" и система снаружи тебе его даёт и тебя не ебёт откуда он приехал.То есть SendMessage/broadcastMessage аналоглолка
>>457675>Я являюсь тимлидом с 4 юнити-погромистами в подчинениида как бы грош цена твоим заявлениям после написанного.>Ты не пишешь "вот ты, да ты, дай мне инвентарь", ты пишешь "мне нужен инвентарь для работы" и система снаружи тебе его даёт и тебя не ебёт откуда он приехал.про синглтон рассказал во дела
>>457678>про синглтон рассказал во дела Ровно нет. DI и синглетоны это две противоположные вещи, pull vs push.
>>457666Знаю. И хочу как можно быстрее получать реальный боевой опыт, уйти в глубь специализации, а не дрочить индюшатину где ты на все руки мастер. У меня есть все необходимые для этого качества. Мне просто нужно получить свою первую работу в GD.
>>457699Я серьезно.В моем юнити нет никакой "системы снаружи", зато можно сделать GameManager, который будет выдавать ссылку на инвентарь, небо и аллаха.
>>457704Снаружи - снаружи конкретного объекта. Ты не делаешь MyAss.Instance.Poo(), у тебя есть некий IAss ass значение которому подставляет внешняя по отношению к объекту система. Потом ты пишешь ass.Poo() и тебе нет дела до того чья эта жопа, ни как устроена.Азубка софтварного проектирования же, ну!
Меня не покидает ощущение того, что я долбоеб. Можно ли это как-то переписать? Массив нужен для конструктора юнита/NPC, чтобы определить, какие статы основные и накинуть к ним 10-15 поинтов.
>>457709public Characteristics[] CharArray{ get{ return new Characteristics[]{ Strength, Agility... }; }}Если нужно часто обращаться к массиву, то можешь закешировать массив и изменять его при изменении одной из стат.
>>457701Ты хочешь о чем-то поспорить? С одной стороны, именно благодаря эмпатии я могу ставить себя на место разных типов игроков и анализировать что они делают. С другой стороны никто не отменял аналитику и психологию.
>>457707А, это. Извечная проблема, понять людей, любящих говорить сложно об очевидный вещах.Еще и с сажей пишет, тимлид мамкин.
>>457711> часто обращаться к массивуНе, массив нужен чисто при генерации юнита, в остальных случаях нужны отдельные характеристики. Поэтому и возникла нужда в такой конструкции.
>>457714> [Serializable]Это имеет какой-то дополнительный смысл кроме того, что я смогу править значения в редакторе? > Characteristic - в structВ чем соль? Типа референсы могут проебаться?Не бейте, я нюфаг.
>>457676>Physical Layers и ignore maskПовелосипедил посидел, так и не понял, как их использовать. Что мне нужно в объекте изменить, что бы он перестал контактировать с остальным говном?Как из кода можно отключить box collider?
>>457723>Это имеет какой-то дополнительный смысл кроме того, что я смогу править значения в редакторе?Гугли Unity data serializing/deserializing>>457723>В чем соль? Типа референсы могут проебаться?Struct - value type.>>457725Зачем отключать? Выведи свои триггеры на отдельный phys layer и убери коллизию с layer игрока. ЕМНИП, в этом случае, OnTrigger все равно пашет. но надо проверить
>>457726> Unity data serializingАга, насколько я понял, это нужно, для переноса данных между сценами, сессиями и т.п. Сделаю, как ты сказал, потом почитаю.> Struct - value type.Это-то я понимаю. Нагуглил вот эту статью: http://www.albahari.com/valuevsreftypes.aspx — встал вопрос: Раз в игровую неделю будет обновляться список персонажей, которых можно нанять. Если использовать value type, это не будет раздувать используемую память? Или, если у меня NPC реализован через класс, то и его характеристики будут исчезать из памяти вместе с ним? Я понимаю, что сейчас об этом нет особого смысла думать, пили прототип и не выебывайся, но мне уже просто любопытно, хочется же все ПО УМУ.
>>457729>Это-то я понимаю. Нагуглил вот эту статью: http://www.albahari.com/valuevsreftypes.aspx — встал вопрос: >Раз в игровую неделю будет обновляться список персонажей, которых можно нанять. Если использовать value type, это не будет раздувать используемую память? Или, если у меня NPC реализован через класс, то и его характеристики будут исчезать из памяти вместе с ним? >Я понимаю, что сейчас об этом нет особого смысла думать, пили прототип и не выебывайся, но мне уже просто любопытно, хочется же все ПО УМУ.Тут нужно читать хендбуки по C# дабы понять какой, в твоем конкретном случае, вариант лучше.
>>457730Ладно. Я рад, что хотя бы конструкция с массивом на том скриншоте — это не вырвиглазный пиздец.
Юзаю OverlapSphere для определения, пересекается ли гекс с объектами. Но если сфера находится полностью внутри коллайдера, то этот коллайдер не считается оверлапнутым.Collider[] hitColliders = Physics.OverlapSphere(hit.point,trigger.CellSize*2);if(hitColliders.ToList().Where(c=>Contains(obstacleLayer, c.gameObject.layer)).Count()==0){return true;}else{ return false;}Как можно получить эти самые объекты?
>>457739>if(hitColliders.ToList().Where(c=>Contains(obstacleLayer, c.gameObject.layer)).Count()==0)Хз по вопросу, но я более чем уверен, что простой for for массиву с кондишенами будет быстрее и будет генерировать меньше отходов, нежели залупистый linq
>>457745Хм, и правда. Только это какое-то кастыльное решение. И мне кажется капсюли будут больше жрать. Но попробую пока так.>>457744Оптимизатор, плиз. Есть сотни всякого говна, которое влияет на производительность больше, чем такие мелочи. У меня в колайдерах будет от силы объектов 5, я тут не бигдату ковыряю, чтобы писать лишние буквы ради пары наносекунд.
>>457748> кажется капсюли будут больше жратьТвоими же словами:> Есть сотни всякого говна, которое влияет на производительность больше, чем такие мелочи.
>>457750Ну да, это то самое.Короче это бессмысленный спор.По запросу linq performance:>The best practice depends on what you need:>Development speed and maintainability: LINQ>Performance (according to profiling tools): manual code
>>457755Не зная что конкретные linq-функции творят за кадром можно так нехило какать в heap.А если это чудо еще и в Update и аналогах - это будет пиздец.
Как лучше организовать генерацию уровня? На данный момент она у меня происходит прямо в Start(), а хотелось бы показывать игроку в этот момент какой-то loading screen. Запихнуть генерацию в корутину и из нее сигнализировать о прогрессе?
СапВпервые работаю с анимацией. Сделал быстренько модельку с анимацией в блендере, гружу в юнити. Все хорошо кроме правой руки. Рука и предплечье почему-то статичны, хотя в блендере анимация корректная. Причем правая ладонь двигается как надо, а рука и предплечье стоят на месте. Пробовал грузить и .blend файл, и экспортировать в .fbx. Наверняка кто-то сталкивался с таким. Как решить проблему?
Аноны, кто-нибудь делал систему трейтов, например для RPG? У меня есть перечень трейтов, которые рандомно выдаются наемным персонажам. Что-то типа системы в Darkest Dungeon, где у персонажей могла развиться клептомания, они не могли использовать определенные здания/комнаты. Проблема в том, что их нельзя систематизировать: какие-то трейты повышают стат или два, какие-то влияют на последствия взаимодействия с другим персонажем, какие-то повышают качество той или иной работы. Можно ли сократить количество говна, которое придется писать ручками? Потому что пока что я могу только взять базовый класс на пик1 и от него делать детей как на пик2. В голову приходит только прикручивание ScriptableObject, чтобы дублировать классы для уровней трейтов и прописывать в редакторе переменные, ну и сделать контейнер, из которого трейты можно будет доставать при генерации персонажа.
>>457926Scriptable обджекты выбирай, правда как вот это сделать - вопрос>какие-то влияют на последствия взаимодействия с другим персонажемЯ вот собираюсь на скриптбл обджектах скоро систему скилов пилить, чуствую наебусь с логикой немало
>>456736 (OP)>The Unity Awards 2017 Winners: >[YouTube] The Unity Awards 2017 Winners[РАСКРЫТЬ]эту красоту делают одиночки или студии в 20+ рыл с суммарным оытом 100+ лет?
>>456736 (OP)>Made With Unity 2D Games Showreel 2017: [YouTube] Made With Unity 2D Games Showreel 2017[РАСКРЫТЬ] эту красоту делают одиночки или студии в 20+ рыл с суммарным оытом 100+ лет? а есть пример того, что делают 1-3 чела, анпример?
>>457932Подскажите код как сделать, через Random.insideUnitCircle хуита получается, она трясётся в одну какую-то сторону слишком
>>457944Сам навелосипедил короче: public float elapsedTime = 0F; public float perlinNoiseY = 0F; public float perlinNoiseX = 0F; public float multiplier = 4F; private float shakeTimer; private float shakeAmount; private bool isShaking; private Vector3 startPosition; private void Start() { startPosition = transform.position; isShaking = false; } private void Update() { ShakeDiractionRnd(); if (Input.GetButtonDown("Fire1")) ShakeCamera(0.2F, 1); //Move(); } public void ShakeCamera(float shakePwr, float shakeDur) { isShaking = true; shakeAmount = shakePwr; shakeTimer = shakeDur; } private void ShakeDiractionRnd() { if (shakeTimer >= 0) { Vector3 rnd = Random.insideUnitCircle 2; elapsedTime = Time.time; perlinNoiseX = Mathf.PerlinNoise(elapsedTime, 0); perlinNoiseY = Mathf.PerlinNoise(elapsedTime, 0); transform.position = startPosition + new Vector3(perlinNoiseX rnd.x shakeAmount, perlinNoiseY rnd.y * shakeAmount, transform.position.z); shakeTimer -= Time.deltaTime; } else if (isShaking) { if (transform.position != startPosition) transform.position = Vector3.Lerp(transform.position, startPosition, 1.5F); isShaking = false; } }Только не получается камеру на startPosition плавно вернуть, не рабоатает Vector3.LerpюLerp, когда ставлю Time.deltaTime (сейчас там пока 1.5F, но не суть можно просто transform.position = startPosition написать):f (transform.position != startPosition) transform.position = Vector3.Lerp(transform.position, startPosition, Time.deltaTime);
>>457966Чёт знаки проебались>transform.position = startPosition + new Vector3(perlinNoiseX rnd.x shakeAmount, perlinNoiseY rnd.y shakeAmount, transform.position.z);
>>457982Лол, я просто ебанулся походу от недосыпаСкажите, эта тряска так и делается с Random.insideUnitCircle и Mathf.PerlinNoise, или можно только из нойза рандом замутить?
>>457966Внутри лерпа твое 1.5F обрезается до 1, а уже lerp(a, b, 1) = b, поэтому плавного перехода не будет. Поставь 0.5 к примеру
>>457990> Скажите, эта тряска так и делается с Random.insideUnitCircle и Mathf.PerlinNoise, или можно только из нойза рандом замутить? В вики вот такой пример лежит. Посмотри, может чего увидишь, что можно в свой велосипед засунуть.http://wiki.unity3d.com/index.php/Camera_Shake
>>457992Спасибо!>>457997Да я так и делал как тут написано сначала, потом вычитал про PerlinNoise, с ним эффект лучше выглядит. Да ладно, сейчас работает как нужно и ок, просто я думал может попроще можно наговнокодить. Получается в моём примере если делать без Random.insideUnitCircle, то получается это нойз в определенный вектор делает движение, если указать x и y, то камера просто по диагонали качается и все, я не долго думая добавил рэндом и сам не понял, что сейчас происходит. Получается каждая ось получает рэндомную точку в радиусе и от этой точке летит по perlinNoise куда-нибудь.Вся соль в том, что если, как из той вики, использовать только Random.insideUnitCircle, то камера трясётся не плавно и в одну сторону её уносит, а если добавить perlinNoise, тогда тресётся плавно и никуда её не уносит
ДратутиЧто скажете на счет визуального скриптинга, ктонибудь юзает?Хотелось бы обмазаться ассетами или дополнениями там всякими и чисто мышкой элементарные вещи делать. Мне например для UFPS надо сделать плавание, наверное это невидимый триггер где можно медленно летать с мыльным эффектом.Как вы плавание делаете например?
>>457931> правда как вот это сделатьПроверять списки этих персонажей на наличие нужных трейтов, потом вызывать функцию из трейта. Мне больше хотелось понять, как удобно складывать все трейты для конструкторов персонажей, но я проснулся и понял, что скорее всего мне нужно будет ручками сделать как минимум общую помойку всех трейтов. Максимум статичные списки для каждой категории и функцию, которая будет принимать на входе данные от магазина персонажей и выдавать персонажам нужные качества.
>>457992Чё-то всё-равно не работает. Хотя хз, всё вроде понятно же должно быть, откуда, куда и с какой скоростью, че ему надо
>>458023> else if (isShaking)> {> if (transform.position != startPosition) transform.position = Vector3.Lerp(transform.position, startPosition, t);> else isShaking = false;> }Попробуй так
А можно вычисления фоном проводить в юнити? Не в куратинах, где точка выхода указывается в определенных местах программы, а чтобы выходило и входило по времени?
>>458038По какому времени? Через n секунд/минут после начала игры? У тебя для этого есть Time.time и Time.realtimeSinceStartup
>>458024Заработало. Спасибо, бро. Я второй месяц программирую, мозг не привык в таком ключе мыслить, туплю что-то совсем.
>>458042Нет, не через n секунд, а скорее, выполнять программу n секунд, заниматься всем остальным, сново выполнять программу n секунд. Как куратины, только куратины выполняют программу n шагов за любое время, а нужно, чтобы выполнялось любое количество шагов за время n.
>>458047Она ждет определенное время перед тем, как начачать выполняться, а нужно, чтобы она выполнялась определенное время
>>458043Да тут большая часть треда таких. Я каждый раз берусь за какое-то новое говно, дропаю его. Начинаю новый проект — охуеваю от того, что задачи, которые ебали мне мозги в предыдущем проекте, теперь кажутся довольно простыми. Но у меня в основном проблема в том, что я, вместо того, чтобы написать хоть какое-то решение, хожу вокруг компухтера и думаю, как охуенно написать одну-две строчки кода.
>>458049Ёпта, в одной корутине запускай вэйтфорсекондс, после чего меняй флажок. В другой корутине делай проверку по флажку и ебошь свои вычисления.
>>458049Т.е. тебе нужно типа:void DoStuff(float t){float startTime = Time.time;float endTime = startTime + t;if (Time.time != endTime){//происходит йоба}}
>>458049Сюда посмотри, тебе ж сказали про Time.timehttps://docs.unity3d.com/ScriptReference/Time-time.htmlПример для кого написан?
>>458051Так не получится - фложок то будет проверяться после того, как вторая куратина свой цикл отработает. Это ничего не даст.>>458053В целом типа того, только оно не так работает. Вот куратина, например, делает конкретный кусочек ебы, потом в следующем кадре конкретный кусочек ебы. А мне нужно, что прогроамма делала конкретное время кусочек ебы (сколько успеет), потом в следующем кадре делает такой кусочек, какой успеет.>>458057Да это мне никак не поможет. Мне не оно нужно.
>>458060Нихуя не понял. Можешь привести конкретный пример того, где это применимо. Я разве что могу это прилепить к постройке зданий в RTS.
>>458060Привет. Ты чё, охуел? Ты можешь нормально расписать задачу? А то вся твоя постановка вопроса пока звучит как "ну надо шоп кароч заебись было, но ваши советы - не советы".
>>458066Бля, ну у тебя же есть какая-то единица выполненной работы? Просто сохраняй состояние процесса и выполняй более простую операцию внутри функции выше, эта будет просто таймером.
>>458067Так я уже объяснил. Программа, которая будет выполняться кусками по n секунд. Не кусками по n строк, как куратина, а кусками по n секунд.>>458068Вот сейчас я тебя не понял. Функция не сможет быть таймером т.к. переменные time не меняются, пока не закончится блок вычислений.
>>458069> Программа, которая будет выполняться кусками по n секундЗаписываешь в переменную oldTime значение Time.time, тут же запускаешь программу на n секунд в цикле while (Time.time <= oldTime + n)
>>458069Блядь. Ну допустим у тебя есть класс Yoba с количеством выполненной работыpublic class Yobas{int yobaCount;float yobaReadiness;}В каком-нибудь MonoBehaviour:public Yobas yobas = new Yobas();float yobaEndTime;void Update(){ if (Input.GetKeyDown.YobaKey) { yobaEndTime = Time.time + 10; } if (Time.time < yobaEndTime) { AssembleYoba(yobas); }}Yoba AssembleYoba(Yobas yobas){ yobas.yobaReadiness += 1; if (yobas.yobaReadiness > 100) { yobas.yobaCount += 1; yobas.yobaReadiness = 0; }}Хули тут непонятного-то?
>>458072С какого хуя? Допустим, с запуска прошло 10 секунд. На момент запуска программы имеем следующие значения:Time.time = 10OldTime = 10Например, запускаем программу на 5 секунд.Условие (Time.time <= oldTime + n) принимает вид (10 <= 15) и это самое "10" будет расти, пока через 5 секунд не достигнет значения "15" и условие перестанет выполняться.Ты жопой-то не читай.
>>458073>С какого хуя? Документацию изучи.>>458075И? У тебя программа выполняет шаг, отрисовывает кадр, снова выполняет шаг. А мне нужно, чтобы она не шаг отрабатывала, а заданное время (столько шагов, сколько успеет).>>458084В основном потоке нужно.
>>458101В main thread только если так программу структурировать.То, как ты хочешь, проще по корутине сделать, дать ей заданный промежуток времени и обрубать, если время вышло.Можешь даже пожировать, и сделать две корутины - одна дело выполняет, другая время чекает, стартуют одновременно, чекер гасит раба
>>458101Тогда хуй соси, даун. В основном ему потоке блядь. Ты сам то понимаешь что ты хочешь, дебил ебаный?
>>458101> столько шагов, сколько успеетОно у меня это и делает. Есть заданное время и нужный алгоритм. Сколько раз успел этот алгоритм повертеться за заданное время — столько и повертелся.Это траллинг тупостью такой что ли? Тебе уже 10 раз всё объяснили.
>>458101> Документацию изучи.Лол блджад, точно траллинг тупостью.Но этом >>458075 видео я именно это> (Time.time <= oldTime + n)И использовал, и почему-то в вечный цикл не уходил.Ты бы сам документацию почитал.
Какая лучшая практика для того чтобы портировать информацию из одной сцены в другую? Мне нужно сделать так, чтобы в зависимости от двери в которую вошел игрок, в новой сцене он спаунился по определенным координатам. Я примерно знаю как делать сохранения во внешний файл, но ведь тут получается нужно сначала сохранить, а потом загрузить, а это слишком заморочено, у меня ведь игра не выключается. Из того что знаю - Синглтон в виде гейм-менеджера. Это лучшее решение, или можно как-нибудь иначе это сделать, да так, чтобы скейлилось и на 100+ дверей?
Посоны, можно как-то сменить бесплатную светлую тему на тёмную (пропатчить может чем-нибудь)? У меня закончилась лицензия, юнити откатился на светлую тему и у меня чуть глаза не вытекли.
>>458200Я в своей игре использую две сцены. Одна сцена Game, которая хранит различные объекты, интерфейс и тому подобное, другая сцена представляет уровень. Уровни постоянно сменяются, а Game остаётся.
Ребята, как сделать так чтобы при атаке и контакте с другим 2д коллайдером появлялся Particle Systems, именно в точке контакта с другим 2д коллайдером? Што?
>>458200Можно аддитивно подгружать и активировать сцену, тогда будет склейка из двух. Как только дверь за игроком схлопывается - выгружать старый левел
>>458242Ну, по OnTrigger2D получаешь глобальные координаты центров коллайдеров, получаешь их bounds и extends, транслируешь в world coordinates и вычисляешь точку столкновения
Мне нужно переместить окно в определенную позициюДелаю void Start() { GetComponent<RectTransform>().localPosition = new Vector2(2f, -52f); }И его кидает хуй пойми куда. Я понимаю, что это как то связано с якорями и пивотами, но как? Как мне установить окно в определенное место? Допустим, якорь в верхнем левом углу и пивот (0,1)
>>458333Точняк. А то я давал глобальные коорды, их перехуячивало относительно якорей и получался какой то рандом.
Сап. Как сделать прыжок в 2d, что бы его высота зависела от продолжительности нажатия клавиши, но если клавиша нажата больше определенного времени, прыжок заканчивался? Т.е. держим клавишу не долго, то низкий прыжок, держим дольше высокий, но если передержали, начинаем падать, ну и сделать минимальную высоту прыжка, ниже которой нельзя прыгнуть.Я не могу сообразить, я тупой, не понимаю куда и на что там время надо умножить, или как его замерить, я знаю про функции GetKeyDown и GetKeyUp или просто GetKey, прыжок знаю, как двумя способами сделать:GetComponent<Rigidbody2D>().velocity = new Vector2(0, jumpForce);илиGetComponent<Rigidbody2D>().AddForce(transform.up, ForceMode2D.Impulse)
>>458370Хотя нет, наверное нужна реалистичная, сейчас подумал, что хотел сделать, чтобы прыгнув в сторону, в воздухе нельзя было легко повернуться в другую сторону, ну всмысле повернуться можно, но импульс должен остаться в приложенном векторе изначально.
>>458376>прыгнув в сторону, импульс должен остаться в приложенном векторе>нельзя было легко начать двигаться в воздхуе в другую сторонуКстати как это сделать?Сейчас прикрутил в Uodate гравитацию Physics2d.gravity поменял её по игрику и прыжок стал реалистичнее, если с ней поиграться, получается сейчас игрок быстро подпрыгивает, типа с импульсом, а падет медленне, получается реалистичнее. Но я до сих пор не пойму, как сделать зависимость высоты прыжка от продолжительности нажатия клавиши. Помоги добрый анон
У меня к объекту добавлен компонент Slider. Я его меню на другой компонент который потомок Slider. Нельзя ли как то скопировать настройки старого компонента? Они жи совместимы. Paste чего то там не работает.
>>458392Я в туториале глянул, вот тут:https://www.youtube.com/watch?v=aYE-1cAjdewНу а как? Не смейтесь, я нуб, лучше посоветуйте, как сделать реалистичный прыжок самым достойным способом, и чтобы высота он t нажатия зависила
>>458393FixedUpdate() есть. А то в Update() у тебя физон от фреймрейта будет зависить, зашкварно.И вообще странно это как-то: через гравитацию делать прыжки. Есть же rigidbody2D.
Ребят, ребят, а как лучше реализовать управление машинкой для мобилок при камере сверху под углом? Думаю, лучше как-то одним пальцем управлять. А как? Поставить снизу экрана один джойстик?
>>458394>FixedUpdate()Да точно, не успел об этом подумать.Я не по тутору делал, я от туда только изменение гравитации взял, а так он у меня с rigidbody прыгает:GetComponent<Rigidbody2D>().AddForce(transform.up, ForceMode2D.Impulse). Но если делать только так, то он как-то не очень естесственно прыгает...или хз. Че просто массу ему поменять? Сейчас попробовал без измененной гравитации, вроде почти так же прыгает, упоролся я что ли. В любом случае, подскажите как сделать зависимость высоты прыжка от времени нажатия клавиши
>>458399public float ExtraJumpMultiplier = 0.5f; //доп. множитель прыжка, при макс. множителе игрок будет прыгать в 1.5 раза вышеpublic float ExtraJumpDelay = 0.5f; //время, за которое достигается макс множительprivate float jumpMultiplier; //Player.FixedUpdate/Player.Update/шонибудьif (Input.GetButtonUp("Jump")) Player.Jump(1 + jumpMultiplier); //если игрок отпустил кнопку, то прыгаемif (Input.GetButton("Jump") && Player.IsGrounded) //увеличиваем множитель только если игрок на земле и кнопка прыжка удерживается{ if (jumpMultiplier < ExtraJumpMultiplier) //если мы не достигли максимума jumpMultiplier += ExtraJumpMultiplier Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ. else jumpMultiplier = ExtraJumpMultiplier;}else jumpMultiplier = 0; // если игрок не на земле/не держит кнопку//Player.Jumpfloat vel = Mathf.Sqrt(2 Physics2d.gravity.magnitude PlayerBaseHeight multiplier); //скорость для прыжка //PlayerBaseHeight - начальная высота прыжка// multiplier = 1 + jumpMultiplier//(mv^2)/2 = mgh // v^2/2 = gh // v^2 = 2gh // v = sqrt(2gh)GetComponent<Rigidbody2D>().AddForce(transform.up * vel, ForceMode.VelocityChange);
>>458401> ExtraJumpMultiplier Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.ExtraJumpMultiplier УМНОЖИТЬ Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.> float vel = Mathf.Sqrt(2 Physics2d.gravity.magnitude PlayerBaseHeight multiplier); //скорость для прыжка float vel = Mathf.Sqrt(2 УМНОЖИТЬ Physics2d.gravity.magnitude УМНОЖИТЬ PlayerBaseHeight multiplier); //скорость для прыжка
>>458402>>458401Ему нужно что бы акселерация была, если держит кнопку со стационарного положения.То есть, быстро нажал - микропрыж.Держит - высокопрыж.
>458403> if (Input.GetButtonUp("Jump")) Player.Jump(1 + jumpMultiplier); //если игрок отпустил кнопку, то прыгаем> if (Input.GetButton("Jump") && Player.IsGrounded) //увеличиваем множитель только если игрок на земле и кнопка прыжка удерживается> {> if (jumpMultiplier < ExtraJumpMultiplier) //если мы не достигли максимума> jumpMultiplier += ExtraJumpMultiplier Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.> else jumpMultiplier = ExtraJumpMultiplier;> }else jumpMultiplier = 0; // если игрок не на земле/не держит кнопкуНу вот же, если игрок нажимает и сразу отпускает, то небольшой прыжокА если нажмет, задержит на ExtraJumpDelay (0.5) секунд, то прыжок будет в 1 + ExtraJumpMultiplier (1.5) раз выше
>>458401Чё-то в этом коде хуй ногу сломит, не мог просто в 2D заставить кубик прыгать и его скрипт сюда залить? сам то пробовал, что получилось?
>>458412Без ускорения свободного падения, прикинь, можно просто плавно двигаться, у меня так и падало всё, но я в коде накосячил. Алсо, как менять глобальную гравитацию?
Анон, помоги. Не могу разобраться с navmesh.Я запек сетку, и она покрывает дорогу, как на первом пике. Но как только игра стартует, в консоль сыпятся ошибки со второго и третьего пика.Ошибка с SetDestination вызывается на такой строке в коде:navAgent.SetDestination(targetPoint);Сталкивался ли кто с таким? Спавню ботов максимально близко к сетке, разница в 1 по оси OY. Не помогает.
>>458409>>458420Вот, держи: https://hastebin.com/ecerijowev.csЧуть улучшил код, теперь проверка нажатий в update
>>458421Спасибо! Но ты похоже не так меня понял, мне то надо было чтобы игрок прыгал сразу по нажатию клавиши. я нажал и он прыгнул незамедлительно. Если я нажал быстро - прыгнул низко, нажал и подержал дольше - прыгнул выше
>>458427Можешь описать, чем мой код отличается от того, что тебе нужно? Я что-то туплю, так и не могу понять. Может, если ты напишешь различия, то я буду лучше понимать, что тебе нужно.
>>458428По твоему скрипту, пока я держу клавишу нажатой, игрок стоит на месте. Отпускаю - прыгает. Держу не слишком долго, прыгает не высоко. Так?По моему надо, что бы как только я нажал клавишу он сразу прыгал. И если я держал её не долго, то прыжок был бы низкий. Держал бы долго, прыжок достигал бы максимума и заканчивался.
>>458423Я так и сделал, но заказчику не понравилось, сказал: хуле машинки выезжают за пределы трассы, сделай навмеш мне.Но я с этим уже разобрался, а вот с чем не разобрался, так это с тем, что машинки надо выталкивать с трассы, а навмеш строит невидимые стены вокруг себя. Ну и как такое сделать?
>>458432>По моему надо, что бы как только я нажал клавишу он сразу прыгал. И если я держал её не долго, то прыжок был бы низкий. Держал бы долго, прыжок достигал бы максимума и заканчивался.Это блядь не прыжок уже управляемый полетУ тебя приыжок начинается сразу, а контроль длительности прыжка происходит потоммиммо
Алсо, как добавить свой элемент гуи в юнити идитор? Там список стандартных элементов, типа Кнопка, а я хочу свое туда добавить
>>458435Это прыжок, просто его высота может регулироваться длительностью нажатия клавиши, но у него есть свой предел конечно. Блять в тысячи игр такой прыжок.
>>458437Кароч, прыгаешь сразу как нажал, потом, в полете, проверяешь если кнопка еще вжата то придаешь дополнительное ускорение прыжку, проверяя макс. предел
>>458434Бля. Чёт не представляю, как автомобили на навмеше делать. Физона же не будет. Или уже появился? Давно не глядел.
>>458438>то придаешь дополнительное ускорение прыжку, проверяя макс. пределСпасибо кэп, я знаю как это работает, я не знаю, как это сделать, потому что я нуб.
>>458439Физон сам написал.По сути все, что мне сейчас добавляет к сцене navmesh - это невидимые стены. А ИИ ботов работает из отдельного скрипта.
>>458442Хуя ты велосипедист. Проще было пофиксить езду по точкам. Ну тип едешь меж точками регулируя нажатие на педаль газа в зависимости от угла меж автомобилем и направлением к следующей точке.А кто заказывает заниженные тонированные приоры? Ну так, любопытно.
>>456736 (OP)Хороши ли туторы на сайте Unity для изучения всего этого дела с нуля? Программировать на С# немного умею.
>>458462Unity in Action полистай параллельно с этими туторами. А так можешь просто начать делать свой проект и попутно нагугливать нужные тебе уроки. Потом Live сессии зацени.
>>458462Хз какой сайт ты имеешь в виду, но да, хороши>>458440>Спасибо кэп, я знаю как это работает, я не знаю, как это сделать, потому что я нуб.Ну хуй знает, в этом вся суть. Найди нужные события на кнопки, захуячь, добавь ускорения, хуле ты.
>>458462>Программировать на С# немного умеюUnity - это конструктор lego autism editionДаже примитивные троглодиты могут сваять свою игру в Unity. Именно по этому 99% всех игр на данном движке - унылое гавно.Потому как если ты честно серьезно начнешь делать "правильную" игру, ты поймешь что Юнити для таких усилиезатрат - дохлый выбор.
>>458477Мемесы с форчана — это круто, конечно, но нормальные люди не сидят в тредах по теме, которая им ненавистна. > правильные игрыНу это вообще пушка.
>>458478Нормальная такая пушка, когда твоя игра выдает 60fps и не заикается каждые пять секунд, как 101% unity-дерьма>но нормальные люди не сидят в тредах по теме, которая им ненавистна. Проецировали-проецировали да не выпроецировали.Я не ненавижу Unity и мое личное отношение тут не причем, strawman'а не тягай. Я просто называю вещи своими вещами.UNITYFAG'у НЕПРИЯТНО
>>458481> когда твоя игра выдает 60fps и не заикается каждые пять секунд, как 101% unity-дерьмаЧего-то у Tyranny таких проблем не было. У Getting Over It, в который сейчас все играют, тоже. Может быть не стоит винить инструмент в том, что у людей кривые руки?
>>458484>TyrannyНе особо интересовался ей>Getting Over ItЖалобы видал и в стримах и на форуме.У Cuphead, вон, assembly декомпильни - по всем правилам C# OOP написано, там вообще без пары фур бутылок не разберешься. А в результате - те же Unity-баги, что и от косого Васи с 125 синлетонами и "ГЕЙММЕНЕДЖЕРАМИ" блдж
>>458495Хуле там не разберёшь, придурок?Там всё просто как три копейки. Зашёл и хоть перепедаливай половину кода. Ты 100% будешь знать, что навряд ли что-то сломаешь.У меня сейчас на проекте сидят сишники упоротые, для которых копипатить код и хуярить всё пабликами -- норма. Из-за чего весь проект нестабилен и ломается даже от того, что ты логи выпилил.
>>458473>Потому как если ты честно серьезно начнешь делать "правильную" игру, ты поймешь что Юнити для таких усилиезатрат - дохлый выбор.Свой движок то написал уже? А то юнити хуйня, тормозит и текстуры не яркие.
>>458421Перепилил код под свою задачу, но работает не так как надо, пока кнопка зажата, он постоянно прыгает, и работает это как-то криво, может на разную высоту подпрыгивать. Блджат, заебало, и в сети не могу найти, как сделать. Надо, чтобы было так:1. зажал кнопку и держу - игрок прыгает до максимума, приземляется и стоит. Для того чтобы прыгнуть второй раз, надо отпустить клавишу и нажать ещё раз.2. нажал кнопку быстро, например 0.5 сек, то игрок прыгнул не до максимума, приземлился и стоит ждёт, когда я отожму и еще раз нажму.3. по сути нужна высота минимального и высота максимального прыжка, и возможность получаться высоту между этими значениями в зависимости от продолжительности нажатия на клавишу.Ну и увеличение множителя прыжка должно быть конечно через Time.deltaTime, что бы на всех машинах прыгал одинаково при одинаковом времени нажатия клавиши.Я говнокодил, говнокодил, и не наговнокодил. Unity боги, где вы? Я думал это тривиальная задача с которой уже все давно разобрались. С меня нефти
>>458526Вроде сам справилсяhttps://hastebin.com/inetupopik.csХз, посмотрите, может можно ещё лучше сделать, если хотите конечноСпасибо вот этому парню:https://www.youtube.com/watch?v=qghDqO74I5M
>>458549Сейчас попробуем.А что насчёт этого кода скажешь >>458541 ? Там точку отсчёта у обекта надо с самого низа колайдера сделать и поиграться с maxTime и jumpForce. Мне кажется это способпроще
Уважаемые юнаты, я скачал себе этот ваш конструктор игр, накидал сцену, персонажа (он же капсула). Сделал (скопипастил) контроллер. Всё пиздатенько, уже платформер готов, добавить стрельбу и вот и шутер.Но мне нужен открытый мир, а не одна сцена. Мне нужна туева куча неписей и объектов, которые будут перемещаться по открытому миру.Первое что пришло мне в голову, сделать просто огроменную сцену, но вангую это всё хуёво просадит производительность.Второй вариант сделать мир из тучи сцен и расположенными в духе двумерного массива, проще говоря клеточкой и при подходе к границе подгружать следующую сцену. Вангую что будут загрузки при переходе от сцены к сцене.Внимание вопрос, как сделать на юнити бесшовный отрытый мир типа ведьмака? Я смотрел примеры других разрабов, не всем это удалось, например у беседки в их "открытых мирах" постоянные загрузки при переходах в пещеры и дома, такое мне не надо.В гта 5 самая оптимальная для меня система подгрузки лолдов на лету, такое можно сделать в юнити и есть ли готовые примеры? Я сам нашёл только создание огромной сцены, где школьник заставлял её готовыми ассетами деревьев и покрасил землю в зелёный цвет.Видимо так в его представлении выглядит открытый мир. Ни неписей, ни понятное дело врагов он не добавил, только пустые декорации, и то подлагивало.
>>458554>(скопипастил) контроллер. Всё пиздатенько, уже платформер готов, добавить стрельбу и вот и шутерНихуя ты простой
>>458549Не реалистичный прыжок у тебя, если клавишу зажать, плеер подымается, как на лифте, без импульса, выглядит паршиво. А правильно было бы сделать так, если прыжок высокий, импульс толчка больше, если прыжок ниже, импульс толчка меньше, т.е. зависимость величины импульса должна быть от длительности удержания клавиши
>>458554В юнити такое сделать можно, но ты с таким подходом построения мира упрёшься в то, что у тебя float начнёт пидорасить в какой-то момент. точнее будет сказать так, что чем больше у тебя будет целая часть, тем сильнее float у тебя распидорасит, т.к. float не резиновый и очень быстро начинает терять точностьПоэтому тут надо строить систему варпов карты, чтобы ты далеко не уходил от цетра мировых координат.мимо-ПРО-быдлодев
>>458557> зависимость величины импульса должна быть от длительности удержания клавишиСначала сказал, потом подумал. Я хуйню сморозил, импульс же в единую еденицу времени только применяется, сориЛадно хуй с ним, пойду поковыряюсь ещё.
>>458569Мне 25, я просто тупой. Не могу сообразить, в коде еще плохо разбираюсь. Просто я бомблю в тред, запутался, и уже сам подумать не успеваю, что бред несу. Просто не могу сделать прыжок, таким как мне надо и всё. Хз в этом коде мне не всё понятно, как работает >458549 пытаюсь разобраться. Я не пойму, там сопротивление гравитации не логорифмически изменяется, пока клавишу держу? Смысл вот этого корня Mathf.Sqrt(2 • Gravity.magnitude • height) не пойму, с математикой туго
>>458573Формула кинетической энергии - E=(mv^2)/2, где m - масса, а v - скоростьФормула потенциальной энергии - E = mgh, где m - масса, g - ускорение свободного падения, а h - высотаПри вертикальном прыжке в верхней точке они будут равны =>mgh = (mv^2) / 2Потом преобразовываем:2mgh = mv^22gh = v^2sqrt(2gh) = v
>>458575>При вертикальном прыжке в верхней точке они будут равны Чет тупанул, при прыжке кинетическая энегрия переходит в потенциальную, а значит кинетическая энергия на старте будет равна потенциальной в верхней точке
>>458575Но почему по этому скрипту он всё равно прыгает без ускорения, т.е. я зажимаю клавишу, он как на лифите с равномерной скорость подымается, достигает верха и уже с ускорением падает. Получает скорость вверх при прыжке линейная. Или я что-то не так там выставил в мин. и макс. значении или ещё где? Надо чтобы скорость движения вверх и скорость падения были одинаковыми хотя бы.Как сделать чтобы бокс 1x1 юнит подпрыгивал на 3 юнита вверх максимально, и на 1 юнит минимально, по этому скрипту >>458549, какие gravity scale выставить и прочее?Как я понимаю более менее реалистичный прыжок, мы прыгаем например со скоростью 1.0 м/c и пока летим вверх наша скорость падает, потому что на нас действует сила притяжения, 0.8, 0.6, 0.4, 0.2 и при 0 мы зависаем не надолго в воздухе и начинаем падать -0.2, -0.4, -0.6, -0.8, -1Сейчас, сколько скриптов я не перепробовал, всегда с этим проблемы, то оно и вверх и вниз с одинаковой скорость движется, то когда вверх с одинаковой. Помогите, я заебался, два дня уже мучаюсь. В этом скрипте >>458549 всё в порядке, есть то что мне нужно и я просто туплю и что-то не так там делаю? Или его надо подправить? Извините, заебал уже всех наверное
>>458549Короче хороший скрипт, спасибо! Это просто я долбоёб. Сейчас отрегулировал всё как надо.В поле Gravity добавил коэффициент силы прыжка, поигрался с ним и с высотами BaseHeight и ExtraHeight, вроде годно получилось. Я просто сначала в самом риджидбади gravity scale начал крутить, чтобы скорость прыжка изменить и всё по пизде пошло, сейчас вроде норм. Но меня не оставляет паранойя насчёт фпс, с разным фпс будет прыгать одинакового же? Мы же там на Time.deltaTime когда в прыжке умножаем, все ок же будет? Просто при начале прыжка не умножаем, но оно и не важно? Пиздец у меня каша в голове короче. Ладно, главное прыгает как надо теперь, но насчёт паранойи можешь меня успокоить?
https://habrahabr.ru/post/248391/Срыв покровов. Что правда не кошерно юзать Instantiate/Destroy и всё остальное, что там описано?
>>458593>Что правда не кошерно юзать Instantiate/DestroyДа, это даже мануал на офф-сайте вещает.Гугли unity object poolingНо это касается частого юзания, раз в в N минут - несмертельно, если платформа не мобильная.
>>458599Ну вот тут они монетки дестроят например:https://unity3d.com/ru/learn/tutorials/topics/2d-game-creation/creating-basic-platformer-gameЭто вообще годный мануал? Посоветуйте что-нибудь актуально и самое годное для 2д платформера пожалуйста. Потому что после этой статьи >>458593 я понял, что даже некоторые сворованные мной платные мануалы, полная хуйня>>458600Я не дебил, я нуб. Просто мне в мануалах одно рассказывали, а на деле то совсем всё по другому, и похоже, что те ребята и документацию то сами не читали
>>458601Годных мануалов просто НЕТ.Если ты реально планируешь запилить говномобильную игру - придется страдать год, вникая.
>>458591Где Time.deltaTime, там надо добавлять скорость к телу постепенно, поэтому и Time.deltaTime.Лучше заменить на Time.fixedDeltaTime, код в fixedUpdate же выполняется
>>458609Объект будет через все клипаться, так что если ты не делаешь призраков, пиши через rigidbody.
>>458609Старайся юзать трансформ только для телепортации и прочая, например Dash, с заранее просчитанными рейкастом координатами
>>458620>>458621Ну пиздец, во всех туторах так делают, ублюдки, даже в платных. и ещё много чего плохого, как я понялИ чё как в туторе надо? https://hastebin.com/aluhedicub.csПиздец, такие базовые вещи, и с ними умудряются обосраться
>>458651> И чё как в туторе надо?Ну да. Толкаешь rigidbody2d, спрайт притворяется, что он бежит.> такие базовые вещи, и с ними умудряются обосратьсяДа я вообще сторонюсь движка, пока делаю основную логику. Но я пилю экономический сим с РПГ элементами, тут можно и через консоль все важное отображать. С другой стороны, если ты делаешь сайдскроллер, тебе по большей части надо пилить карты или их генераторы, там особо выебываться не надо.
>>458664Лол, я прочёл как сайдколлайдер. Сейчас только заметилТак что нельзя привязывать движение камеры за персонажем что ли? Надо двигать карту?
>>458659>С другой стороны, если ты делаешь сайдскроллер, тебе по большей части надо пилить карты или их генераторы, там особо выебываться не надо.Ну, зависит от sidescroller'а. Если адвенчура-метроидвания, то левелы не обязательно генерить, некоторые ручные делают. Тут проще, можно логику подгонять под левел-дизайн и наоборот.>>458665>Так что нельзя привязывать движение камеры за персонажем что ли? Надо двигать карту?Можно, в Hollow Knight вроде привязана.
>>458675>Можно, в Hollow Knight вроде привязана.Ну её трансформом привязывать? Через Lerp красиво получается. Запугали этой производительностью, я теперь вообще боюсь что-либо делать, пока перед этим 100 раз не погуглив
>>458683Сам ты сука, что толку мне с этого профилирования, если для начала надо узнать, как правильно делать такие базовые вещи, как сраные перемещения объектов и прочее, что бы потом не переделывать.
>>458686Потому как профилирование покажет, кто где срет, в реальном времени, с зумом и запахами, и даже, если нужно, анализ кала сделает.
>>458696>Тебе, пока ты прототип делаешь, несколько похуй на производительность должно быть. Ага, блядь, а потом когда прототип написан выяснится, что переписывать придется дохуя, с костылями и //do not edit, it just works
>>458700>выяснится, что переписывать придется дохуяТУПАЯ CERF БЛЯТЬТАК ГЕЙМДЕВ И РАБОТАЕТ АУТИСТНИКТО НЕ ПИШЕТ ИДЕАЛЬНЫЙ КОД СРАЗУ СУКА БЛЯТЬЗаебал нахуй, или Ворды переставляй
>>458700Без этого никак, братишка. Так рука и набивается.Я свои самые первые проекты как вспомню, так аж передёргивает.
>>458700> выяснится, что переписывать придется дохуяА ты как думал. Нужно оптимизировать. Нужно вычитывать дохуя мануалов если ты хочешь продать свое говно. Все равно потом будешь одним глазом смотреть на профайлер, другим на игру. Хотя вон симуляторы спиннеров выкладывают и нормально. Но это для хайпанувших.
>>458711Зачем переписывать, особенно физику, которую потом нельзя ни в коем случае менять, по крайней мере для моего 2д платформера это очень важно, камера и физика. Я не так давно вкатываюсь в тему конечно, и понимаю, что надо перелопатить кучу мануалов, но госпади, неужели нет такого руководства, которого вы не можете посоветовать? Как сделать норм физику и несколько базовых вещей, по всем правилам движка, в сраном 2д платфомере? Там не так уж много и надо, я же не скайрим пилить собрался.Просто для меня стало открытием, что 90% всех советчиков и мануалов, особенно с ютуба, или с других сайтов(даже платные мануалы!) - некомпетентные пидорасы, впаривающие какую-то хуитку. Мол, о, заебись прыгает бегает стреляет, видали как легко? а оказываетя, что их говнокод хуй взлетит нормально на той же мобилке, или при большом проекте в десктоп. Никто не говорит про пулы, правильные иерархии, построение карты, даже как ебаную зелю сделать, все из боксов с отдельным колайдером на каждом, землю эту наклепают и пиздец, а если при этом сделать движение по горизонтали через эдфорс (о чем хуй кто из них слышал), а не через трансформ, как все уебки, то он начинает и скользить по этим боксам и втыкаться в швы и прочее, и никто про это не рассказывает, как делать такие базовые вещи, добавлять материалы, делать правильные колайдеры. Там блять на час разговоров то, просто изначально дать правильную информацию, как сделать бег, прыжок, передвижение объектов, статические объекты, добавление объектов и удаление их со сцены, смену сцен там и т.д. Нет блять, все занимаются какой-то дизенформацией, и даже в юнитевских мануалах какие-то противоречия сплошные, на уровне вот с платформы на платформу прыгает и заебись, монетки собирает. А те же монетки уебанские не через фабрику делают, а создают да дестроят, пидорасы. А потом Валентин говорит, ебать вы дауны, зачем так неправильно делаете?Смотрел тут лекцию про оптимизацию, там пиздец косяки появляются просто из-за какой-нибудь одной строчки кода, но хуй кто об этом упомянет где. А у меня теперь хуй пойми что в голове, то нельзя, это нельзя, записали? ага вот это тоже нельзя, записали? А КАК БЛЯТЬ МОЖНО, скажи мне дядя? А иди ты нахуй с такими вопросам, отвечает дядя. И пиздец. Это вот этот дядя Валентин Пидорас из юнити технолоджис https://www.youtube.com/watch?v=LE4t37fY9rwПорвался короче.
>>458716> Порвался короче. Добро пожаловать в мир современной разработки. Для жопозаживления читай и не слушай ньюфань: http://giant.pourri.ch/Graphics%20Programming%20Black%20Book/Graphics%20Programming%20Black%20Book.pdf
>>458717И вот после прочтения:https://vk.com/doc44301783_437115200?hash=115853e99d814211a2&dl=a9944301d12018c5cf
>>458716> 0% всех советчиков и мануалов, особенно с ютуба, или с других сайтов(даже платные мануалы!) - некомпетентные пидорасы, впаривающие какую-то хуиткуБлядь, ну а что ты хочешь. Умные дядьки не смотрят на такие руководства, они уже умные. Они ходят на GDC и делятся друг с другом идеями. А у нас на дне никто не знает, что такое хорошо, а что такое плохо. Вот люди и хавают говно с лопаты, причмокивают, и говорят: "Заебись, давай еще братиш". И ходят и рассказывают, как они охуенно потратили деньги на бесполезное говно такой прекрасный гайд.> в юнитевских мануалах какие-то противоречия сплошныеВ live сессиях такой хуйни не замечал. Напротив, если я в чем-то сомневаюсь, я просто иду смотреть стрим. Вот решил отвлечься от основных механик — голова нихуя не варит, когда ты 5 нужных конструкторов для одного класса собираешь — и сделать главное меню. Угадай, как я их запилил? Правильно: через сраный Instantiate(). Но потом я вспомнил, что есть VOD, в котором это все делали через SetActive(). И действительно так стало заебись.
>>456736 (OP)Православно ли бросать спрайты в ui panel? Или игровые объекты отдельно, юай - отдельно?И второй вопрос: в юнити чо правда нет гридвью контрола (не лэйаут)?
>>458719https://www.youtube.com/watch?v=hn9lkAua3Vk&list=PLX2vGYjWbI0SUWwVPCERK88Qw8hpjEGd8&index=2Че вот в таким стримах хуйни не посоветуют?
>>458721>Как задать значение (например 0.1f) всем точкам RenderTexture? Допустим, канал R (или еще куда)Причем это одноканальная текстура RenderTextureFormat.ARGBHalf
>>458725Если ты критикуешь реализацию, то я не понимаю, в чем проблема. Я особо не смотрел код, но я так понял, что здесь сделана простая физика, где предметы не вращаются хуй пойми как, а просто падают вниз, может быть толкаются игроком в сторону; у них нет инерции. Физика на уровне первого HL, короче, но для сайдскроллера в самый раз, к тому же оптимизация реально есть, ведь у тебя весь физон на кинематических телах, которые двигаются только так, как нужно тебе. Не просчитывается, опять же, инерция, центры тяжести, коробки не будут входить друг в друга и пидорасится. Они будут делать только то, что тебе нужно без лишних свистелок и перделок.
>>458716Слушай сюда, сынок.Физику завести довольно-таки сложно как таковую, поэтому тут каждый педалится так как может. Посмотри сюда для настроя: https://youtu.be/NwPIoVW65pEА потом смело в бой. Ну или не шибко смело.мимо-ПРОбыдло-дев
>>458827>Циклом если хочешь поточечноНо как, там же нет RenderTexture.SetPixelИ из Texture2D вроде нельзя копирнуть
хитровопрос. можно даже сказать на тему физона. я конечно знаю что из алгоритмов растеризации линии разве что брезенхэм есть. но как нормальные люди его приспосабливают для рэйкаста? понадобился для коечего похожего на рэйкаст, сделал, но вышло весьма громоздким.
>>458846>Но как, там же нет RenderTexture.SetPixelБамп вопросу. Как ПРОЧЕСТЬ пиксель из RenderTexture
>>458923Галочку с него сними. Или вовсе убери его со сцены. Нахуй он тебе там, если он не работающий?
Тут вроде было у кого то ссылка на реализацию библиотек? Дайте ссылку, мне один метод изменить надо под другой формат. А то чет нигуглится
>>458951А вот она https://github.com/MattRix/UnityDecompiledНо многие методы вызываются из неуправляемого кода дизасембл которого я не нашел
Ребята, работаю с navmesh. Указываю в скрипте агента navAgent.SetDestination(target.position);, агент ползет до цели, но при этом дрожит, не переставая. Скорость перемещения не влияет, он дрожит в любом случае. В какую сторону вообще копать, чтобы найти причину такого?А еще он неадекватно влияет на столкновения. Как батут отшвыривает игрока и дальше прет. Без навэйджента при столкновениях он сам отбрасывался.
>>458833Работаю.>>458916Легко!Сначала создай Texture2D, а потом копирни RenderTexture туда. Пример: https://docs.unity3d.com/ScriptReference/RenderTexture-active.html>>458953Можешь декомпильнуть его сам, при помощи IDA. но боюсь, ты слишком молод, чтобы в ассемблерном коде ковыряться, даже если у тебя будут сигнатуры всех методов>>458971Вангую у тебя на геймобджекте и физон и навмеш агент. Короче, читай тут: https://docs.unity3d.com/Manual/nav-MixingComponents.htmlмимо-ПРОбыло
Значится, такой вопрос:Загружаю я из плейрпрефсов настройки звука и прочее говно, начинаю выставлять в опциях соответственно тогглы разные - тогглы вызывают прикрепленные к ним методы ончендж и получается ебаная лапша.Решил путем наворачивания була isUISetup, слава богу все в один менеджер-синглетон прилетает.Сталкивались с подобным? Кто как решал?
>>458976>>>>458916>Легко!>Сначала создай Texture2D, а потом копирни RenderTexture туда. Пример: https://docs.unity3d.com/ScriptReference/RenderTexture-active.html>>>>458953>Можешь декомпильнуть его сам, при помощи IDA. но боюсь, ты слишком молод, чтобы в ассемблерном коде ковыряться, даже если у тебя будут сигнатуры всех методовКак всегда в таких случаях оказывается что я где то обсрался а метод переписывать и не нужно. Все равно спасибо!
аноны, есть вопрос к экспертам: допустим есть дохуя префабов, и по сути не нужно держать их в оперативе (для загнивающих андройдов). Если, например, некоторые предметы еще не доступны в игре, но могут потребоваться потом, когда игрок их "откроет".Использовать папку Resources ? ассетбандлы? Кто сталкивался с подобным?
>>458985Так инстанть префаб только когда он потребуется, в чём проблема?Но лучше Resources, потому что если префабов реально дохуя, то легче их по имени искать, чем ручками каждую штуку в инспектор пихать.
https://www.youtube.com/watch?v=raQ3iHhE_Kk Что думаете о такой архитектуре, посоны? Вроде, выглядит годно.
>>458991Ладно, я потестил. Оверхеда не видно. У такого подхода конечно есть куча подводных камней, но если осторожно использовать то очень годно.
>>458987>>458992Пиздато для крупной конторы и в плане обособленности систем, но для инди-хуинди по большей части неоправдано, имхо. > Оверхеда не видно.> если осторожно использовать то очень годноТут нужен дядька гейм-дизайнер, который уже распланировал всю игру в документе на 300 страниц, из которого станет ясно, что да как пилить.
Господа, очечь важный для меня реквест, помогите плз. Есть какой-нибудь, желательно бесплатный (или условно-бесплатный) плагин для Юнити, который позволяет открывать веб-страницы внутри окна приложения? Если он еще и будет работать под винду, то вообще зашибись, а то не охота на виртуалке все тестировать, спасибо!
>>458998>даун даже не понял сути претензий, но высрать что-то обязательно нужно былоСъеби в агдг и там щитпости например, аутист безигорный
>>459014Давай лучше тут, т.к. у меня времени нихуя нет, чтобы всем отвечать в индивидуальном порядке.
>>459038>Sapio F. - Getting Started with Unity 5.x 2D Game Development - 2017>Джозеф Хокинг - Unity в действии. Мультиплатформенная разработка на C# - 2016>Крис Дикинсон - Оптимизация игр в Unity 5. Советы и методы оптимизации приложений - 2017>Торн А. - Искусство создания сценариев в Unity - 2016>Хорхе Паласиос - Программирование искусственного интеллекта в играх - 2017Вот это хуйни навернуть не вредно будет? Мне английский плохо даётся к сожалению. Я подумал в книгах то уже пиздеть не будут скорее всего..
>>459049> Джозеф Хокинг - Unity в действии> Мне английский плохо даётся к сожалениюЭта дичь на русском есть, могу залить.
>>459040Есть немного.>>459049Увы, но я эти книжки не читал. Я книжки читаю только в особых случаях, когда совсем упёрся и чую, что так задачи не решаются.В основном, я использую документацию Unity, а также периодически смотрю GDC по интересующим темам. Ну и да, ещё гуглю.
>>459050Да у меня тоже есть. Сижу читаю сейчас в книге про оптимизацию главу про физику, то что нужно, начинаю понимать как устроен физический движок.Мне бы по 2D что-нибудь на русском, но вроде переводов нет, но думаю и этих 4 переведенных толмутов мне пока с головой. Буду поглядывать с сабами GDC, которые мне насоветовали, да оф мануалы изучать. Всем спасибо! Надеюсь напишу свой охуенный платформер, разбогатею и куплю квартиру
>>459069>получается ебаная лапшаКакая у тебя лапша-то получилась? Яичная или гречневая?Делись опытом.
>>459076>ставлю чек на тоггл>вызывается метод>метод снимает чек>или наоборотРисовая похоже, со вкусом индийсокго карри.
>>459077>метод снимает чек>или наоборотТак бы и сказал изначально. Попробуй дедовскую практику: дебаж логами.Понапихай во всех местах, которые дёргают логику тоглов что-то наподобии этого: Debug.Log("BLYA SLOJNA CHECK DEBAJIT");
>>459082Проблема в том что юнька дергает прикрепленныей к тоглу метод, каждый раз когда я вызываю сеттер Zvuk.isOnДебильная логика, как по мне. И приходится городить костыли.
Как сделать вменяемый fps контроллер? Все контроллеры на основе Character Controller как то по ебанутому взаимодействуют с гранями объектов. Например может зацепиться за грань куба и скользнуть по нему. Через блок на первом пике он пересказывает просто, запрыгнуть на него сложно, чего быть не должно. А если подойти под определенным углом к желтым склонам то контроллеры трясти начинает.Я так понял эта вся ебала из за капсульный формы и нужно делать из цилиндра ригбоди или как?
>>459107> Зачем тогда Character Controller Затем, что это дефолтная приблуда. Хочешь охуенчик - пиши сам.
>>459090>public UI.Toggle.ToggleEvent onValueChanged;>Callback executed when the value of the toggle is changed.>Дебильная логика, как по мне.А ты забавный, да.На самом деле это нормальная практика, создавать СОБЫТИЕ, если какое-либо значение изменилось. Вот как ты по-другому узнаешь, что значение поменялось? В Update будешь каждый кадр опрашивать и сравнивать с предыдущим значением?
Как с помощью cinemachine заставить камеру крутить вокруг объекта по триггеру? Типа наступил персонаж на кнопку - камера его облетела и назад вернулась.Какую камеру брать? Можно ли ее вертеть скриптом, а не заготовленной анимацией? Никак не разберусь с этим инструментом.
>>459121Юзер нажал - событие.Методом сменил - другое событие.С хера бы простой сеттер эмулирует жмак кнопки? Это же разные события
>>456736 (OP)Я скачал крякнутую Unity pro, хочу делать игры и выкладывать в Google play. Делать их бесплатными но с рекламой, возможно с внутриигровыми покупками. Живу в Украине. Нищий. Могут ли меня как-то наказать? Какие будут последствия? Меня забанят без возможности повторной регистрации? Они сильно проверяют и как вычисляют пиратство? Как вообще мне лучше поступить, забить и пользоваться фри версией?
>>459125> proнинужна> хочу делать игры и выкладывать в Google playделай, выкладывай.> Живу в Украинесоболезную.> Могут ли меня как-то наказать?с учетом что живешь в украине — максимум игру удолят со стора> Какие будут последствия?10-50 загрузок> без возможности повторной регистрациии как они допетрят что это ты же?> Они сильно проверяют и как вычисляют пиратство?пока не лопатой деньги гребешь, хуи кладут. а как будешь грести, там уж разберешься.> забить и пользоваться фри версией?именно так.удачи.
>>459126Какая? Free или купленная pro? Покупать я точно не в состоянии, а вот в бесплатную может и вкачусь если нет другого варианта. Просто у меня весь софт крякнутый, если бы я это все покупал, мне пришлось бы уже квартиру продать>>459127>и как они допетрят что это ты же?Так я реквизиты карты банковской им при оплате акка передаю, не?именно так.Бля, ну я уже установил про, можно все таки про? То есь это не опасно вроде да? Чето мне страшно
>>459129Сделаешь игру - выложи сюда, мы ее тоже спиратим.Ставь бесплатную, она ничем не отличается, кроме цвета интерфейса.
>>459125>>459129Бля браток, ну тут хуй знает. Вот у меня знакомый тоже выложил как-то игру на крякнутой юнити, а на следующий день ему собака яйцо откусила. Думай сам, что тебе дороже.
>>459130Я бы купил ее, вот честно, если бы цена была адаптирована. Я не могу каждый месяц им платить половину своей зп>>459131Давайте без шуток. Я НИЩИЙ. Имейти уважение.
>>459133Эт самое, попробую на украинскомТi поставуй бесплатнову фрi версiю, она от про не отличацаэ и не ыбi мозговину.Версия про нужна когда твои бешеные продажи перевалят 100К баксовКак ты игры писать собрался, если ты даже прочитать на сайте инфу не можешь?
>>459124Ты ебанутый?У тебя изменилось значение тогла, за ним же вызвалось событие, что ЗНАЧЕНИЕ изменилось.Ты, блядь, читать научись сначала, а потом уже свой манямир доставай.
>>459135И как мне выставить значения тоглов при инициализации меню настроек без запуска всех привязанных методов?У меня стоит тогл включения таймера. Если игрок включил таймер, вышел из игры, вернулся в игру, то тогл должен быть включен, но блять таймер не запущен с 0, а продолжать свой отсчет.Я читаю в сейве что таймер включен - выставляю тоглу тру - запускается метод, надо ловить эту ебанину, что не пользователь нажал включение таймера, а это инициализация, и это лишний код, лишние баги.
>>459137> как мне выставить значения тоглов при инициализации меню настроек без запуска всех привязанных методов?ScriptableObject же!
>>459137void OnEnable(){myToggle.isOn = PlayerPrefs.GetBool("myToggleBool");myToggle.onValueChanged.AddListener(OnMyToggleValueChanged);}void OnDisable(){myToggle.onValueChanged.RemoveListener(OnMyToggleValueChanged);}void OnMyToggleValueChanged(bool value){PlayerPrefs.SetBool("myToggleBool", value);}
>>459160>GetBool нет такого.>myToggle.isOn=PalyerPrefs.GetInt("mybool",0)>0?true:false;А если где еще по ходу надо перещелкнуть тогл, опять - отвязывай-привязывай.Не костыль ниразу.Я не знаю почему ,но эта архитектурная хрень меня разбесила в юнитях.
>>459161Я код писал так, чтобы суть донести, а не выдать тебе финальный код, который ты тупо копирнешь.Алсо, ручками привязать эвенты - это удроченая практика, которую еще деды мутили. А то, что тебе в юнити дали сериализовать эвенты - вот это костыль, т.к. сериализация эвентов безбожно ограничена. Блядь, да тебе даже эвент больше чем на 1 аргумент подвязать нельзя. Особенно радует то, что когда эвент сериализуется, то пишутся все возможные поля int, float, bool, string, Object. Заебися сделоли.Алсо, тебя никто не ограничивает в том, чтобы написать отдельный компонент, который будет сначала лезть в PlayerPrefs, присовывать данные в UI, а потом подписываться на эвенты. И вишенка этого компонента в том, что тебе даже хардкодить поля префов не надо будет, т.к. все спокойно можно будет настроить в инспекторе. Просто сядь и подумай, а не ной, что УУУУ БЛЯДЬ, АРХИТЕКТУРА ГОВНО ЕБАНОЕ. ДЕБИЛЫЫВВЫВАПРП
>>457613> Data oriented designНу бля, старая вещь же. Емнип в старые времена это называлось композиционной архитектурой.А построение архитектуры как дерева наследования классов - совсем уж дедовский метод какой то. Каждый конкретный объект просто реализует определённые интерфейсы и всё.
Может кто натыкался на какую-нибудь статью по ScriptableObject где поясняется что это за хуйня и с чем её едят? желательно простым языкомПоделитесь пожалуйста.
Есть скрипт, который определяет, что если объект сдвинулся с прошлой позиции и остался стоять на новой в течение нескольких секунд, перемещает объект в другое место.И есть объект, на который этот скрипт повешен. Объект стоит на месте, но периодически скачет, хотя никаких действий не делает.Я внимательно присмотрелся, и вот что происходит: объект слегка отъезжает назад на абсолютно ровной поверхности, из-за чего скрипт и считает, что он сдвинулся.Пробовал менять Drag у Rigidbody - не помогло.Какие еще есть варианты?
>>459230Никакого ветра, ничего нет. Вообще не вижу ничего, что могло бы влиять на него из вне. Поэтому и грешу на настройки Rigidbody.
>>459233Определил изменение в 1 для каждого элемента Vector3: bool Equal(Vector3 value1, Vector3 value2) { return (Mathf.Abs(value1.x - value2.x) < 1) && (Mathf.Abs(value1.y - value2.y) < 1) && (Mathf.Abs(value1.z - value2.z) < 1); }Не помогло.
>>459235Да.Я уже давно заметил, что он медленно сползает. Не придавал значения, пока не понадобилось отслеживать изменение.Заметил, что он и вперед движется, не только назад. Все еще не понимаю, от чего это зависит.
>>459236Может, физический движок хуево обрабатывает объект, и он успевает войти в пол и выйти из него?
>>459240Отключать нахуй ригидбоди, т.к. ригидбоди объект тянет вниз, а коллайдер толкает объект вверх.
>>459242Ага, а объект как катать, через скрипт?>>459240Поиграйся с массой, где-то в настройках есть частота обновления физона (хотя бы для всех тел, если не для конкретного).
>>459255Надо подвинуть объект? Включаешь ригидбоди.Объект должен стоять на месте? Вырубаешь нахуй ригидбоди.Я у мамы егний.
>>459332Я бы рад реализовать орбитальную механику исключительно средствами юньковской физики, но к сожалению юнити не очень дружит с дистанциями в миллионы километров и скоростями в тысячи метров в секунду. Спасибо за ваш экспертный отзыв с котиком, а теперь съеби нахуй, пидорас тупорылый. Заранее спасибо.>>459333Я помню, что это не рекомендуется, прост юньки сейчас под рукой нет, а вопрос внезапно возник.
>>459068>>459066http://positech.co.uk/cliffsblog/2017/06/23/your-indie-game-will-flop-and-you-will-lose-money/Читаем, вникаем, понимаем, что дальше хобби вы никуда не уползете.Поэтому, продолжаем работать дворниками, и в свободное время клепаем говнопроекут, которые купят от силы 1.5 человек и то для многотысячной коллекции в Стиме, похвастаться.
>>459345Да, делаю реальные масштабы. Собственно, масштабы уже есть, но кораблики пока не сталкиваются друг с другом.
>>459390Ебать, ну с какими же я довнами на борде сижу.Разбиваешь мир на чанки. Все объекты перемещаются в пределах чанков. Камеру делаешь статичной и в начале мировых координат. И просто двигаешь мир вокруг камеры, а не наоборот.Деды так делали и ты делай. И float будет хватать.мимоПРОбыдло
>>459390Я использую Vector3d, там даблы. Точности хватает. Ну кроме того, что пришлось поправить значение пи, которое создатель либы заебашил с точностью до шестого знака.>>459422>чанкиНадо гравитацию считать, чанки не катят. А вообще модель СС с расчетами живет отдельно, а отрисовка отдельно, там сделано как ты написал, планеты расставляются вокруг корабля, который находится в (0, 0, 0).
Вопрос от довена. В апдейте проверяется условие, если true, один раз изменяется transform.scale. Мой говнокод выполняется дохуя раз. Подскажите, как осуществить единоразовое выполнение?
>>459480bool peremennaya; //v klasseif(uslovie && !peremennaya){ //v update peremennaya = true; //tut kod}
>>459484Другой вариант делать через EventManager. Но его у меня нетне нужен. Я знаю что можно сделать просто и изящно, но не могу понять как.
>>459486Action ChangeScaleOnce = () => { //rescale; --------- ChangeScale = null; }void Update(){ if(NUZNORESCALITYOBU) { ChangeScaleOnce?.safeinvoke(); }}
Думаю, как сделать локализацию текста интерфейса. Обычно запиливают отдельный компонент, который кидают на объект с текстом, а я вот подумал, почему бы просто не унаследовать от Text -> LocaleText, чтобы не плодить кучу лишних компонентов.
Коллеги, подскажите, есть какие-либо способы включить мипмапы для sprite renderer?Поясню. Обычный спрайт, отображаемый через sprite renderer при повороте или изменении размера сильно искажается из-за отсутствия мипмапов. В самом спрайте включить их можно, но на картинку это никак не влияет.Другое дело, если закинуть спрайт на сцену по старинке, через mesh renderer и текстурку в качестве спрайта. Тогда мипмапы генерятся.Вопрос: как заставить юнити генерить мипмапы для sprite renderer?
Расположил вплотную два террейна друг к другу и запек на них навмеш, но на области стыка запекания не прошло, там красуется дырка. Пытался прикрыть ее линком, но не помогло: агенты упираются в границу и ни в какую не идут дальше.Что я делаю не так? Как это можно исправить? Может как-то можно запечь навмеш с указанием, что вот эту область тоже надо затронуть?
Сап дев. Я пишу курсач на C# по теме "Сборник игор". Сделал 2 простых игрули(Спиздил с видосов). И вот собственно сама проблема(Для меня). Нужно как то сделать проект, как бы меню и что бы из этого проекта вызывались другие проекты(Те две игрули) и что бы при выборе игор не выскакивало окошко конфигураций. Опишите процесс пожалуйста.Среда разработки Unity 2017.2.0f3.
>>459580Я просто думал что так красивее будет. Так то я и сам смогу. + проблема с окном конфигурации остаётся
>>459585Конкретно можешь описать?Мне надо создать проект(Меню), в него запихать предыдущие проекты и вызывать сцены?
Сап гд, дрочу урок, который про космическую аркаду. Короч мой код не пошел, залез в коменты, перебрал уже два варианта, и все не работает. Не могу понять почему. В консоле ошибок нету. Все вроде нормально. Но вот кораблик не двигается. Может нужно где какую галочку поставить а я не в курсе?using UnityEngine;using System.Collections;public class PlayerController : MonoBehaviour{ private Rigidbody rb; public float speed; public float tilt; public Boundary boundary; void Start() { rb = GetComponent<Rigidbody>(); } void FixedUpdate() { float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical); rb.velocity = (movement speed); Vector3 bounds = new Vector3((Mathf.Clamp(rb.position.x, boundary.xMin, boundary.xMax)), 0.0f, (Mathf.Clamp(rb.position.z, boundary.zMin, boundary.zMax))); rb.position = bounds; rb.rotation = Quaternion.Euler(0.0f, 0.0f, (rb.velocity.x -tilt)); }}[System.Serializable]public class Boundary { public float xMin, xMax, zMin, zMax; }
>>459588> rb.velocity = (movement speed);rb.velocity = movement;> Vector3 bounds = new Vector3((Mathf.Clamp(rb.position.x, boundary.xMin, boundary.xMax)), 0.0f, (Mathf.Clamp(rb.position.z, boundary.zMin, boundary.zMax)));> rb.position = bounds; rb.rotation = Quaternion.Euler(0.0f, 0.0f, (rb.velocity.x -tilt));Это может лочить. Пропиши в Update() лог со скоростью. Если скорость меняется, то проблема в этом.
>>458938Когда поворачивал объект, он у меня растягивался. Это было из-за про билдера, который у меня был включен в режиме редактирования полигонов.
>>459626Ну вопрос так то был про аналог в студии. Удобно в два клика вызывать, показывается сразу что было выделено. В общем хуй знает хули ты агришься как полуебок. Так то документация скачана.
Анон, чтобы стать инди-разрабом и в одно рыло клепать игрульки после работы помимо знания движка нужно уметь в графон, я правильно понимаю? Может кто подсказать годные курсы по этой теме?
Alexey Sarapulov:Поставил на террейн пустые объекты и по их координатам создаю объекты из префабов. По какой-то причине всегда при первом запуске сцены объекты инициализируются абсолютно в другом месте, но всегда в одном и том же. При следующих перезапусках все нормально.Что это может быть?На объектах навешаны rigidbody, navmesh agent, collider и еще некоторые самописные скрипты.
Привет, у меня вот такая задача есть 3 куба A, B и С, есть также, 3 камеры и каждая рендерит только один из кубов. Поставив режим Deth Only, эффекты с нижних слоев распространяются на и на верхние. Хочу сделать так чтобы камеры работали параллельно т.е. Каждая камера рендерит свой объект и на каждом объекте свой image Effect, мб кто-то знает кака мне помочь
>>459713Ну ты скажи куда копнуть, что почитать? Мастхевную книжку из шапки прочел, пару туторов с оф сайта прошел. Примерно понимаю что я хочу сделать и как, вопрос в графоне (модельки вотэтовсе).
>>459721А чего тут читать? Хочешь графона - рисуй. Не умеешь - нанимай того, кто умеет. Если денег мало - покупай ассеты. Если денег нет совсем - воруй ассеты.Сам себя графон не нарисует.
>>459723Это правильный путь? Я просто думал туторов наебнуть чтобы самому рисовать, но когда начал гуглить, ахуел от кол-ва материала к изучению и спросил совета тут. Нужны ли навыки триде для инди разраба или я увязну в обучении этому на долго и есть более простые пути.
>>459729Хуй знает. У нас вот в команде 4 человека, один из них купил ассетов баксов на 250, залил в проект. Само собой, доступ к ним есть у всех четверых, они ж просто в папках лежат. И вот они вроде и купленные, а троим достались бесплатно. Считаются ли они теперь пизженными, если я их в свою личную игрушку засуну? Я не знаю.
>>459730Ну так у вас же наверно и юнити куплена, если вы делаете командой. Там вроде в договоре что то про это написано.
>>459731> Ну так у вас же наверно и юнити куплена, если вы делаете командойНет, персональная версия. Бабло платить надо только если годовой доход перевалил за сотку тысяч баксов.Хотя, коллаборейт скоро из бесплатной версии уберут, будем брать подписку на год.
>>459735Всмысле? Вместо персонажей - кубы? Опять таки, опыт у меня не большой, я без сарказма спрашиваю.
>>459726> Я просто думал туторов наебнуть чтобы самому рисоватьЛюди годами дрочат академичский рисунок. Если тебе это просто нравится — учись наздоровье. Если ты хочешь как можно быстрее выкатить свое GOTY 2к18 — пизди ассеты или покупай людей, которые в этом шарят.> Нужны ли навыки триде для инди разрабаТы странные вопросы задаешь. Прежде всего тебе нужно понимать, что ты хочешь сделать. Может, ты хочешь сделать 2D платформер. Может быть ты там космосим пытаешься запилить. Хочешь не работать на дядю и получать деньги — продавай наушники с алика. А так учи код, учи понравившийся тебе движок, коли рисовать не умеешь. Сделай нормальный прототип. Графон к прототипу не относится.
>>459737а я без сарказма задаю вопрос. он не касается твоего опыта. нахуй тебе графон? ты без графона можешь сделать игру, если нужно что-то чтобы протестировать какую-то фичу - скачай бесплатное и тестируй на нем.
>>459739>>459740Просто я чего начал, и в книжке и в туторах на ютубе ребята которые клепают шарят в графоне как-то. И нормали и запекания вотэтовсе. Отсюда и возник вопрос.
>>459743Окей, а где про это можно почитать/посмотреть? Я наверное не корректно выражался, под "графоном" я имел ввиду визуальную составляющую, а не только модельки.
>>459744> а где про это можно почитать/посмотреть?На ютубе видео как говна. Проблема в том, что они в основном сами по себе тоже говно.Был такой чувак с ником Stream, пилил сносные видосы, где человеческим, а не академическим языком разжёвывал дохуя разного.Но канал он потом удалил, так что ищи перезаливки. "stream утерянные видео" или что-то такое.Он часто ебланит, но в русскоязычном секторе это одни из немногих видео по юньке, от которых не сильно хочется блевать.А если инглиш норм тащишь, то смотри официальные туторы, их там на пару недель дрочева хватит, если не просто переписывать скрипты с экрана, а попытаться разобраться что и зачем ты делаешь.
Анончик я добавил мешу коллайдер (с общим мешем) и делаю RaycastHit hit; if (!Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit)) return default(Vector2);// -1; MeshCollider meshCollider = hit.collider as MeshCollider; if (meshCollider == null || meshCollider.sharedMesh == null) return default(Vector2);//2;И все работает, но hit.point дает всегда 0 по Y оси, хотя меш нифига не плоский и вообще ничего плоского там нет (кроме гуя, но это не то)Где я обосрался?
>>459783картинко для привлечения вниманияАлсо, передаю пример местному завсегдатаю что мотивировал меня пилить симулятор эрозии
>>459784Моча съела говно, лол. Забудь, я хз что это у тебя. Генератор рельефа? Не важно. Просто продолжай.
>>459746Слушай, годнейшие туторы. Реально хороший контент для русека. Единственное что хотелось бы больше фундаментальных основ про меши, нормали и другие интуйтивно непонятные моменты.
Так, анон у меня совсем мозги спеклись. Хочу что бы игрок мог тыкать мышкой в меш. Добавил рейкастинг. НО! Лучи проходит свободно сквозь ЮИ. А должны блокироваться. Сменил рейкаст на var layerMask = 1 << 5; layerMask = ~layerMask; RaycastHit hit; if (!Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, Mathf.Infinity))Мне окну коллайдер добавить, што ли блять? Канва - скрин спейс оверлей. Что делать то?
>>459799> Лучи проходит свободно сквозь ЮИ. А должны блокироватьсяif (EventSystem.current.IsPointerOverGameObject ())
>>459799https://docs.unity3d.com/ScriptReference/Physics.Raycast.html>Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the scene.> against all colliders in the scene.>coliders
>>459801Ну это жи совсем безумно лепить соллайдеры на окна, еще в оверлей скринспейс>>459800>if (EventSystem.current.IsPointerOverGameObject ())Вау, спасибо, анон. Все так просто. С меня нефть (растворенная в моче). А вообще это правильный путь использовать Physics.Raycast - для определения куда юзер ткнул в меше?
>>459803> А вообще это правильный путь использовать Physics.Raycast - для определения куда юзер ткнул в меше?Вполне.
А тогда такой еще вопрос >>459783 вот этот меш на картинке >>459803 он, внезапно, ПЛОСКИЙ. Объемность каким то образом задается через шейдер. И все бы хорошо но когда я рейкастчу я попадаю в плоскость и маркер двигается по плоскости. Это я поправил - добавил маркеру выстоту той точки которая выбрана на плоскости. Проблема в том что при этом немного падает точности установки маркера. Вопрос нельзя ли как то задетектить попадание рейкаста в объем плоского меша который выглядит объемным? Пробовал в update писать item.GetComponent<MeshCollider>().sharedMesh = item.GetComponent<MeshFilter>().mesh;(тип обновляем меш коллайдера) но чет не работает (толи доступа к видеопамяти не дает, толи он совсем плоский). Вот шейдер, если нужно : https://github.com/Nashet/Interactive-Erosion/blob/master/Assets/InteractiveErosion/Shader/LandShader.shader
>>459805Рейкаст попадает не в меш, а в коллайдер. Так что смотри что там у тебя нахуеверчено. Может у тебя на меше бокс коллайдер, лол, откуда ж нам знать.
>>459805Хотя в scene view меш выглядит вполне полигональным а не плоским, хм.. Обновляется меш так m_landMat.SetFloat("_ScaleY", scaleY); m_landMat.SetFloat("_TexSize", (float)TEX_SIZE); m_landMat.SetTexture("_MainTex", m_terrainField[READ]); m_landMat.SetFloat("_Layers", (float)TERRAIN_LAYERS);Добавляется коллайдер так m_gridLand[idx].GetComponent<MeshFilter>().mesh = mesh; m_gridLand[idx].AddComponent<MeshCollider>();Но в этот момент он точно плоский. Да и потом меш жи меняется, коллайдер обновлять надо
>>459808>MeshRenderer сам должен обновлять коллайдерДа, но сам меш, внезапно плоский. Вот пиписька слева - справа плоская в инспекторе
>>459812Там какой то хитрый вертексный шейдер, вероятно. Который отрисовывает плоские полигоны как объемные. Может картограф местный знает..
>>459817Высоты хранятся в текстуре, общая высота = сумма r,g,b,a Как называется эта технология когда плоский меш отрисовывается объемно? Может я нагуглю, аниматоры карт наверняка такое делают.
>>459818> Высоты хранятся в текстуре, общая высота = сумма r,g,b,aНу так кидай рейкаст, через hit.point получаешь значения по X и Z, потом суммируй значения всех каналов той точки, куда попал, и получай Y.
>>459822>Он же от камеры падает перпендикулярно плоскости XZ.Амм.. Нет, он от камеры идет через точку клика мышкой. А камера крутится и переещается по всякому.
>>459824В принципи, можно спроецировать луч на плоскость, рассчитать высоту поверхности в каждой точки получившегося луча и где эта высота совпадает (пересечет первый луч) - там норм точка. Или таки только по событию клика развернуть плоский меш в объемный и нормально спроецировать луч.
>>459825Сделой наоборот: рисуй курсор там где насчитал персечение. Посчитал делта х и у в апдейте, нашел пересечение - там нарисовал курсор.Либо проецируй текстуру на меш с белым пятном в месте курсора и в шейдерах делай что надо. я хз что там в юнити и вообще сейчас с шейдингом, бросил этот пердолинг во времена ДХ10.0
>>459784помню я кого-то мотивировал на написание эрозии, да. а мне вот нечего нового показать для привлечения внимания. кстати, информацией о эрозии не поделишься?>>459805>>459825твой план не будет работать если камера близка к горизонту. надо проверять всю длину луча в пределах террейна.ты шагнул в очень интересную сторону. можешь сделать что-то вроде того что сделал я >>458902 чтобы узнать какие куски грида пересекает твой луч, проверить пересечение с треугольниками грида.
>>459633Хуёвая идея с наследованием, если честно. Спецаильный человек запиливает сцену с интерфейсом игры. Он использует обычные компоненты. А тебе потом придётся их заменять на свои (Text на LocalizedText), а это пиздец неудобно. В сто раз проще добавить дополнительный компонент.Перевод хочу хранить в гугл таблицах (1 лист - 1 язык). После чего скриптом буду сохранять его в json и загружать нужный json уже в юнити при помощи LitJSON. В принципе просто и понятно. Видел ещё один интересный, но более муторный вариант: перевод хранят в exel файле, через юнити едитор его считывают и трансформируют в скриптабл обжект, а потом уже подгружают нужный скриптабл обжект. Но всё же проще сразу json подгружать.
>>459830>Сделой наоборот: рисуй курсор там где насчитал персечение. Ах ты ж хитрая попа. Но тогда курсор мыши будет двигаться в нелинейном пространства.. надо попробывать..>>459830>Либо проецируй текстуру на меш с белым пятном в месте курсораВ смысле курсор мыши вообще не рисовать? Тоже хитро>>459833Ты на смайл забыл сагриться>>459842>кстати, информацией о эрозии не поделишься?Попозже, ты ж все равно тут сидишь. Я еще и тектонику симулировать собираюсь, хз как.>>459849>Хуёвая идея с наследованием, если честно. Спецаильный человек запиливает сцену с интерфейсом игры. Он использует обычные компоненты. А тебе потом придётся их заменять на свои (Text на LocalizedText), а это пиздец неудобно. В сто раз проще добавить дополнительный компонент.Таки наверно можно автоматически поменять. Или сразу норм ставить. >В сто раз проще добавить дополнительный компонент.Наверняка где то забудешь добавить, если в ручную добавлять будешь
>>459854>Наверняка где то забудешь добавить, если в ручную добавлять будешьЕсть ещё вариант. Получаешь все компоненты Text со сцены и используешь имя объекта в качестве id для получения локализованного текста. Но, опять же, придётся пройти по всему тексту на сцене, чтобы задать имена у объектов, иначе никак.
Есть одна клиент-серверная (LLAPI) говноподелка, которая в данный момент хранит данные в SQL бд.И внезапно я задумался: когда сервер берет данные с БД это норм. Но когда клиент берет, это же не норм?К примеру, есть SQL функция по id возвращающая свойства шмотки.Клиент, имея доступ к БД, может перебирать id и вытащить все данные по всем шмоткам и т.д. что, наверное, не очень верно.А инициализировать запрос на сервер, чтобы он спросил у SQL, и ждать ответа, это не самая быстрая и простая вещь.Какие best practices в этой сфере? Как нужно делать правильно?
У шейдеров есть свойства, вот как на пике. Где эта хуйня хранится и почему она как то рандомно меняется?
Зделол свой первый в жизни оверлей!! Вот те красные пиксели показывают количество отложения ила на дно в тик. Как зделол: скопировал обычный шейдер рендерящий поверхность и добавил ему в R канал количество осаждения. Все правильно делаю? А как наложить оверлей поверх а не вместо имеющегося рендера? Еще один меш городить? Или лучше добавить второй материал к имеющемуся (ассуминг они не конфликтуют по картинке)
Помогите, не могу понять, как по-понятиям делается. Вот есть у меня аниматор для передвижения персонажа с анимациями движения и есть всякие ситуативные анимации типа сесть на стул, бахнуть пивка, развести руками и прочие. Не пихать же мне все эти анимации в аниматор передвижения, он же перегружен будет. Можно ли как-то плавно сменять анимации только на время этого действия?
>>459866https://ru.wikipedia.org/wiki/RESTМожно делать GET и POST, общаясь с сервером с помощью структур вида {"param":"value", "param":"value"} и не предоставляя доступа к БД.
>>459902Я это понимать, и даже использовать SQL процедуры. т.е. у пользователя нет прав на доступ к бд, нет прав на селекты и прочее. Он может просто исполнить SomeFunc(175) описанную в SQL интерфейсе (скажем так) и ему будет возвращено значение. Что именно внутри этой функции он не знает. Но тут вопрос - что ему мешает попробовать выполнить эту функцию для других id "руками", тем самым получая значения? Ок, если это просто инфа о шмоте, а если это LootItem(id)? Ну, ты меня понял...
Поцоны, философский вопрос об обучении. Как вы учитесь/учились ебашить на юнити? Вылизывали ли вы проекты или как можно скорее перескакивали на изучение нового функционала? Просто я делаю первую игрушку, и вместо того, чтобы за пару дней что-то скрафтить, и начать делать другую, начинаю вылизывать первую - менюшки, разрешения, эффекты, шейдеры, все такое. Или лучше ебашить по прототипу в день? Цель выучиться и пойти куда-нибудь джуном. Игрострой не только как хобби, но и как профессию хочу освоить.
>>459938Если игрострой - тогда, наверное, лучше прототайпить. Со временем, можно попытаться сделать более-менее успешный коммерческий продукт как венец портфолио
>>459746Начинал с этого чувака по советам гд, и юнити ин экшн книжки. Через 2-3 недели понял, что я тупо копипащу и нихуя вообще не понимаю. После этого задрочил обучалки на офф.сайте. С уверенностью могу сказать - лучше обучения основ чем на офф.сайте - нет. Все схватываешь и понимаешь на лету, все круто и удобно. Хочешь какие-то более сложные фишки, думаешь, что тебе надо, пишешь HOW TO в ютубе, и вуаля, есть практически всё. Правда нормальных туторов для хау ту эдд геймбой рамбл я не нашел, пришлось пердолиться (очень странно, популярная тема должна же быть, не?).
>>459940Да, так и буду делать. Но пока что закончу первую, хотя бы чтобы для себя был законченный первый проект. Это все-таки приятный буст морали. Потом буду разный функционал тестировать, в планах, что хочу изучить: сетевые игры (подключение к серверам, префабы игроков, все это), особенности мобило-параши и виар.
Не могу сообразить. У меня есть два объекта на сцене. Я хочу к одному из них приложить силу Rigidbody.AddForce, т.е. вектор, направленный от этого объекта ко второму. Как мне получить значение этого вектора? Как определить, в какой стороне от меня находится второй объект?
>>459914У тебя неправильно спроектирован интерфейс.Клиент не должен мочь запросить строку из БД, он должен уметь делать POST со своими действиями (я покакол) и GET с состоянием (на полу накакано).
>>459938>Как вы учитесь/учились ебашить на юнити? Никак.Ну ладно, почти никак.Посмотрел несколько туторов на сайте, сделал джва обучающих проекта про катание шариков и космокораблик, и начал делать свой проект.Правда у меня опыт работы погромистом 8 лет, наверное это немного сказывается.
>>459944> Как определить, в какой стороне от меня находится второй объект? Геометрию забыл? Направление от объекта1 к объекту2 это позиция объекта2 минуст позиция объекта1.
>>459944public GameObject drugoyObject;Vector3 napravlenie = (gameObject.transform.position - drugoyObject.transform.position).normalized;float sila_silyRigidBody rb = gameObject.GetComponent<RigidBody>();rb.AddForce(napravlenie x sila_sily);
>>459957> napravlenie = (gameObject.transform.position - drugoyObject.transform.position)Ноуп. Это будет направление от другого объекта к исходному, а не наоборот.
>>459961Тебя не смутил rb.AddForce?Естественно этот скрипт должен висеть на объекте, к которому применяется сила.
>>459951Но ведь я про это и говорю. Exec Nakakano(128). А ответ летит вес насраного. Проблема в том, что любой сможет сделать, ок, будь по твоему, Post с нужными ему параметрами, и получить Get с такими же параметрами, несмотря на то, что передавать его будет не приложение а он, руками.Аутентифицировать приложение нормально вроде никто не умеет, а копать в сторону эдакого "SQL Proxy", которая будет проверять валидность параметров (Да, ты действительно стоишь рядом с лутаемым, и действительно тебе никто не намыливает анус и ты можешь поднять шмотку). ну ВООБЩЕ страшно. Можно, но громоздкость решения зашкаливает.
>>459974Эээ, зачем у тебя юзер запрашивает параметры шмота? Дал команду SkolkoVesitMoyLut() - в ответ сервер ему цифирку прислал.
>>459975На скриншотах нет ни одного объекта с RigidBody, если что, все считается в скриптах "на бумаге" и позиционируется через transform. Планеты гораздо ближе и отмасштабированы.RigidBody нужен будет чтобы аккуратно подлететь одним спутником к другому с относительной скоростью 1-2 м/с и столкнуться с ним, а не пролететь сквозь.
>>459974>Exec Nakakano(128)Реализация должна быть на стороне сервера в стиле "какою" - "200 OK". Или 400 Bad Request, если персонаж не хочет срать.Клиент может получать данные от сервера только в виде ответа на GET запрос, "сколько накакано?" - "1 кг".Но ни в коем случае не в виде команд "накакано 1 кг".
>>459974>громоздкость решения зашкаливаетЩито делать. Хочешь безопасно - делай интерфейс между БД и клиентом.
Расскажите, что вы используете для того чтобы тащить UI через сцены? Синглтон, аддитивные сцены, или что-то еще? Самое простое решение которое я вижу - синглтон UIManager, у которого в иерархии в детях находится всё связанное с UI все Канвасы и кнопочки. Какие подводные камни? Чем подгруженная сцена будет лучше?
>>459976Какой "Мой"? Кто такой "Мой"? Я буду передавать параметром id пользователя, чей вес я хочу получить. Проблема в том что команду можно "симулировать".>>459978Я же об этом и говорю. Exec Nasrat(UserID); В ответ я хоть бинарный код картинки с чебурашкой могу получить, это от процедуры зависит, но вот вопрос: как узнать что персонаж не хочет срать то? Проверку на валидность запроса как проводить? На клиенте нереально: запрос на выполнение можно "подправить". На сервере приложения (не бд) нужно будет пилить эдакую проксю, чторбы клиент писал серверу StartCoroutine(Nasrat), сервер проверял все условия и делал или не делал запрос БД.
>>459979В Аллодах (и вроде бы в Скайфордж) так и делали, но я как представлю, что мне нужно будет дублировать все процедуры в приложении-сервере (получил, проверил, отослал результат) а потом и в клиенте-сервере (спросил-получил пакет-применил), мне становится плохо. Оче плохо. Я прям вот щас как представил обьем работ - чутка сблеванул.
>>459984а)сетевой адрес юзера у тебя есть.б)юзер айдив)всякое шифрованиеДа тебе бы надо разделить уровни абстракции.Базовые команды на сервере.Псевдо команды на юзере.Или делай на похуй и надейся что кулхакиры не будут ломать твою игру.
>>459983Получается ты каждый раз теряешь все данные ЮИ, а потом в новой сцене снова их загружаешь откуда-то? Чем такой подход лучше Синглтона?
>>459988Тем что нажав кнопку я не вызову метод из другой сцены, если где-нибудь обосерушки выйдут с привязкой методов.
>>459866>Клиент, имея доступ к БД, может перебирать id и вытащить все данные по всем шмоткам и т.д.На сервере храни специальный ключ (строку, которую будет знать только сервер). Когда игрок заходит в игру, авторизуешь его на сервере:- он присылает запрос 'auth' со своим user_id- ты на сервере берёшь user_id, прибавляешь к нему секретную строку и преобразуешь результат в md5 хеш- возвращаешь полученный хеш игрокуДалее, когда игрок хочет получить данные шмоток, он должен прислать строку авторизации (тот самый хеш). Когда приходит запрос с хешем, проверяешь его, совпадает ли он с тем, что должно быть:if (client_hash == GenerateHash(client_id))-> access allowedelse-> access deniedЭто простой и рабочий способ. Игрок таким образом сможет получить только свои данные. Если он попытается запросить данные другого игрока, то пойдёт нахуй.
>>460087А вот это уже интереснее, спасибо. Фактически, получается усложненная аутентификация, ключ которой не так легко вытащить, если начать шифровать SQL траффик. (Только если деобфрусцировать весь код аутентификации, и написать свой аутентификатор, то уже значительно сложнее). Остается вопрос с проверками расстояния, состояния и доступности (чтобы не насрать за 2 километра или за стену), но там не так много.
>>460089Посмотри обязательно это:https://www.photonengine.com/en-US/PUNЕго можно использовать как для пошаговых игр, так и для риалтайм. Вся логика хранится на клиенте (один из клиентов выступает мастером), но при помощи WebHooks ты можешь контролировать данные на своём сервере:https://doc.photonengine.com/en-us/realtime/current/reference/webhooks
>>460091Благодарю (последние посты на доске меня удивили - есть тут еще хорошие люди), но у меня уже написана своя сетевая надстройка над Low Level API юневской.Видимо, придется писать некий SQL прокси вдобавок. Не сложно, но есть проблема с передачей массивов.Глобально я интересовался PUNами, но на стадии проектирования отказался - слишком сложный итоговый контроль.
>>459938> Как вы учитесь/учились ебашить на юнити? После того как уточка удалила канал сюда нет входа.
Запилил простенький код для локализации. Может >>459633 пригодится:Locale.cs https://pastebin.com/j1GYVQwDLocaleStorage.cs https://pastebin.com/tBw4H6mbLocalizedText.cs https://pastebin.com/vEhu4uBD
>>460124>синглтоныИ где ты там что унаследовал, чмоня? Твоя хуйня точно так же монобихевиором накидывается тебе за щеку поверх текста. Пошел нахуй из треда короче, стыдно даже ссать на тебя.
>>460142Чтобы не смешивать логику локализатора с другой логикой. LocaleStorage работает сам по себе, ему не нужны сторонние обращение. А вот Locale уже связан с классом Game, который хранит настройки игры и прочее, и связан с классов LocalSettings, который хранит настройки игрока (PlayerPrefs).>>460139>И где ты там что унаследовал>>459849
>>460124Ничо так, но я думал ты хочешь захардкорить что-нибудь эдакое, компоненту для UI, типа. А это просто монобэха, и надо стрингайди ляпать.Что будет кроме дебуглога если стринг айди не найдено?Я вот в своем лисапеде накалякал дефолтязык и дефолт текст которыми забивается все что не найдено.
Sup, Кармаки, разрабатываю на Юнити всякое казуал-говно по заказам с Upwork, а параллельно разрабатываю ИГРУ СВОЕЙ МЕЧТЫ и нужен ваш совет.Никогда не имел дело с базами данных со времен 3го курса и вот мне пришла идея запилить крутой инструментарий для создания всего ин-гейм: оружия, доспехов, квестов, диалогов, етц. Я повспоминал молодость и вспомнился мне TES Constrution Set, в котором такая фишка была реализована на пятерочку: открываешь окно, заполняешь все поля (название, дамаг, файл модельки, файл иконки, етц) и вуаля: можно перетаскивать свою пуху прямо в игру. То же самое с квестами, с диалогами уже сложнее, но мне хотя бы с предметами сначала начать и никогда не закончить. Так вот, у меня общая картина в голове вроде есть: Делаем кастомное меню Editor, в нем все нужные поля, по кнопке СХОРОНИЛ, Editor пишет данные в ???, а сама игра уже их оттуда читает и создает нужные объекты на сцене, если это, например, пуха или меняет поля какого-нибудь Quest-Manager'a, если это квест и т.д.Вопрос, собственно, в чем: нужна ли мне БД, если нужна, то какая? Надо, разумеется, что бы все это работало без необходимости устанавливать на пеку юзера какой-нибудь ФАЙРБЕРД или ОРАКЫЛ. Или проще все в бинарники грузить? А как тогда каталог открывать? Захочу я, например, изменить дмг своей пушки, надо что бы был ДБГрид или какой-нибудь его аналог из которого я могу открывать окно с подбробностями о пушке и менять все.В общем, представьте, что вы такой же ебанутый как и я и захотели подобное реализовать. Как бы вы к этому подошли?Бзв, есть мысли, в случае успеха, выложить такую систему в ассетстор нахаляву, на радость всем. Ассетстор не чекал
>>460185Сделал так свой редактор для квестов на эдиторе, все храню в жсоне. Хочешь через юнити пили, хочешь внешним редактором.БД без СУБД этоже бинарник/файл.А СУБД тебе не надо.
>>460187У меня были мысли про json или xml. А с жсоном можно работать через C#, ну я имею ввиду, что бы велосипед не изобретать, в .NET есть реализованные методы для работы с ним?
>>460189Выгрузка-загрузка, сериализация.И с хмл тоже есть возможность, но почему-то я не стал, а почему- не помню.
>>460189Я даже в редакторе интерактивный графоний запилил, чтобы рисовать связи между репликами диалогов и перемыкать если надо. uml-стайл.
>>460191Хм, да ты просто Тодд после такого. Сейчас обмажусь xml-ем для Юнити. Насколько я слышал, этому даже во всяких Гикбрейно-парашах на курсах по юнити учат. Спасибо
>>460157> Чтобы не смешивать логикуЯ к тому какой практический смысл делать синглот с публичным конструктором лол, приватным гетером лол и все поля/методы статичные. Я такой хуеты никогда не видел. Не легче уж тогда сделать всё статичным и публичным, раз все равно не понимаешь как работает синглтон.
Как запилить стрелки типа таких как на пике или попроще но на шейдорах HLSL. Т.е. есть текстура, в каждой точки текстуры хранится вектор, на основе вектора делаем текстуру.Откуда начинать думать? Видел примеры на GLSL но они вроде как не совместимые и вообще не понятные
>>460200Там нигде нет синглтонов. Есть что-то вроде класса-хелпера Locale, по типу классов Console, Physics, Application и так далее.
Пацаны, а можно переориентировать меши по векторам силами юнити, или это только в редакторах можно сделать?
>>460299Именно меш нельзя. Только пихать его в редактор, поворачивать как надо и экспортировать заново.Сам моделлеру за это дело по началу по рукам стучал.Но можно схитрить. Создать пустой объект, который, понятное дело, будет правильно ориентирован по осям, а потом в него вложить меш. И уже все операции делать с объектом, а не с мешем.Но это только если тебе его двигать/вращать и прочие элементарные вещи.
Еще один вопрос. Делаю туррельки, которые следят за позицией игрока с помощью transform.LookAt. Как сделать, чтобы их ротейшн был ограничен, например, 90 градусами? Т.е. когда объект пропадает из их зоны видимости, туррелька не двигалась дальше или возвращалась на начальную позицию.
>>460308> чтобы их ротейшн был ограничен, например, 90 градусами> Т.е. когда объект пропадает из их зоны видимости, туррелька не двигалась дальше Ты уж определись что тебе нужно, ограничить вращение по градусам, или по расстоянию до объекта.
>>460308Вот тут поясняютhttps://www.youtube.com/watch?v=1s6ysyYGVfI&list=PLA_DOLfj-oCVeF0TWltYife8kfmCdLvsG&index=13
>>460311Зона видимости по градусам же. >>460312Сейчас заценю, хотя я уже придумал костыльное решение, сейчас пишу.
>>460313> Зона видимости по градусам же. puska.transform.localRotation.y = Mathf.Clamp (puska.transform.localRotation.y, -90f, 90f);Ну или как-то так, лень проверять схавает ли он такй прямой доступ к "y".
>>460308> Т.е. когда объект пропадает из их зоны видимости, туррелька не двигалась дальше или возвращалась на начальную позицию. Оно тебе ещё надо? У меня есть пример.
>>459842>кстати, информацией о эрозии не поделишься?Вода, внезапно, течет вниз (в шейдорах). Подсчитывается поток воды, потом скорость. Скорость "диффузируется" чтобы не быть квадратной как текстура. Порода растворяется в потоке если скорость потока высока. Растворенный "ил" течет по течению и потом осаждается где то. Еще есть гравитационная эрозия - тупо если угол склона выше Х то оно вниз сползает без всякой воды. Тут надо переделать, порода должна действовать как густая жидкость а не как сейчас. Там репо в гите было где то выше.
>>460338Да вот и я подумал что для такого симулятора весеннего двора особо камеру вертеть не надо, можно сделать кнопочку, чтоб камера принимала вид чётко сверху и жмакать что есть дури куда попадёшь.
Есть один объект из спрайтов (человек). Почему иногда при нажатии на него, выбирается родительский объект, в котором все его спрайты, а иногда конкретный спрайт? Как сделать, чтобы всегда выбирался только родительский объект?
Анон, а есть паттерны разработки? Первый раз буду делать что-то свое, а не по тутору. Не хочу объебаться и делать все последовательно и правильно (чтобы потом не переделывать).
>>460356>Не хочу объебаться и делать все последовательно и правильноЭто тот старый исхудалый тролль, да?
>>460357Наверное это какой-то лакальный мем, но написал немного туповато. Я хотел узнать в какой последовательности создаются игры.
>>460358> Я хотел узнать в какой последовательности создаются игрыЗапускаешь юньку, пишешь игру, закрываешь юньку.Когда ж ты уже успокоишься, а?
>>460356Забей хуй. Если это твой первый блин, ты всё равно наделаешь ошибок и потом всё переделаешь. Я сам относительно новичок, и занимаюсь этим всем в свободное время, но я когда начинал тоже искал подобные советы, так что вот те правила которые я сформировал на данный момент:1) Относись к себе-в-будущем как к дауну, который нихуя не понимает. Используй Assertions, чтобы не дать себе выстрелить очевидными багами в ногу.2) Не используй огромные скрипты, дели их на компоненты поменьше, так и дебажить проще, и некоторые можно будет потом повесить на другие объекты. Если для последнего нужно будет накинуть абстракции - делай это, время сэкономленное по ходу разработку того стоит. в разумных пределах, конечно же3) Пройди всё что касается скриптинга на сайте Юнити. Те, которые короткие видяшки. Нужно хотя бы знать что такие возможности существуют. Я сразу ринулся в бой и потом внезапно открывал для себя очевидные и удобные функции.4) Старайся делать каждый компонент как можно более независимым. Например, скрипт PlayerHealth не должен при снижении хп начинать отправлять методы во все концы игры и тем более менять переменные в других местах, вместо этого лучше использовать Observer Pattern, чтобы PlayerHealth вообще не знал на что он влияет и как, а просто выполнял свою работу.У меня сейчас в игре, например, ни один объект не знает про существование UI. Это значит что если я внезапно захочу сцену где для большей драматичности нужно его отключить, никаких лишних ошибок не выпадет.В последнее время копаю в сторону ScriptableObject'ов. У меня начало формироваться мнение что Синглтоны и DontDestroyOnLoad() это зло, но я пока в этом не уверен, не опробовал как надо. Если кому есть что добавить - я готов выслушать.
>>460361> Например, скрипт PlayerHealth не должен при снижении хп начинать отправлять методы во все концы игры и тем более менять переменные в других местахВот есть у меня моб. У меня есть ХП. Когда оно падает до ноля, моб уничтожается и увеличивает переменную "mobCount" на 1, которая отображается в UI. И как мне эту переменную увеличить, не общаясь с UIcontroller'ом?
>>460361Вот спасибо. Алсо ещё хотел узнать какие моменты нужно продумать обязательно перед созданием игры (кроме общего сеттинга и боевочки), за что браться в первую очередь (персонажи/окружение)?
>>460328Давай, буду рад. Я способ придумал, но мне он кажется ультра-тупым: if (target.transform.position.x > minX && target.transform.position.x < maxX && target.transform.position.z < maxZ) transform.LookAt(target); Игра на одном экране, поэтому все работает, но как-то НЕ ИЗЯЩНО.
>>460367Cначала научись кодить на простых прототипах. А потом уже делай игру мечты. Я сейчас делаю так: создал из обучалки спэйс-шутан простой. А потом стал к нему прикручивать дохуя разного функционала, просто чтобы было. Ни чтобы игра стала лучше, а просто мне удобно на уже рабочем прототипе учиться делать новый функционал. К тому же, я уже начал видеть кучу ошибок, которые я допустил со связанностью. Например, некоторые скрипты из обучения, тот же дестрой бай контакт настолько оказались неудобними при расширении функционала, что просто пиздец. Прислушайся к >>460361. Он дело говорит, но пока сам не наткнешься на все это - не поймешь.
>>460370Вешаешь этот скрипт на турельTransform target; // это цель твоей турели, как ты её будешь получать - твоё делоpublic float angle, speed; // угол "зрения" турели и скорость её перемещения. угол имеется в виду влево и вправо от её начальной позиции. то есть при значении 90 она будет "видеть" на 90 градусов влево и 90 вправоQuaternion originalRotation;Quaternion targetRotation;void Start () {originalRotation = transform.rotation;}void Update () {Vector3 look = target.position - transform.position;Quaternion q = Quaternion.LookRotation (look);if (Quaternion.Angle (q, originalRotation) <= angle)targetRotation = q;elsetargetRotation = originalRotation;transform.rotation = Quaternion.Slerp (transform.rotation, targetRotation, Time.deltaTime * speed);}Угол и скорость не забудь в инспекторе задать. Если турелька потеряет цель, то вернётся в начальное состояние.
>>460371> Я сейчас делаю так: создал из обучалки спэйс-шутан простой. А потом стал к нему прикручивать дохуя разного функционала, просто чтобы было. Ни чтобы игра стала лучше, а просто мне удобно на уже рабочем прототипе учиться делать новый функционал. К тому же, я уже начал видеть кучу ошибок, которые я допустил со связанностью. Например, некоторые скрипты из обучения, тот же дестрой бай контакт настолько оказались неудобними при расширении функционала, что просто пиздецЛол, та же хуйня была. Тоже сделал space shooter по туториалу, а потом к нему нахуевертил бонусы (ускоренная стрельба, двойная стрельба, рассыпная стрельба), боссов, уровни. И тоже такую башню из говна и костылей построил по итогу, что сам в ней утонул.Но зато какой опыт, лол.
>>460388Ах да, в апдейте на весь участок кода повесь проверку на наличие цели, если ты её ищешь как-то, а не просто в инспекторе ручками пихаешь. Хотя даже если и ручками пихаешь - всё равно повесь
>>460364Нужно сделать так, чтобы UI брал значение этой переменной.Например, у меня у множества объектов есть инвентари. И когда я хочу отобразить содержимое одного из них, скрипт, наполняющий гуй, через интерфейс берёт все нужные данные у выбранного объекта. А сам объект вообще не ебёт, кто и что будет смотреть в его инвентарь, он реализует интерфейс доступа и на этом всё.И когда мне захочется, например, сделать АИшный сенсор, анализирующий инвентарь, я так же возьму все нужные данные через интерфейс, а объект останется неизменным.
>>460361Дополню этого господина выводом из личного опыта: используй monobehaviour, только если он действительно нужен. Часто бывает удобнее использовать один - несколько скриптов, реализующий более классическую архитектуру.
>>460395> Например, у меня у множества объектов есть инвентари. И когда я хочу отобразить содержимое одного из них, скрипт, наполняющий гуй, через интерфейс берёт все нужные данные у выбранного объекта. А сам объект вообще не ебёт, кто и что будет смотреть в его инвентарь, он реализует интерфейс доступа и на этом всё.С инвентарём у меня как раз как ты описал.А в мобе у меня забито значение ХП и проверка, которая в случае если ХП <= 0 сообщает UI-контроллеру типа "ещё один сдох, отрисуй там плюс один", после чего моб помирает. Как UI-контроллер будет знать что моб сдох, если он об этом не сообщит?
>>460400Хотя я тут подумал, можно в классе mob добавить какой-нибудь static int deadMobsCount, на старте сцены получать это значение UI-контроллером, а мобы при помирании будут эту переменную инкрементировать, она ж прям в этом классе на экземпляре висит.Да, должно сработать только нужно ли оно.
Всем здрасте, ищу желающих по участвовать в разработке одной игры в жанре TD на unity, c#, с целью саморазвития и обучения в процессе работы над игрой, так что если у вас есть желание развиться в этом направлении командная работа ускорит этот процесс, если ты :1. Адекватен в общении2.Имеешь базу с#, синтаксис для тебя не проблема3.Имеешь свободное время, в неделю по 2 дня полностью и в остальные 5 по 1-2часа будет достаточно4. Есть комп с инетом, ну это и так понятноТо пиши на мыло uneexpff@gmail.com или в вк vk.com/puppeyНа данный момент мной написано буквально 5 скриптов, есть небольшая карта. Планирую закончить игру до конца лета 2018
>>460404> в разработке одной игры в жанре TD на unity, c#Хех, как раз свой ТД пилю. Правда, у меня пока кубики стреляют кубиками по шарикам, но зато вроде работает. Ещё б UI доделать да побольше разновидностей мобов шариков.
>>460406Можем списаться, поделимся опытом, возможно тебе понравится моя идея(она отличается от стандартного наскучившего TD), короче буду тебе рад.
>>460407Да нет там особо никакого опыта. У тебя 5 скриптов, у меня 11 (и ещё один сугубо для отладки), и то из них почти них только 4 весят больше килобайта. Так что считай что один хрен.> моя идея (она отличается от стандартного наскучившего TD)Да я вот тоже думал прикрутить одно говно. Но это я скорее так, чисто для экспириенса и, возможно, для портфолио. Так-то я в одном командном проекте уже занят.
>>460400Ты можешь пользоваться коллбеками для передачи изменения статуса.Но лично я бы наверное сделал менеджер противников, который получал бы всю информацию о мобах через коллбеки, и к которому можно было бы обратиться для получения информации.
Юнитаны, скажите как называется это говно, как вот здесь на скрине >>459870 когда прям поверх сцены окно с нужными данными.
У меня в мохо-объекте есть поляpublic типа RenderTexture и оно видно в инспекторе, все ок.Потом я создал свой класс public DataTexture который содержит две RenderTexture и его не видно в инспекторе, несмотря на то что все public. Как сделать чтобы текстуры было видно в инпекторе? public class DataTexture {... public readonly RenderTexture[] textures = new RenderTexture[2];...}>>460417Бля, ну я хз. Окно? DragPanel скочай
>>460421> Как сделать чтобы текстуры было видно в инпекторе?[System.Serializable]public class DataTexture{...}
>>460423>[System.Serializable]Помогло, спасибо. А нельзя сделать чтобы были видны в инспекторе и поля с модификаторами private, readonly, static?А, нагуглил - [SerializeField] добавить
This is a notice from the Asset Store Team to inform you that as of Unity 2017.2, UnityScript files, also sometimes referred to as Unity’s Javascript, have been deprecated. More information about why UnityScript has been deprecated can be found on our blog.You are receiving this message because the following product (s) have some .js files included and it will likely start to cause some issues in future Unity versions. We would advise that any .js files you have be converted to c# at your earliest conveniences. In most cases our Automatic UnityScript -> C# converter can assist you in this process. It is also very likely that you are receiving this message as a result of including Standard Assets in your project. Simply removing those files will suffice. Ололо, джавапокалипсис
>>460360Ну тот анон все верно написал.Никакого секрета тащемто и нет, просто берешь, и без задней мысли делаешь самый простенький прототип, а потом день за днем прикручиваешь к нему фичи, не забывая делать бекапы. Что непонятно - гуглишь.
>>460482Ждем реакции анона, который несколько тредов назад вещал о том, что жаваскрипт лучше. Кто им вообще пользовался-то?
>>460482>>460484В unity как бы жабоскрипта небыло, был свой какой-то ее вариант, кривой.Туда им и дорога
>>460485> был свой какой-то ее вариант> UnityScript files, also sometimes referred to as Unity’s JavascriptЖопой читаешь?
>>460486Ты совсем тупой?Если ты хоть как-то знаком с JS и пробовал то, что предлагает Unity - сразу бы сблеванул
>>460487Ебантяй, я тебе просто говорю что в том посте, который ты процитировал, отлично написано как называется этот самый "какой-то её вариант".
>>460490> вот создам игру, продам 100 тыщ копий и стану богатым!Сука тупая, зная JS гораздо проще найти работу, при этом ее будет меньше, нежели ебня с "ле геймдевом" и доход годовой выше.Но ты сиди, играйся с "серьезным игровым движком Unity" лолка нищебродная.
>>460492> зная JS гораздо проще найти работуА если похапэ "выучить", то тогда прям ууух, по тыщи баксов в день можно поднимать.
>>460493Сарказм несколько неуместен, так как похапэ прогеры до сих пор востребованы в огромных количествах по всему миру. У меня вот друг пхп-прогер, сейчас сваливает в гермашку, так ему полсотни предложений было, когда он свалить решил, и он долго выбирал ещё где получше.
>>460492Сотка с годовым знанием юньки и хуевым знанием шарпа - вполне себе норм для ДС-2. Так что не так уж и плохо. На самом деле погроммистов на юнити не так уж и много, потому что большинство из них - школьники, которых нихуя никуда не возьмут.А так да, JS естественно более востребован, но кому не похуй?
>>460513>Сотка с годовым знанием юньки и хуевым знанием шарпа - вполне себе норм для ДС-2.Хуетка. Максимум 40-50к и ты блять реально должен уметь хуету делать на весьма приличном уровне. То есть нехуевый опыт и знания и ВСРОКИ бл100 и более это на теплых местечках пригретых, либо по знакомству, либо у тебя luck 255 Сотка. Пиздец ты мечтатель. Поди начитался хабраговна, да? Развесил уши.
>>460514Поправочка: сотка и более реально, если ты гуру.В контексте>годовым знанием юньки и хуевым знанием шарпадаже решил не упоминать, ибо мечтатель
>>460515>>460514Cкорее просто кто-то не умеет пиздить на собеседовании и просто чмошник, который просит мало денег. 40-50 джун.
>>460516Если что, я так год работал, делая виар-развлечения для торговых центров, не умея при этом нихуя вообще (пройдя несколько туторов и сделав один проект). Не отрицаю, что возможно мне повезло + я работал до этого в смежной сфере, но не кодером.
>>460517Пиздить, я имею ввиду, врать. Алсо, в айти вообще бывают собеседования с эйчарами, кроме первичных?
>>460519>насмотрелся ютубов@начитался xkdchttps://www.youtube.com/watch?v=x1TsOHyJPpwКогда ты последний раз был на собеседовании на кодера/геймдева? В рашке особенно давно тупых цац не сажают на это, тебя реальный бородат с опытом в 30 лет будет хуярить, причем всегда в отвратном настроении, ибо его оторвали от дела и делать ему нехуй, тебя дебила слушать.А если цацу получишь - значит lck 255
>>460520Пиздеть это разговаривать, дружище. Запомни, пиздЕть - разговаривать, пиздить - бить или врать. (но разное ударение)
>>460523https://ru.wiktionary.org/wiki/%D0%BF%D0%B8%D0%B7%D0%B4%D0%B5%D1%82%D1%8C> говорить неправду, лгать, врать, обманывать
>>460523Ты только что это придумал?Я слышал более правдоподобную версию - пиздеть = врать в питере, пиздить = врать - в маааскве.
>>460525Возможно, действительно, разница в разных регионах. Я сам в ДС-2, но приехал из другого города. У нас всегда говорили пиздИть в значении врать. И пИздить в значении врать/бить.
>>460526Куда уж там лингвисту, доктору филологических наук и академику Российской академии наук товарищу Зализняку до великого дизайнера Тёмы, да.
>>460529Скорее тут как вОлки и волкИ. Удивлен, что в вики этого нет. Кстати, если посмотреть обсуждение, там изначально был вариант три, но его удалили. В любом случае, отошли от темы.
>>460530> вОлки и волкИ. Удивлен, что в вики этого нетЕстьhttps://ru.wiktionary.org/wiki/%D0%B2%D0%BE%D0%BB%D0%BA> мн. ч.> волкиНо да, от темы отвлеклись.
>>460531Пытаюсь сейчас на лвлдезигнера попастьделаю тестовое.Видимо два говнопрототипа и 10 доков прокатили.мимо
>>460531Удивлен, что нет варианта пиздИть, я имел ввиду. Ладно, в любом случае, на счет эйчара я как-раз и имел ввиду, что обычно тебя не эйчас собеседует, а глава отдела. Но ничего не мешает напиздЕть и ему. Есть особо пытливые, но похуй. Больше собеседований и ура, ты работаешь. Я так вкатывался. Но когда на юнити пахал, это был типа стартап, где меня собеседовал директор и он нихуя ничего не знал. Он просто спрашивал - можешь это, можешь это. А так как запросы там были нулевые, то офк я мог и то и всё.
>>460533В разных компаниях по разному. Кто-то ищет суперзадрота со стажем 10 лет, а кому-то надо, чтобы ты был адекватный и английский знал нормально. Если ты смог удачно пройти собеседование, хорошенько наебав людей, которые тебя принимают, это тоже говорит о твоих качествах. По-крайней мере, ты умеешь себя продавать, а значит, уже не лох.
>>460536> Где ты там видишь волкИ с ударением на И?>>460532Макаба ударение сожрала. Там вОлки.Совсем в шары долбишься?
>>460537А потом, после собеседования, в ходе работы, выяснится что может быть ты и не лох в соцскиллах, но лох в геймдев-скиллах и с треском вылетишь.А потом кто-то из менеджеров этой говнокомпании поди еще в бложике про тебя напишет. Напрямую м.б. и не спалит (а то и спалит), но намеков будет достаточно дабы найти если чтотупой дебилойд лол
>>460538>Совсем в шары долбишься?Мб ты долбишься? Причем тут твоя аналогия с неправильным числом, когда у нас не "пиздеть/пиздят" а "пиздеть" и "пиздить" - два разных слова? Ты точно кодер и с логикой у тебя есть что-то? Покинь тред нахуй
>>460542Чего ты сразу в обратку-то пошел? Не привык, когда в ошибки носом тыкают? Поди МАЖОР и сам джуниров катаешь, а тут какой-то анон охуел?
>>460537Любопытная логика>хорошенько наебав людей, которые тебя принимают>ты умеешь себя продаватьАх да, сленг выдает с носом> а значит, уже не лох
>>460543Почитай внимательно ветку.В частности сюда >>460531 и сюда >>460534Даже процитирую:> Удивлен, что нет варианта пиздИть, я имел ввидуТот, кому я это писал, и то понял что мы друг друга не поняли (уж извините за тавтологию), а ты тут вылез со своим трипом.Иди попей таблеточек и успокойся.
>>460540Плюсуешь себе опыт, увеличиваешь стек технологий, если что-то спрашивают, отвечаешь, да имел опыт работы с этой хуйней, о которой ты впервые слышишь, но давно. >>460539Ну если ты тупой, то да. Я вот не вылетел, обучался в ходе работы. Офк я не имею ввиду, что нужно просто придти, нихуя не умея и сидеть на жопе. Нужно въебывать. Но устроиться реально, при чем не сказать, чтобы очень сложно. У меня помимо личного примера есть еще знакомые, которые так вкатывались. Забавно вообще один друг вкатился в какой-то стартап на свифте, нихуя толко не умея кодить, имея только пхп за плечами год опыта. И получает больше, чем чувак, который дрочил матан и кресты десять лет. У последнего нереально горит от этого, на каждой пьянке начинает гореть, всем смешно.
>>460545Причем тут тот вариант и твоя аналогия, когда ДВА РАЗНЫХ слова, блджад.Совсем тугой или обкуренный?
>>460546>Забавно вообще один друг вкатился в какой-то стартап на свифте, нихуя толко не умея кодить, имея только пхп за плечами год опыта. И получает больше, чем чувак, который дрочил матан и кресты десять лет. У последнего нереально горит от этого, на каждой пьянке начинает гореть, всем смешно.ну я же сказал:>100 и более это на теплых местечках пригретых, либо по знакомству, либо у тебя luck 255 > либо у тебя luck 255
>>460546>Плюсуешь себе опытДопустим, это можно. Но релевантого рабочего опыта у меня нет, так что плюсовать нечего>увеличиваешь стек технологий, если что-то спрашивают, отвечаешь, да имел опыт работы с этой хуйней, о которой ты впервые слышишьИ тут же ловишь какой-нибудь очень дефолтный вопрос, на который ответить не можешь. Твой пиздешь очевидешь, а это 100% сливЯ просто не могу представить о каких именно навыках в ГД можно спиздеть, так что бы это тебе потом не вышло боком ("Ты же сказал что работал с хуйняNAME") или на которые нельзя затребовать пруфы. Серьёзно, приведи пример.
Зря вот вы эту тему вскрыли, тредик засрался. Не люблю когда тематика плохеет. >>460544Какой сленг. Это уже тысячу лет как не сленговое слово.>>460550Это я понял, просто лак не 255 нужен, а поменьше. Просто есть еще такая ОЧЕНЬ важная вещь в любой сфере, как общая адекватность. Если бы ты сам принимал собеседования, то видел бы, каких дебилов земля только не носит. Я просто сам раньше собеседовал людей, но не в айти-сфере не думаю, что разница так уж велика. И ты просто не представляешь, сколько же откровенной хуйни несут люди. Многие из них с опытом, с нужными скиллами, но когда ты смотришь на них, и понимаешь, да вот я с ним буду работать, и думаешь, ну нахуй, найму-ка лучше кого-нибудь с кем работать будет поприятней.
>>460552>Какой сленг. Это уже тысячу лет как не сленговое слово.Не сленг а манера разговора. Делят людей на лохов и не лохов известно какие люди. Не очень хорошие
>>460552>Если бы ты сам принимал собеседования, то видел бы, каких дебилов земля только не носит.Дибилы дебилами, а таких как ты, желаюших получать 100к сидя на жопе - море. То, что выберут тебя на теплое место - lck 255 и не менееИначе мирись с 30к
>>460551Я работал кодером и геймдизайнером одновременно, потому что был стартап на 3.5 человека. Рассказывал, как я охуенно геймдизайнил до этого а это правда, как ебашил в юнити дохуя времени а это неправдау меня тогда был очень маленький опыт. , рассказал, что делал проекты под окулос и вайв, но не могу показать по определенным причинам а тогда у меня был шутан, платформер и кликер. И в общем-то меня взяли. >И тут же ловишь какой-нибудь очень дефолтный вопрос, на который ответить не можешь. Твой пиздешь очевидешь, а это 100% сливТакое может случится. Алсо, если ты видишь, что тебя задрот рекрутирует, то лучше, конечно, не врать. Но если это чувак, который горит идеей и ему хочется, чтобы ты ей тоже горел, то можешь из себя хоть супермена строить
>>460555Ну, я на жопе не сидел, дрочился очень много. Вообще, работа была довольно уебищная, несмотря на кучу опыта, которую она мне дала и приличные для меня деньги. Делали мы довольно таки хуевый продукт, и меня это расстраивало. Это просто было во времена хайпа ВР, там тогда очень много говноконтор появилось, который хотели срубить фаст-мани. И в общем-то, получилось. А 30к в айти я хуй знает, даже джуны больше получают. За 30к можно на жопе сидеть и в другой сфере.
>>460556По существу только один пример>>как ебашил в юнити дохуя времени а это неправдау меня тогда был очень маленький опыт. , рассказал, что делал проекты под окулос и вайв, но не могу показать по определенным причинамХуйня которую нормальному работодателю я бы никогда не сказал. Просто потому что стыдно так нагло пиздеть людям с которыми хочешь работать. Мой детектор определяет тебя как Bidlius Artificius. Считаю таких как ты врагом любого общества
>>460559> Мой детектор определяет тебя как Bidlius ArtificiusТвой детектор закоден правильно, ты принят.
>>460565Ты какой-то мутный. Если тебя в говностартап взяли с кондочка (ещё пришлось пиздеть) это не значит что ты шаришь в рынке.
>>456736 (OP)Привет. Кто нибудь может помочь. Как создавать андройд плагины для юнити? Типа что бы использовать android api.
>>460521Два раза цац получал. Один раз сразу двух цац и они первичку фигачили, а потом пришел школьник какой-то, который был их главным программистом и он, в сука, речи обычной, использовал «лол» и «рофл».
>>460578Да я понимаю что в конце найду как сделать. Просто искать надо будет весь день -_-.Пока читаюhttps://docs.unity3d.com/550/Documentation/Manual/PluginsForAndroid.htmlhttps://labs.karmaninteractive.com/creating-android-jar-and-aar-plugins-for-unity-c293bb5258c9
>>460585Хочешь небольшой секрет?Некоторые ищут решение годами, а ты за день решил стать ТУРБО-ПРОФИ-МАГИСТРОМ.Сиди и набивай шишки, ибо это единственный путь к истине. Другого не изобрели.ну, конечно, если ты не родился с серебряной ложкой во рту мог бы нанять чотких ребят, они бы всё за тебя сделали
Посоны как в юнити сделать линейку? Мне нужно видеть как объект перемещается на десятки километров относительно чего то.Искал ассетсторе там нету.
Господа, а почему в префабы в инспектор нельзя кидать объекты прямо со сцены? Приходится в скрипте писать строчку, чтобы объект искался на старте, хотя удобнее просто через инспектор кинуть.
>>460587Да я знаю про это. У самого 100 раз так было (когда на libgdx прогал и на яфоны переносил). Решение проблем искал на форумах
>>460604Префаб это "человек". На сцене у тебя два таких префаба, один Вася, второй Петя. Зачем тебе в понятие человека закидывать компоненты Пети?
>>460604Префаб - это такой же ассет как материал, текстура и т.д.Сцена - это набор ссылок на ассеты, либо ассеты, сериализованные внутри сцены.Чуешь разницу?
ГеДонисты, кто-нибудь проходил курс полугодичный Гикбрейнс "Разработчик игр" на Юнити? Интересует, стоит ли того как стартовый опыт для вкатывания.Для общего понимания: есть много времени, есть финансы (средней ограниченности, но не копейки) и желание пилить игры, но нет опыта программирования. До сего момента занимался написанием диздока и самостоятельным изучением Юнити, дабы запилить прототип и с ним уже дальше набирать команду на коммерческой основе. Но столкнулся с тем что научиться до состояния способности запилить прототип несложной игрушки с нуля сложно из-за неструктурированности информации в интернете. Видеоуроки, сайты и форумы это конечно круто, но много времени и сил уходит на отсев мусора и компиляцию получаемых знаний в голове. Поэтому думаю параллельно пройти эти курсы.Стоит того, с учетом вводных? Не совсем там мусор уровня "записывайте: вот мышь, вот клавиатура"?
>>460628Не люблю транжирить финансы понапрасну и не понимая принципов. Поэтому считаю что минимальную базу иметь обязан, что хотя бы видеть и понимать что там пилят вечно голодные наймиты. Это первое. Ну и второе - прототип имеет смысл запилить самому, опять же и для понимания, и для того чтобы было проще и удобней набирать людей на существующий костяк или хотя бы образ игры, чемнесколько месяцев платить им за то чтобы они пытались въехать чего ты от них хочешь. Имхо, конечно, но тщательная подготовка - друг проектов, которым хочется дожить до релиза.
>>460626>из-за неструктурированности информации в интернетеИ действительно, ужасно неструктурированно.https://docs.unity3d.com/ru/current/Manual/index.html
>>460644GameObject gameObjectCopy = UnityEngine.Object.Instantiate(gameObjectOrig, gameObject.transform.position, base.transform.rotation) as GameObject;https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
Делаю систему взаимодействия с объектами: подходишь к стулу, видишь подсказку, жмешь кнопку. Персонаж садится, управление отключается, камера меняет логику. Столкнулся с тем, что не представляю, как реализовать, чтобы персонаж мог на этот стул с любой точки садиться и садился точно на стул. Это инверсной кинематикой делается? Куда копать, где читать?
>>460654Ну так пусть он автоматически идет до точки где он может сесть, разворачивается, и только потом садится.
Привет челы, сделал человечка из коллайдеров, связал жоинтами, настроил пружины, все ок. Но как сделать якоря как в видосе?https://www.youtube.com/watch?v=UkvHydwP2mwалсо можно ли к такому физичному телу применить инверсную кинематику, анимацию? Вариант с не физичной копией физичного человечка, с последующим присваиванием целям пружин положения анимированной копии меня не очень устраивает. Хочу еще сделать возможность хвататься ручками за объекты.
Подскажите пожалуйста. Можно ли из скрипта получить доступ к данному материалу и изменить его текстуру?Эти строчки не работают. gameObject.GetComponent<Material>().mainTexture = myTexture; gameObject.GetComponent<LineRenderer>().materials[0].mainTexture = myTexture;
>>460725https://docs.unity3d.com/ScriptReference/Material.SetTexture.htmlназвание слота текстуры найдешь в коде твоего кастомного шейдера
>>460735Не обязательно даже при проходе точки, просто каким образом кодом можно изменить положение слоя?
>>460735Ну берёшь и без задней мысли меняешь в свойствах спрайтрендерера.Если я правильно понял, что ты делаешь, то довольно распространенный способ в подобных случаях - менять положение по Z при движении по Y. Слои будут просто заходить друг за друга при движении.
>>460743Сек, но разве не имеет значения, какое Z, если слои все равно будут рендериться по своей иерархии?
>>460697Вчера сделал по тутору с их сайта игру, где шариком надо квадратики собирать, уже чувствую себя охуеть каким гейм-девелопером. Но там много всего на их сайте, я что-то хз с чего начать. Планиров сегодня начать смотреть их туторы по C# и получше разобраться с API юнити. Всё правильно делаю?
>>460713>представляю что это, но не очень представляю зачем оно надо кому-то кроме ассетописателейАсетотаскателям надо конечно же. Я для себя понял, что игра на унити должна создаваться процентов на 90 перетаскиванием ассетов, если нужного ассета нет, ты должен его написать.
>>460766>Я для себя понял, что игра на унити должна создаваться процентов на 90 перетаскиванием ассетов, если нужного ассета нет, ты должен его написать.Хотя бы один понял. А то тупые тралки как этот заебали уже:>>460658
>>460776>микрособенностейНу,в такмо случае 500к в первый месяц обеспечены! Ни разу еще не видел рогалика без микроособенностей, все 1:1 как на подбор!
>>460778>я пришел к работодателю и такой - а у меня игра есть!И как думаешь, кого он выберет среди десятков тысяч таких же как ты с игрой? У некоторых по целому пакету игр заплечами и нихуя найти нормальной работы не огут
Тут вообще есть какое-то более менее интересное программирование? Мне раньше казалось, что когда делаешь игру, ты пишешь огромную такую систему, а на деле просто иногда приписываешь скриптики к объектам игры и всё. Весь код за тебя почти полностью написан, осталось только квадратики расположить. Или это только начальное впечатление?
>>460787>Тут вообще есть какое-то более менее интересное программирование?А то. Тут можно так глубоко уйти в абстракции и выстраивать сложные системы. Либо можно обмазаться синглтонами. Можно найти золотую середину.
>>460771Ну так 3д говна будто особо меньше. Пиксельщит хотя бы не тормозит в локации 2х2 с тремя объектами.
>>460779Короче я понял, пацаны, надо нихуя не делать, вот тогда-то деньги рекой потекут, и на конференциях все награды твои будут.От души, браток.
>>460809Проблема может быть в том, что половина людей будут продавать свое поделие как революционную индюшатину из 3128-го года. И в том, что тетке в HR будет похуй на инновационность твоего игоря.
>>460809У каждого первого "игра охуенная"И тем не менее, 90% Стим стора - полный инди-трешак на коленке сделанный.Твой не будет исключением. Или ты там Ori and The Blind Forest 3 делаешь? Осилишь за пару лет то, что команджа профессионалов 3 клепает?ну давай
>>460815>90% Стим стора - полный инди-трешак на коленке сделанныйПоследствия низкого порога вхождения в юнити и гамак. В стимсторе полно и просто натасканных ассетов.>Ori and The Blind Forest 3Нет, я решил сразу крузис3
Аноны, а где брать Unity на линукс? Когда-то давно видел, что вроде не так сложно поставить, а сегодня стал искать, и вижу только упоминания, но ссылки на сам пакет нет.
>>460837Ну нет, я не настолько тупой.Эту статью я читал еще в день, когда она появилась, и в ней ни слова, ОТКУДА брать дистрибутив юнити. Ни ссылки, ни направления, ничего. Автор выясняет, как подключить адекватную среду к юнити, а я еще даже до этого шага не дошел.
>>460814Хуйня подход. Тебе в мануале написали: DONT DO IT MOTHER FUCKERАлсо тормозить будет на некоторых платформах (или вообще не работать, лол)
>>460846Некоторые платформы имеют кусок гусе вместо файловой систмыhttps://unity3d.com/ru/learn/tutorials/temas/best-practices/resources-folderBest Practices for the Resources SystemDon't use it.
>>460850А можно в редакторе как-то посмотреть, какие ресурсы подгружаются во время игры? Чтобы оптимизировать эти моменты.
>>460878Не, хотелось бы увидеть цепочку ресурсов, которая загружается. Например, грузишь через ресурсы скриптабле обжект, а у него ссылка на префаб, у префаба ещё ссылки.
Хочу, чтобы у меня при создании ScriptableObject в редакторе срабатывал конструктор (ну, не конструктор-конструктор, а его аналог, естественно). OnEnable() не подходит, потому что он срабатывает и при создании SO, и при любом удобном моменте: подправил скрипт — уже созданный SO опять включает OnEnable(), запустил заново редактор — OnEnable() на кой-то хуй.Есть какие-нибудь еще варианты? Можно ли сделать вот так:void CreateInstance(){base.CreateInstance();InitObject();}
Сап, аноны.Сделал 2D-рэгдолл с помощью HingeJoint2D. Вроде бы все и хорошо, но при перетаскивании (читай - впечатыванием) в стену или просто болтая его из стороны в сторону, он начинает деформироваться (руки и ноги впечатываются в тело даже при наличии коллизии между ними, смещается позиция конечностей и головы). Рэгдолл переношу через rb2d.MovePosition в промежуточную точку. Как фиксить, подскажи.
>>460888Сделай класс, который будет инстанцировать твою скриптабл хуитку, наполнять контентом и возвращать ссылку.
>>460850> Некоторые платформы имеют кусок гусе вместо файловой систмыНо получается при Resources.Load геймобжект грузится в озу и больше обращения к файловой системе(никаких подгрузок/кеширований/что еще можно придумать с использованием файловой системы) не будет, так?
>>460902> The Resources folder is also useful in trivial cases, when all of the following conditions are met:> The content stored in the Resources folder is not memory-intense> The content is generally required throughout a project's lifetime> The content rarely requires patching> The content does not vary across platforms or devices.Хуй знает, что ты там оптимизируешь.
Пилю 3д буллет хелл, все снаряды буду 2д спрайтами. Сами спрайты будут взаимодействовать с другими объектами? Убить противников, наносить игроку урон.А то столкнулся с тем, что при столкновение спрайта с бокс коллайдером, спрайт не наносит урона. Такое вообще возможно или я проебался в коде?
>>460915Так вешай на спрайт обычный коллайдер, а не 2д. Официальный туториал про космические пострелушки открой, всё там есть.
Есть одна low level API сеть. Она кидается byte[] из штатного NetworkTransport.QueueMessageForSending.Все бы ничего и все заибися, но юневая сеть может принимать не более 64 кб. т.е. буфер у NetworkTransport.Receive не может быть более 65535 байт. Пофиг какой канал ты используешь, хоть по 256 байт свой message порежь, в итоге оно соберется в сообщение, которое придется Recieve, и оно не должно быть больше 65535. Если больше - гром, гроб, кладбище, пидор. А если вкратце - то, куда приходит жЫрный пакет намертво виснет (найс секурити).Но как же быть с сравнительно большими данными (содержимое инвентаря, диалог с пиздожорчиком и прочее)? "Резать" byte[] на куски? Но как потом пересобирать при получении? Гдэч помогач?
Привет, помогите, у меня почему то не анимируется перс.Cоздаю анимацию, кликаю чтоб она открылась в animation, жму запись, щелкаю на полосу времени, выбираю ногу у перса и двигаю чуть чуть, типо начальное положение, потом снова на полосу времени, двигаю ногу. При нажатии на плей анимации нету, хотя со всей моделькой целиком это работает. Как челика анимировать? Ключи удалять и заного ставить пытался, с кривыми тоже.
>>461024Модельку сам пилил? Есть некоторые готовые модели с готовыми анимациями и запилить новые не получится через редактор в юньке