Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности! Прошлый тред: [ссылка]Официальный сайт: 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_PageНа 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 - это начать делать игру и по мере разработки гуглить непонятные моменты. Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
Сап, есть проблема, настраиваю 2d физику, когда объект после прыжка приземляется на коллайдер, он в этот самый коллайдер немного входит как бы и затем резко выходит, буквально на несколько пикселей, тем самым визуально сам спрайт как бы немного проваливается в землю, и при приземлении и и удержании клавиши бега видимо из-за этого проваливания он на мгновение тормозит. Я догадываюсь, что надо снизить gravityscale, что бы его не сильно швыряло в этот коллайдер, но мне это не удобно, потому что он gravityscale у меня там физика прыжка скачет. Такой вопрос, может можно как-нибудь по другому пофиксить такое кратковременное "проваливание" в коллайдер при немного резком ударении об него.
>>481060>из-за этого проваливания он на мгновение тормозитТак ну это сейчас внезапно пофиксилось добавлением материала с нулевым трением на мой прыгающий объект(решал проблему залипания в стену во время прыжка). Но вот это кратковременное проваливание никак не могу решить, я уже и массу и гравитацию объекта менял, игрался и так и сяк, мне надо чтобы он быстро падал, но при этом он в любом случае немного уходит кратковременно в коллайдер земли, это не красиво выглядит. ЧЯДНТ? Алсо, масса = 1, gravityscale выставляю не больше 3.
>>481034ищешь unity asset extractor. Найдешь годный, вкинешь сюда.UnityAssetsExplorer, например, не все экстрактит. И не опенсорс, чтобы поправить.
>>481060Программно попробуй пофиксить. В FixedUpdate проверь, если провалился, ручками его телепортируй на ноль. FixedUpdate вызывается как раз перед просчетом физики. Авось не взорвется ничего (может надо будет переключить режим на кинематику и обратно), но я не специалист.
Поставил хуюнити, поясните вот что, с тестового небольшого проекта шиндоус формс в два файла переташил код в юнити, первое, нельзя использовать async, второе, нельзя использовать using Newtonsoft.Json. Как быть то, мне нужно по апи данные получать и в апдейте выводить, сам то апи класс юнити не использует и идет себе особнячком, не пойму как прикрутить, вопрос наверное простой. хуя они лого поменяли, послединй раз сидел с 5.2
>>481129>второе, нельзя использовать using Newtonsoft.JsonДллку в папку с проектом закинь, ту что с версией NET 3.5
>>481103Да короче я додумался сменить метод обнаружения столкновений с дискретного на непрерывный и проваливаться конечно перестало. Смущает, что этот метод более затратный, ну да хуй с ним, у меня не много объектов будет в сценах
Сап, пагни.Искал ответа в прошлом треде но он утонул.В общем, суть такова: знакомлюсь с с#+unity.Собрал какой-то первый мини-проектик. Аналог Flappy Bird. Когда запускаю игру в Юнити-Scene - все играет, не лагает и вообще ведет себя так, как мне требовалось.Сбилдил. Закинул на тестовый самсунг А5. Все очень лагает, дергается. Анон посоветовал открыть Профайлер. Открыл - пикрилейтед. Куда глядеть дальше?
>>481240Бро, я запустил проект с открытым профайлером. Но немного не понимаю, в чем проблема.Пикрилейтед - моя догадка что проблема в памяти. Но как быть дальше?
>>481242Котаны. Воспользовался Профайлером. Нашел кажется свою проблему. Дело в нагрузке на CPU. Я так понимаю этот параметр очень сильно завышен. (Vievers.FixedUpdate на пикче - это основной скрипт, в котором инициализируются объекты на сцене и т.д.). До этого он был просто Update. После замены на FixedUpdate загрузка в профайлере упала примерно на 20%. Подскажите, как бы мне снизить данный параметр?Заранее извиняюсь за свои нубовопросы.
>>481286В общем решил.Проблема крылась в том, что я в основном скрипте получал ссылку на другой скрипт не кешируя его.Требовалось везде закешировать такие вот вещи.new = FindObjectOfType<Walking>();
Продолжаю делать кликабельный текст. Вроде бы текст должен быть правильный и всё такое, но его не видно. Я создаю меш с помощью текстгенератора и несложной конвертации в треугольники заливаю в CanvasRenderer.SetMesh.Есть два предположения, почему не работает: либо нужно сетмешить в апдейте, либо я в какие-то ебеня меш оффсетаю по ошибке (оффсетать позицию текста нужно для того, что из сгенерированного по позициям большого окна текста мелкие куски-строки в маленькие кликабельные окошки засунуть). Либо ещё какая-то хуйня.Кто-нибудь делал меш для УИ и отображал его в ректангле? Как это делается по-нормальному?
>>481399>кликабельный текстВот бы в юнити был юайный элемент, по которому можно кликать, и на котором был бы размещен текст...Да не, слишком это сложно.
>>481437Разместить сверху прозрачную кнопку и не ебать мозг. А вообще разрабы юньки хуй клали на эти ваши гипертексты.
>>481446Да, ручками каждый отдельный текст исследовать и растянуть кнопочку поверх нужного словечка. Не еби мозг своими костылями, пожалуйста.
>>481447Весь текст - одна большая кнопка, тебе лишь нужны координаты курсора и слова. У меня так тултипы в инвентаре сделаны.
>>481485Это если не хотим делать подсветку отдельных слов и т.п. Идея-то твоя норм, но у меня как бы уже всё готово, только меш в уи не отображается. Вертексы текста генерируются верно, - позиции новых окошек правильный выходят, - но с самим отображением проблемы. Мне не нужно где-нибудь вертексы апплаить, как нужно апплаить новосозданную текстуру? Какая-то ерунда, если CanvasRenderer.SetMesh в апдейт сунуть, тоже ничего не даёт.
>>481568Нет, ты один такой ебанутый. Когда мне нужна была "ссылка", я просто заебашил прозрачную кнопку.
>>481568DisableRectClipping ничего не даёт, ничего не даёт и UploadMeshData, без разницы, в апдейте или нет, CanvasRenderer банально не рендерит заданный меш.
>>481656Какие ещё переносы? Я не модифицирую генерируемый юнити текст, я его же и беру, а в нём переносов. У меня проблема не в том, как разбить, как перенести и т.п., у меня меш не воспринимается канвасрендерером. Вот гляди. Когда юнити вбирает в себя текст, он автоматом проводит его через текстгенератор и автоматом же выводит на экран то ли в виде текстмеша, то ли в ещё каком виде, но в любом случае это - меш, который идёт в канвасрендерер. Я беру базовый текстгенератор и пытаюсь созданный им меш всунуть в канвасрендерер. По итогу ошибки никакой не выдаёт в логе, но ничего не видно ни в игре, ни в редакторе.
>>481667Помогите мне кто-нибудь, а. Я ж ебанутый, я ж не отступлю и превращу вертексы в текстуру и буду заливать текст через имейджи и спрайты.
Как можно уничтожить объект кликом мышки, но при этом с проверкой столкновения, чтобы нажатие кнопки обрабатывалось только если игрок стоит впритык к объекту?Вот код. Укажите, пожалуйста, что в нём не так.using System.Collections;using UnityEngine;public class DestroyCol : MonoBehaviour { void OnCollisionDetected(Collision collision) { if (Input.GetMouseButtonDown(0)) { Destroy (this.gameObject); } }}
>>481774>>481778Ты ловишь нажатие мышки в тот самый момент, когда происходит этот твой OnCollisionDetected. Тебе нужно отдельно ловить стояние впритык, и если есть стояние впритык, то отдельно ловить нажатие мышки. Банально сделай булеан для стояния впритык, делай трю, когда OnCollisionDetected, и делай фальз, когда игрок отходит от объекта. Затем в апдейте делаешь проверку на буль стояния впритык, и если да, то проверяй на Input.GetMouseButtonDown(0)
>>481839>Ты ловишь нажатие мышки в тот самый момент, когда происходит этот твой OnCollisionDetected.Т.е. ты проверяешь, нажали ли мышь, в тот самый фрейм, когда коллижн сработал. Поэтому и не работает.
Сап, продолжаю бороться с физ. системой в 2D. Я тут наговнокодил таки алгоритм, что бы при отпускании клавиши бега, velocity у ригидбоди обнулялось по иксу и не обнулялось по игрику(чтобы в прыжке не тормозил). Это я делал для того, что бы при отпускании клавиши бега, игрок на земле резко тормозил, а не скользил. Добавил условие, если !Input.GetButton("Horizontal") && rb.velocity.y == 0 то обнуляем велосити.НО, теперь возникает проблема. Когда я НЕ отпуская клавишу "вперёд" нажимаю клавишу "назад", игрок не тормозит и продолжает бежать. Мало того, при последующем отпускании клавиши "вперед", игрок прежде чем сменить направление продолжает скользить. Ладно, тогда я добавил в предыдущее условие проверку: Input.GetAxis("Horizontal") == 0 или отпущена клавиша "Horizontal", тогда обнуляем velocity ригидбоди.Ну при этом всё вроде бы заработало, но побегав с минуту я увидел, что всё-равно иногда игрок проскакивает и начинает скользить. Видимо при одновременном нажатии клавиши "вперед" и "назад" и затем отпускании какой-нибудь одной из них, горизонтальная ось не всегда резко переходит в ноль.Короче, не знаю понятно ли написал, но может поможете придумать алгоритм, что бы при осуществлении движения игрока методами физ. системы, игрок резко тормозил при отпускании клавиши, и:-если нажата клавиша "вперед" - бежим вперед-если при нажатой клавиши "вперед" нажимается клавиша "назад" - останавливаемся.Вообще возможно ли используя Input.GetButton("Horizontal") сделать четкое условие, что если нажаты одновременно две клавиши, то возвращаем резко ноль?
>>481923Короче отбой ребята, все это хуйня> всё-равно иногда игрок проскакивает и начинает скользитьЯ сейчас просто зашел в настройки проекта в InputManager, и там во вкладке Horizontal поднял параметр Sensitivity с 3 на 30, и все перестало проскакивать. Я так понял это скорость, с которой ось изменяется от 0 до 1, я её увеличил, и теперь быстрее проходит время с которым ось уходит в 0, и теперь успевает просчитаться обнуление моей скорости после смены направления. Правильно ли я понял?
>>481933>Полагаю, двигаешь через AddForce, в ригидбади Dynamic стоитДа. C кинематикой все еще больше усложнится, коллизии проверять неудобней, или я не прав?
Хелп, гд.Есть у меня скрипт NodeNet, который хранит лист Node, каждая нода хранит связи с другими нодами. Получается такая сетка. Есть кастомный инспектор для этого дела, который на сцене рисует сетку в редакторе. Так вот, я хочу, чтобы по клику на Habdle-се точки открывался инспектор для неё. Хочу сделать это через Selection.ActiveObject = node. Но для этого Node должно наследоваться от UnityEngibe.Object. Наследоваться от MoboBehaviour или от ScriptableOvject - плохая идея, если наследуюсь от Object и создаю инстансы через new, возвращает null. Чеделать, пасаны?
>>481949>>481951А если у меня в сети будет около 5000 точек, юнити не будет охуевать, когда при выборе точки будет открываться окно Project с 5000 scriptableObject-ами. Если можно их как-нибудь скрывать, такой вариант меня бы вполне устроил. Вот взять например AnimatorController, там при выборе каждого стэйта или дерева смешивания открывается его инспектор, все эти штуки BlendTree, Motion и.т.д. наследуются от Obkect. Как они создаются?
начал изучать ваш юнити хуюнити и сделал такую хуйню. Почему в дебаг моде все норм, а в релиз слои со сталинами находятся выше спрайта?
>>482099а как это влияет на то, что на первой пикче видно спрайт, а на второй он находится за сталинами?
у меня еще один вопрос, почему студия не подсвечивает свойства и методы юнити обьектов? Она тупо нихуя не видит и не подсвечивает.Как это фиксить?
>>482115Когда создаёшь новый скрипт, не открывай его сразу, а переключись на студию, тогда вылезет окно, мол, надо обновить список файлов в проекте. После этого скрипт корректно встанет, и всё будет подсвечиваться.
>>481667>>481691Так чо бля, вы хотите увидеть, как я буду текст в виде текстуры в УИ засовывать? Вам меня совсем не жалко?
Посоны, поясните за Adventure Creator.Не, квест не делаю, ненавижу квесты. Просто не хочу писать свою диалоговую систему и систему управления несколькими камерами в сцене, синхронизацию с анимацией персонажей и т.п. для создания крутых кат-сцен.Кто работал с ассетом, как впечатления? Открытый ли код? Документация норм? Много ли багов? Какие подводные камни?
>>482278Лол, а если напишу что из России? Вообще не продаст?>>482281Крутая штука. Но меня все же беспокоит диалоговая система. Текст надо где-то хранить и организовать, выводить на экран побуквенно и желательно с возможностью проматывать назад. Менюшки интерактивные для вариантов выбора ответов.Создатель приключений, главным образом, этим полезен, а не работой с камерами, звуками и анимациями.
>>482305Хочешь, я тебе свой велосипед дам попользовать? Заодно скажешь, как оно и чего не хватает, буду благодарен за фидбек. У меня там нодовый редактор есть с параметрами, условиями и ивентами на переходах
>>482307Fungus. OK, посмотрю его, может лучше подойдет.>>482313А что не выложишь в стор свой велосипед. Может даже бабла на этом поднимешь, если ценник задирать не станешь.Без обид, анон, но мне для коммерции инструмент нужен, а не для развлечения. И этот инструмент должен быть с документацией, поддержкой, комьюнити и, желательно, несколькими годами разработки.
>>482307Сосачую за фунгус, пиздатый костыль.На его нодах (корутинах) можно хоть всю логику игры слепить но зачем?.
При огромных скоростях плеер пропускает почти все бокс коллайдеры. Это проблема юнити или я неправильно написал передвижение плеера?
Как сделать один огромный террейн, который бы подгружался по мере движения игрока, например как в Skyrim, Oblivion, Morrowind?
>>481414Вот ето ты ебонат((((class ClickableText : Text, IPointerClickHandler{[SerializeField]UnityEvent m_OnClick; // это событие пропихни в реализацию интерфейса//сижу с мобилы, дальше писать лень}мимоПРОбыдло
>>482582>думает, что я не знаю, как отлавливать кликиЛучше скажи, как вертексы через канвасрендерер отображать. >>481667
>>482703>как вертексы через канвасрендерерНикак. Канвас рендерер рендерит только канвас итемы.Не понимаю что ты хочешь делать? Добавь меш рендерер и все.Вроде еще нужно режим поменять на режим с камерой.
>>482705Режим с камерой (как я понял) нужен для "существования" УИ в той же вселенной, что и нормальные 3д объекты сцены. Меш рендерер нужен для 3д объектов сцены, т.е. ты предлагаешь высунуть мою хуетень из мирка УИ в 3дмирок с дополнительной ёблей по высоте. В принципе попробовать стоит (если других предложений нет), но переход всего УИ на другой тип камеры... ну, это будет больно. Слои не работают (а я их где-то там использую), высоту мануально выставлять, опять бояться, что рейкастер будет детектить кнопки там, где их нет.>Канвас рендерер рендерит только канвас итемы.Но во всех вопросах/ответах было сказано, что в канвасрендерер можно сувать меши и/или вертексы (если версия юнити старая) и что он должен рендерить. А ещё было дохуя неотвеченных вопросов, где канвасрендерер ничего не отображал.
>>482710>Режим с камерой (как я понял) нужен для "существования" УИ в той же вселеннойДля этого нужен режим world. Камера нужна, чтобы рендерить канвас камерой (например, с пост-эффектами)>Меш рендерер нужен для 3д объектов сцены, т.е. ты предлагаешь высунуть мою хуетень из мирка УИ в 3дмирок с дополнительной ёблей по высоте. Так ты как-бы собрался рендерить 3д объекты?Это правильный способ. По другому ты не сделаешь. Рейкаст и т.д. можно настроить. Хотя бы добавить просто rect transform.А вообще гугли EventSystem
>>482710>в канвасрендерер можно сувать меши и/или вертексыДа, ты просто делаешь свой объект дочерним в иерархии и можешь использовать экранные координаты.Ничего другого canvas в принципе и не делает
>>482748Короче параша ебаная, ему там сертефикат не нравился, потом другая неведомая хуйня вылезла. В общем скачал готовую либу с гитхаба и все завелось с первой копипасты. Завтра буду разрабатывать анус дальше.
>>481026 (OP)Сложный скриптинг. Еще 3 месяца назад пытался освоить unity(c#). Всё получалось. Пусть элементарные кубики, но я их двигал по сетке сам, писал код. Хоть и простенькой но самостоятельно. Затем 2 месяца было некогда заниматься.Сегодня не смог создать абсолютно ничего. Очень сложный скриптинг. Всё через костыли. Задача была создать на пустом холсте слайдер от (1 - 320) и добавить второй элемент text, чтобы выводить туда значение позиции Slider.Напрямую через событие слайдера это сделать разумеется невозможно. Создал пустой скрипт добавил в него два глобальных объекта (public GameObject S) и (public GameObject T). Далее долго ломал голову как инициализировать эти переменные соответственно чтобы объект S унаследовал слайдер, а Т объект текстовое поле. Перетянуть этот скрипт на слайдер, а потом в соответствующие поля назначить Slider1 and Text1 соответственно? или как то иначе? а затем необходимо через Update считывать позицию бегунка слайдера?Очень плохо, что нет нигде самоучителя с логически законченными программами. Разумеется чтобы они были коротенькими. Т.е. Если речь в уроке идёт о Transform. То необходимо писать целиком весь код от начала и до канца, или хотябы схемотично уазывать куда какой скрипт подключать. Не надо ограничеваться скупыми:Урок номер 8"Трансформация"void Start() { // Start the enemy ten units behind the player character. transform.position = player.transform.position - Vector3.forward * 10f; }"Всё ребята молодцы, всем успехов"Далее урок 9....Так не учат, господа. Я никогда не стану учить новый ЯП, пока не выучу НАИЗУСТЬ примеры консольных "Хеллоувордов" того или иного языка. Идти дальше, можно лишь познав азы - на зубок. В Unity, я нигде не видел простых примеров. Либо скупое описание как в примере выше, либо сразу делают игру.(PS. Боже, какое горе что delphi и прочие паскалеподобные IDE не могут компилировать в APK. В жизни не стал бы осваивать эти заморочки C#'ые)
>>482868Я не пытаюсь выглядеть умнее. Костылём, я называю отсутствие прямого обращения к свойству элемента(ов). Как к примеру в других IDE. В Unity же так: Хочешь присвоить событие нажатия кнопки - пиши отдельный скрипт. Концепция сложная очень. По крайней мере для движка ионизирующегося как для новичков.
>>482865Да все мучаются с ним. Нет поддержки нормальной. Help'ы скупые. Я собственно хелпами и недоволен. У меня не к движку претензии, а к хелпам в основном. Движок может и нормальный, но освоить его должным образом, до уровня "сел и пиши игру" - оч сложно. Теми уч. материалами которые есть в об доступе. В основном все его осваивают по принципу "Я видел, так кто то делал уже".
>>482886Я собственно и не собирался делать игру на Unity. Мне необходимо было просто переписать одну из своих программ сделанную ранее под windows, чтобы пользоваться на android. Простая прикладная программа для работы с данными, в принципе ничего сложного. Чтение строк из memo и обработка нажатий кнопок. Думал просто на Unity ПЕРЕреализовать это. Помню просто что в unity есть элементы UI и чисто на кнопочках и текстовых полях думал собрать.
>>482890Освоил все по официальным докам, че там сложного-то? Забиндить событие на метод монобехевиора это блять пиздец нетривиально чтоль? От какого нибудь WPF или Vue.js ты бы наверное вообще порвался нахуй.
>>482890>но освоить его должным образом, до уровня "сел и пиши игру" - оч сложно.Прст у вас нестыковка парадигм, а так движок не самый сложный
>>482712>>482713Поменял рендермоде канваса с оверлея на камеру. Нихуя не изменилось, только все кнопки уехали в ебеня за пределы экрана, а текст так и не отобразился. Походу, надо как-то в картинку конвертить вертексы. Хз, что с производительностью будет.
>>482864>Напрямую через событие слайдера это сделать разумеется невозможно. Создал пустой скрипт добавил в него два глобальных объекта (public GameObject S) и (public GameObject T). Далее долго ломал голову как инициализировать эти переменные соответственно чтобы объект S унаследовал слайдер, а Т объект текстовое поле. Перетянуть этот скрипт на слайдер, а потом в соответствующие поля назначить Slider1 and Text1 соответственно? или как то иначе? а затем необходимо через Update считывать позицию бегунка слайдера?сделай какой-нибудь класс наследуемый от монобихейвора, сделай в нем метод типа public void OnSliderValueChange(float value). название метода похуй. тогда если ты слайдеру сунеш геймобжект с этим приклепленным компонентом и выбери этот метод сверху. теперь когда значение слайдера будет менятся то будет вызыватся тот метод и туда соваться значение слайдера.ты бы лучше в треде вопросы задавал конкретные, а не ныл что хуйня-говно
>>482903> сделай какой-нибудь класс наследуемый от монобихейвора, сделай в нем метод типа public void OnSliderValueChange(float value)...Спасибо за совет. Попробую. Но уже чуть позже, я уже на sketchware пилю сижу приложение. А за совет спасибо.> .... теперь когда значение слайдера будет менятся то будет вызыватся тот метод и туда соваться значение слайдера.Вот так я и педставлял примерно. Но я думал что необходимо событие change ловить в самом слайдере. А не создавать класс с наследованием от слайдера.> ты бы лучше в треде вопросы задавал конкретные, а не ныл что хуйня-говноДа стрёмно просто как-то. Вопрос ведь ламерский и я сам это осознаю. Тут ведь все уверенные пользователи unity, a я салага. Вот и очконул.
Сука блять, два дня бил стены головой, пытаясь понять с какого хуинского мой карактер контроллер не двигается в билде, но в едиторе все норм.Путям копания в говнах интернета удалось установить, что это изза того что я выключил всинк.Где-то под капотом хуюнити, все мои Time.deltatime операции делались так быстро, что были практички равны нулю. Пришлось на старте игры захардкодить фреймрейт в 60, и теперь в билде что с всинком, что без, все работаит.Юнитиребенок познает мир короче.
>>481140>ThreadPool. кстати о нем. у меня когда он создает треды юнити неожиданно начинает делать что-то под капотом и фризит. в профайлере интернал говно всякое. вот тут в какую сторону смотреть я даже не знаю.>>482913>Вот так я и педставлял примерно. Но я думал что необходимо событие change ловить в самом слайдере. А не создавать класс с наследованием от слайдера.но наследоваться от слайдера и не надо. наследоваться надо от монобихейвора чтобы была возможность класс прилепить на геймобжект. юнити там потом само хитро смотрит через рефлексию есть ли подходящий по сигнатуре метод, когда ты слайдеру сунеш геймобжект и компонент. и если есть то предлагает тебе его. можно конечно наследоваться от слайдера и делать так, но нахуй оно надо если у юнити такая клевая фича с делегатами уже есть. хотя был тут один интересный человек которому не нравилось как там кнопка работает.эти делегаты можно и через код делать с помощью Slider.onValueChanged.AddListener. кстати у юнити UI опенсорсный https://bitbucket.org/Unity-Technologies/ui можешь почитать, если интересно. >Да стрёмно просто как-то. Вопрос ведь ламерский и я сам это осознаю. Тут ведь все уверенные пользователи unity, a я салага. Вот и очконул.да как бы весь тред для того чтобы задавать тупые вопросы. и иногда хвастаться достижениями.задавать тупые вопросы и отвечать на них важно. иногда не ты один не знаешь ответ на вопрос, но другим просто не так надо как тебе.>>482916лол даже интересно стало в каких кондициях ты такие результаты получил. я делал всякую хуйню, но такой не видел.
>>482918>лол даже интересно стало в каких кондициях ты такие результаты получил. Я пытался заставить персонажа не двигаться, пока он полностью не повернется в сторону движения. Поэтому ввел условие, что пока персонаж не повернется, скорость равна нулю (в билде персонаж поворачивался кстати, но не двигался).Я не знаю, что конкретно ломалось, потому что я новичок и говнокодер, пизжущий код с unity answers.
>>482927Мораль токова короче - изменение/отключение vsync в quality settings (а так же low/meduim quality в билде по дефолту) может повилять на ваши вычисления с deltatime.
Какого хуя ваш лучший в мире энжин втихушку сбрасывает флажок что текстура читаема с CPU из параметров импорта когда билдишь под ведродид? Говно ёбаное, пол-дня.
>>483067Ага. Мне надо было вытащить маску из альфа-канал с 3-ого MIP'а . Пришлось вместо этого рендерить в текстуру, делать ReadPixels и так читать. Буквально тащить через анал.
>>483072> не закешировать статически что тебе надо при билдеили> генерировать мипы динамически на ебаной мабиле, а потом их вытаскивать на процКакой-т пиздец, я блять даже не знаю что хуже, я бы с тобой рядом в метро не сел.
>>483073Этосамое, текстура как бы импортируется и у ней уже мипы все посчитаны. И мне как то не очень интересно тратить время на прикручивание вытаскивалки этой маски в ScriptableObject какой нибудь, всё через анальный юнитевский папйплайн. Но, блядь, предупредить могли бы всё равно.Алсо упражнение: прочитай-как мне спрайт из Asset Bundle.
>>483074Теперь я знаю в лицо того, кто ебёт мне батарейку на самом деле нет, у меня ипхоне. Пиздец сложно вытаскивалку маски перенести в папочку Editor. Просто в ахуе, просто.
>>483075Ага. Потому что её потом надо встраивать в билд. И не говори мне что держать копию текстурки в оперативке - это прямо таки невозможный расход ресурсов и получение byte[] два раза за всю сессию из этой копии и такой же предрасчитанной чем то отличается, ага.
Сап, юнаны.Есть точка А. Как найти точку Б, зная расстояние между ними и угол? Наверное вопрос из школьной программы матана. Алсо можно ли найти угол между точками относительно камеры? (Например на пике от А до Б угол ~125%)
>>483226ну ты и поставил вопросы. направление = new Vector2(Mathf.Cos(угол Mathf.PI / 180), Mathf.Sin(угол Mathf.PI / 180))угол между точками относительно камеры - переведи нужное в пространство камеры и найди его. https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html
>>483226>Как найти точку Б, зная расстояние между ними и угол?Vector3.MoveTowards(Quaternion.AngleAxis(UGOL, Vector3.up) Vector3.forward DLINA);
Котаны, подключил AdMob, но столкнулся с одной проблемой. Когда показываю "interstitial" рекламу, то игра ставится на паузу. Можно как-то этого избежать? Мне нужно, чтобы игра продолжала работать.
>>482748>>482767Какую либу?await завезли в 4.5 .Net, Unity по умолчанию 2.0 subsetВ настройках Player смени на 4.6
>>483493>Какую либу?WebSocketSharpТам дедло в другом было, обжект диспосед ексэпшон,не захотелось ебаться дальше.
>>481026 (OP)Заинтересовался AR но появилось несколько вопросов: 1) Я могу сделать рейкаст от экрана до отрисованого объекта? Например нажал на отрисованую кнопку/объект и что-то произошло2) Я видел варианты когда отрисованый объект крепится к рисунку на листочке или к игральной карте есть ли возможность крепить объект к любой ближайшей плоскости (игральная карта, тетрадь т.д.) и брать информацию об угле наклона объекта, его координаты етц.3) Планирую работать с ведром, есть 2 кроссплатформенных сдк(ведро,иОС) - vuforia и 8 wall, и чисто на ведро ARCore, что лучше?4) Есть ли вообще смысл пилить что-то на AR?
>>483579>корутины вызываются каждый фреймЧТООни обрабатываются каждый фрейм, вызываются один раз при StartCoruotinehttps://docs.unity3d.com/Manual/BestPracticeUnderstandingPerformanceInUnity3.html>Coroutines are best employed when dealing with long asynchronous operations, such as waiting for HTTP transfers, Asset loads or file I/O to complete.
>>483559Ого, спасибо большое!>>483560Изначально я не думал вообще об создании игр такого жанра, однако в АР вижу реализацию примерно такой:Есть виртуальный бордель Можно грабить корованы который отображается на любой плоскости, например стол здание можно строить, естественно в верх, нужно поднимать кэш, следить за путанами етц, во время игры можно за всем наблюдать крыша-стены определенного этажа становятся прозрачными Джва года жду такую игру
>>483611>Есть виртуальный бордельЭтот анон всё делает правильно!AR - ебёшь Hatsune Miku у себя на кухнеVR - то же самое, но в её дворцеНа ютьюбе есть охуенный видос с ней в AR. Если не забуду, притащу ссылку сегодня.
>>483579>async Другой трэд, из которого данные таскать через жопуПоэтому яскозал юнети-поги придумали корутину
>>483645>юнети-поги придумали корутину Представляю, как большинство будет писать адскую смесь из корутин и ооп
Мне кажется или современный мейнстрим игорь недостаточно ебанутый на всю голову?Славо погу есть юнети и с ней возможность всё исправить!
Мамка даёт денег на Unety Pro до совершеннолетия.Думаю дальше юзать Пёрзонал, а бабло спустить на вхор.Какии подводные?
>>483643Жду видос.Алсо я бордель скорее, примерно, в вот таком виде представлял себе. прикрилХотя если сможешь, распиши, пожалуйста, более подробно как это взаимодействие должно происходить мне действительно интерестно>AR - ебёшь Hatsune Miku у себя на кухне
>>483702AR - как название говорит, расширенная реальность.То есть кухня твоя, а к ней добавлены игровые ништяки с привязкой к местности. В тех же очках твои кагбэ руки (в юнети они тоже game object, которые работают в связке rigid body/collider, а значит, двигая их, можно взаимодействовать с прочими объектами на сцене. Толкнуть няшу, чтобы та ёбнулась на пол. Тут триггерится анимация, что она плачет. Если ее в течении 10 сек не пожалеть (погладить по голове теми же VR-руками, она переключится в rogue mode. Но можно теми же "руками" взять фаллоиммитатор и уебать ей им.В конце концовэто твои больные фонтазии!
Как сделать один огромный террейн, который бы подгружался по мере движения игрока, например как в Skyrim, Oblivion, Morrowind, WoW?
>>483824>Как сделать один огромный террейн, который бы подгружался по мере движения игрокатормозящим как в субнаутике
Мамкин игродел иттХочу грузить ассеты в игру с сервака. Могу в SceneManager.LoadScene("sex_slave_burning");Но нужно с сервака. Поэтому вопросы:- где быстро и дёшево захостить без СМС? Смогу в пхп- как вам идея: ключ = имя файла. После загрузки уничтожается, значит ключ одноразовый
>>483824>Как сделать один огромный террейнProcedural terrain generationИли асинхронно подгружать и дропать ассеты
>>483851>где быстро и дёшево захостить без СМС?Где угодно>как вам идея: ключ = имя файлаСпиздил идею.
Всё утро искал причину проблемы с перемещением персонажа, видимых ошибок в коде нет, отдельные тесты проходят нормально, дебагинфа в норме, но в одной определённой ситуации навмеш агент просто переставал перемещаться.В конце концов подвигал маркер дестинейшена - идёт нормально. Вернул в старую позицию - идёт нормально.Ощущения будто жигули ремонтируешь.
>>483874Нахуя писать свой движок, если можно просто не юзать парашу для конченых даунов навмеш, встроенный неткод и т.д., но юзать все остальное, что сделано заебися?
>>483710>>483721>>483712>>483717>>483724Прочитал/посмотрел всё это:1) Могу сказать что на видосах хуита которую без контроллеров хрен реализуешь По поводу скана рук могу лишь сказать то что это вполне возможно но не у каждого в кармане gtx1337 i13 228gb ram2) По поводу взаимодействия, есть два стула: нажатие на экран, нажатие на кнопки-триггеры в пространстве1 вариант будет играться как кот-том, думаю понятно.2 вариант будет выглядеть примерно так: https://www.youtube.com/watch?v=Fgd21lbhikUЕсть ещё вариант когда ты подходишь к персонажу и что-то происходит>>483544 >>483702 анон
Аноны, помогите пожалуйста, только ссаными тряпками не бросайтесьхочу написать игру на юнити, но вообще не понимаю код, работу с программами и прочее, в школе где я учился информатика была никакующая, следовательно у меня даже базы нет. с чего начать изучение? книги по конкретному языку почитать? или для меня уже всё проебано и мне в геймдеве делать нехуй?пока только сидел рисовал спрайты для своей хуйни, но к юнити не прикасался
>>4839191. Формулируешь задачу.2. Разбиваешь задачу на мелкие этапы.3. Пишешь реализации мелких этапов.4. ????????5. Выгода.
>>483907>Могу сказать что на видосах хуита которую без контроллеров хрен реализуешь По поводу скана рук могу лишь сказатьКонтроллеры типа тех, что я сделалhttps://drive.google.com/file/d/0B5eCY5SALqIZdWNkbkNUNi1JUGs/view?usp=drivesdkhttps://drive.google.com/file/d/0B5eCY5SALqIZLWVFaGR6SllLOFk/view?usp=drivesdkИз этих датчиков можно и перчатку сделать в писе ковыряться
>>483907И в продолжение моего постаВ AR сам боженька как бы велел перемещаться по реальной местности, видя ее. Программе не надо "рисовать" твой аватар ни на кухне, ни в комнате. Но надо трейсить твои перемещения, чтобы виртуальные объекты, созданные в игре, видели и реагировали на тебя.Грубо говоря, чтобы Мику поворачивалась точно на тебя и шугалась, если почувствует приближение твоих волосатых лап. Контроллеры на тебе передадут соответствующие данные твоему двойнику-невидимке на сцене в игре
>>483866>Где угодноНошёл bluehost.comс чатиком, блэть, о насучных проблемах, блэтьЕсть в раше чёнить дороже $2.95 cykablat!?Не хочу плотить так мало блэть
>>483866>>где быстро и дёшево захостить без СМС?>Где угодноПоддерживают asp core 2 блэтЭто охуительно или лажа?Мне нужно чисто по ссылке с ключом раздавать контент донатам и дропать файлики после успешного скачивания
>>483851>- как вам идея: ключ = имя файла. После загрузки уничтожается, значит ключ одноразовыйИ что это даст?
>>484022МОНЕТАРИЗАЦИЯОНЕТАРИЗАЦИЯтолько чоткие донаты получат по своему именованому файлу, задав комбинацию = имя файла для загрузки
Необучаемые, adobe наебал флешеров и все их наработки нахуй. Не, давайте еще раз выберем закрытый инструмент с ебнутой лицухой, что ядро движка может предоставлять только владелец.
>>484166Кого Adobe наебал, валенок ты тупорылый? Adobe завтавили убить флеш потому как все главные игроки заявили о том, что больше не будут поддерживать это дырявое говно.Лучше бы сидел в своей глухой пещере и не квакал
Посоны тут это, аналог блюпринтов на юнити вышел.Bolt предоставляет полный визуальный сценарий для Unity, позволяя художникам, дизайнерам и программистам создавать механику игрового процесса и интерактивные системы без написания одной строки кода.
>>484166А в чём сложность будет перекатиться на что-то другое?>>484204>программистамПо-моему, как раз проще написать немного кода, чем строить и настраивать огромный граф
>>484204Он давно есть, на сколько я знаю, в нём есть проблема: если девы закинут проект и не дай бог у вас половина игры на болте сделана тогда вам придётся навсегда остаться на текущей версии юнети
>>484204>Посоны тут это, аналог блюпринтов на юнити вышел.Привет из 2010Playmaker существует несколько лет.
>>484220Кстати забыл сказать тебе что твой контроллер охуеннен, правда я не представляю каким образом сделать перчатку, в смысле чтобы любой человек мог скачать твоё приложение и уже иметь возможность полноценно игратьАлсо я здесь пока что буду сидеть, буду плодить на ведро мини игры, для портфеля.
>>484226Перчатки, ясное дело, на коленке не сделаешь.Один датчик стоит 13 долларов, но он охуителен по качеству и скорости реакции. Так не просто гироскоп+акселорометр+компас, но и кастомный процессор, который делает так называемую sensor fusion. То есть по алгоритмам вычисляет из потоков данных всех трех собственно абсолютное положение в виде кватерниона. Это значение передаётся соответствующей кости.Для перчатки надо по датчику на фалангу в идеале. Но можно и упростить.Я больше думал о создании кастомных анимаций, которых просто нет
>>484235Ни разу не экранированые. Медный лакированный 0.3мм.2 питание2 данныеЭти обжиеИ по одному на "chip select"
Хочу запилить свою библиотеку с всякими инструментами для кодинга, Так, чтобы она лежала в отдельном проекте и можно было бы на неё ссылаться из разных проектов, желательно с возможностью изменения исходников библиотеки из этих самых сторонних проектов.Только вот не получается ничего. Почти. Даже если я в иде-шке подключаю эту мою либу, юнька всё равно говорит, что не видит либы. Всё потому что у неё свой компилятор. Пока придумано два варианта. Можно копировать дллку либы в юнити проект, но это херовый вариант так как после кажлого изменения либы нужно заново собирать и копировать эту дллку. Ещё можно делать символическую ссылку на дллку и тогда её вручную копировать уже не придётся. Но это тоже херовый и гдючный вариант.Короче ваши идеи.
>>484257>юнька всё равно говорит, что не видит либыНу первая строчка в гугле же. Закинь либу в ассеты.
>>484265Так получится что библиотека должна будет знать о проектах, которым она нужна, а это не правильно.
>>484257Я подобную задачу решил через симлинки. Просто, быстро, никаких глюков. Из минусов, если поменялись пути то надо будет эти симлинки править, и так просто на другой машине не развернёшь проект.
Как я и писал, вариант этот херовый, хоть и рабочий. Хотелось бы что-нибудь автоматическое чтобы изменил либу, нажал плей в юнити и оно само там перекомпилило, позысовывало дллки куда надо.
>>484433По идее автоматом рекомпиляция ассембли происходит, если Юнити замечает, что используемый скрипты изменились. Скрипты должны быть в ассетах и прикручены к чему-то
>>484204Ну заебись, теперь художникам не нужны кодеры. Лучше бы сделали такой инструмент, чтобы кодерам не нужны были художники. Например нейрочеть, которая генерирует модели и арты на основе текстового описания.
А вы занимаетесь кодоблудием в Unity? Используете инъекцию зависимостей, юнит-тесты и прочую лабуду? Или как разработчик Celeste, хуярите по 4к строк кода в одном классе?
>>484554иногда пишу юнит-тесты, иногда DI, иногда хуярю по много тысяч срок в одном классе. надо же всё делать по мере надобности. а почему ты спрашиваешь?
>>484554Пол года на юнити. Про инъекцию только теорию смотрел. В текущем проекте средней величины вполне и без неё всё норм. Как и без тестов. Самый большой класс - это 1к строк, но он внутри разделён на 3 части. А так стараюсь дробить логику на довольно мелкие и, по возможности, независимые компоненты.
>>484550Да на самом деле не особо. У нас на работе 3 проекта на одном ядре. Пердолинг возникает только когда кто-то выпиливает в один из проектов какую-нибудь фичу, а потом все вдруг решают, что неплохо бы её в ядре иметь.
Чет меня содаси запутал совсем.Есть код if (a== null || a != null && b != c)Я правильно понимаю что сначала выполнится a != null && b != c а потом результат сравнится с a== null?А то кодаси мне говорит что я дурак данное выражение будет всегда тру.
>>484613Когда открываешь скрипт, пишешь переменную, например Vector3, он её не видит, не автозаполняет, сама vector3 не подсвечивается зеленым в воркспейсе как и class : monobehaviour. Также из других скриптов нельзя сделать getcomponent<class>, его там просто нет. Не знаю, с чем это связано.
Посоветуйте что мне делать, есть пустое пространство по котором будут летать корабли, для целеуказания прибытия я использую Physics.Raycast и примитив plane что бы точка была на одной высоте, но так как plane я не буду использовать, я пробовал сделать чтобы без Raycast но как видно по вебм таргет появляется в конце луча, я не знаю какие мне делать вычисления чтобы таргет был на нужной высоте а не в конце луча, была мысль сделать просто gameobject его растянуть на всю ширину и использовать Raycast, но карта будет большая и это наверное будет не оптимально.
>>484661>>484659А, понял, тебе нужно получить точку где Ray соприкасается с указанным plane?В таком случае, у plane должен быть Collider, дабы рейкаст вернул результат. Представь себе plane - твоя посадочная площадка, у нее полюбому коллайдер будет. Вот ты рейкастишь простым лучом в нужно направлении, и получаешь резулльтат, который либо null (нет столкновений), либо возвращает RayCastHit с данным. Вот на основе этих данных что угодно твори (если нуль - то нихуя)
>>484659точку соприкосновения луча и плоскости что-ли захотел?на http://wiki.unity3d.com/index.php/3d_Math_functionsтам вроде была хуйня для нахождения этого.
Чому ваш движок проёбывает нахуй цвета? Ебанём френель земле, небу и даже Аллаху, но ручку скрутить это уебанство разработчику не дадим. Жопа сгорела просто.https://forum.unity.com/threads/absolutely-rough-non-smooth-material-with-standard-shader.294409/
>>484666>А, понял, тебе нужно получить точку где Ray соприкасается с указанным plane?Это у меня уже сделано, но меня интересует возможно ли это сделать без Raycast и plane, как то разработчики делают чтобы в космических стратегиях появлялся таргет на нужной высоте и месте но там нету никакого plane, просто пустое пространство.
>>484669>как то разработчики делают чтобы в космических стратегиях появлялся таргет на нужной высотеНу так а в чем дело? Точку относительно чего вычислять будем, знаешь? К примеру, корабль игрока - задаешь вектор направления, задаешь длину и пожалуйста, вычисляешь конец вектора относительно координат игрока.
>>484670А с металлом че делать? В жопу себе засунуть? Почему в уече френель в PBR настраивается, а в этом поделии нихуя - жрите что дают?
>>484674Походу надо править исходники стандартного шейдера, других путей нет. Влом - пиздец, пока покрасил roughness чуть менее белым - серый блик, вымывающий цвета, стал поменьше, поклал хуй.
>>484672Относительно камеры, только я не знаю какие нужны вычисления делать, чтобы можно было делать как на пикче.
>>484681Сам дурак, он же сказал:> но так как plane я не буду использоватьЯ вообще не понимаю его проблему. Есть начало вектора (поз. камеры), есть направление (normalized rotation), есть желаемая длина - проецируй ни хочу.
>>484682Plane как объект в мире он использовать не хочет. а не как абстрактную хуйню выражаемую двумя векторами.
А у кого тут юнити - основная работа? Что у вас по зарплатам в конторе? Интересует вот что:ГородРазмер конторы/количество юнити кодеровСкилл-зп
Как понять что не дает Марио пройти дальше? Просто появляется невидимая хрень перед ним в какой-то момент, прыжком решается конечно, но что-то не очень.На Марио висит обычный 2D Box Collider, на граунде Tilemap Collider, если повесить тоже 2D Box Collier такая же проблема.Ну и приложу строчки кода, который отвечают за движение, может в них проблема. Я пару дней всего в Юнити, если что. Спасибо.
>>484882Во-первых, сделай combined collider for Tilemap, у тебя сейчас каждая тайле по коллайдеру на харю.Во-вторых, вангую, что логика гравитации немного опускает трубочиста на пару пикселей вниз и он влепляется в коллайдер пола, прыжок это фиксит, конечно.Вообще, используй двойной вид - Game Scene и Editor Scene вместе, что бы увидеть что там
>>484885Меня тоже смутило, то что там на каждый блок идет отдельный коллайдер, но как сделать его комбинированным так и не нашел. Да и сейчас гугл по запросу combined collider for Tilemap ничего не выдает. Не подскажешь?И сейчас пытаюсь настроить физику. Первое что пришло в голову, так это повесить материал на коллайдер земли со значением Boiciness 0.0001, чтобы 100% Марио вылетал из коллайдера земли, только теперь Марио колбасит немного, если продолжать сталкиваться с блоком сбоку. Буду думать над этим.
>>484894Держу в курсе. Я нашел как сделать комбинированный коллайдер. Это оказалось очень легко.>>484885>>484897Спасибо!
>>484895Да как-то не доверяю я тому, какие зп указаны на хх. Хочется узнать именно от реальных анонов.
>>4847035 лет назадДС3 кодеравоннаби-сениор - 120С тех пор ушел в ML, ибо ну его нахуй парашкинский гейдев.
>>484913>>484918Если ты имел ввиду этот мл, то прими моё увожение. Тоже давно интересует тема, но чёта сложна там усё.
>>484938Ты настолько тупой, что даже не увидел выделение жирным буквы "е"? Мужеложство, а не мужеложество.
Наткнулся на довольно простой и годный курс (бесплатен) для совсем зеленых. Вроде как просто перевод офф. туториалов, но если для начала, то вроде неплохой, для изучения интерфейса и базовых элементов в юнити.https://www.intuit.ru/studies/courses/3487/729/infoПретендует ли на добавление в шапку?
Парни, вот набросал я тут прототип тауэр дефенса с разными видами юнитов, и с их апгрейдами и с разными видами противников.Вам показывать стыдно, потому как я не художник и у меня просто кубики стреляют по шарикам, но не суть. Можно ли такое показывать при приёме на работу? Сознание не потеряют от смеха? Или там надо чтоб графон, музон, постобработка и Аллах?
>>484989Да он имел ввиду прототипы из JS, хак для реюзабельности кода к ООП имеющий мало отношения.Непонятно как в его тупой башке префабы с этим смешались.
>>484987что до слез то? мне на полном серьёзе интересно что за хуйню ты имел в виду.>>485000полагаю это зависит от того на кого ты собрался устраиваться. на погромиста или артиста.
>>485007> полагаю это зависит от того на кого ты собрался устраиваться. на погромиста или артистаНа погромиста, конечно же. Желательно на юньке, но вряд ли в нашем Зажопинске на ней что-то делают, так что пробую куда-нибудь пристроить свою задницу удалённо. Так что кужно хоть какое-нибудь обоссанное портфолио, которое потихоньку клепаю.
>>485009ебанул бы чего ещё помимо тавер дефенса. это же что-то уровня того что в квадратную дырку кубик сунул, а в круглую шарик.>>485018а как же фан?
>>485018Хуй знает что дрочить на софтварном кодерстве. Я писал несколько хуёвин плюс курсачи и диплом, но писал их для себя. Несколько утилит для экономии времени.>>485019> ебанул бы чего ещё помимо тавер дефенсаЕсть ещё тетрис, змейка, сапёр и ещё одна хуерга, которую даже не знаю как описать. Экспериментировал с матаном, в результате есть проект, который просто генерирует разное говно. Интересно это только мне.Суть не в том что чего-то не хватает, меня интересует нужно ли покупать/воровать/рисовать модельки/текстурки для прототипов или же всем похуй.
>>485024И то верно.Ладно, буду думать что ещё пиздануть.Что там обычно в качестве тестового задания спрашивают? Чтоб, как говорится, два раза не вставать.
>>485037Хуёво знаю. Разве что MVC могу вспомнить, адаптер, медиатор, фабрику, обсёрвера и декоратора. Ну и синглтон, понятное дело.Надо бы действительно вспомнить это дело, а то с универа уже больше 10-ти лет прошло.
>>483287броу, у меня есть парочка вопросов по поводу Адмоба. Был бы рад, если поможешь с ответами. Не оставишь почту/телеграм для связи?
На автомобиле висит риалтайм рефлекшн проба. Как заставить её не влиять на окружение? Размер бокса в 0 поставил, всё равно объекты светятся, об которые бьёшься.
Есть 4 точки на навмеше (по углам кладбища)Нужно рандомно генерировать позицию для спавна зомбака, но не ближе, чем столько-то метров от персачичас зомбак тупа спавниться в одной точке - у дальних ворот, и чапает за нами
>>485089> Нужно рандомно генерировать позицию для спавна зомбака, но не ближе, чем столько-то метров от персаИ в чём проблема?
>>485089Есть 4 точкиЕсть точка игрока.Вычисляешь длину вектора от игрока до каждой точкиНаходишь самую удаленную и генерируешь матрицу и можешь там свой любимый рендомный алгоритм забабахать для выбора точки
>>485099>Совсем-совсем рендомную?тут еще будет хуйня с тем, что зомбак будет спавниться и на памятниках
Короче, простой вариант: создаешь спавн-поинты где нужно, на пустых местах, при загрузке левела популируешь список в каком-нибдуь йоба GameManager и в процессе спавна просто проверяешь координаты точки against координаты игрока и спавнишь там, где расстояние удовлетваряет.Если нужен вообще охуенный рендом, не привязанный к спавн-поинтам,то будет затратно. Нужно будет:а) найти удаленную точкуб) кастнуть коллайдер размером с моба, дабы убедиться что не спавним его внутри чего-тос) спавнитьЕсли с первого раза получилось то мб и в 16мс уложимся если мобов немного. А если 20-30? А если с первого раза нихуя? Каждый кас тбудет пиздец
Кстати, снёс срарую юнети, установил 2017.3 с HomodevelopТеперь каждый скрипт открывает в новом окне блять
При правильном ведении хозяйства, могу каждый месяц тратить по 500 на то, чтобы керил быдлокодил мою игру.Дискас.
>>485113программист юнити, это не вася из бирюлюво, это штучный и дорогой товар, ему ваши предложения просто оскорбительны.
>>485117По делу-то есть что скозать?Я всегда думал, что только художнеки - обидчивые копризные пидарасы. Внезапно и мамкины погромисты туда жеИли дело в цине?
>>485113500 чего?В день?Что там у тебя за игра, могу БЫДЛОкодить, ~8 часов в день, результат будет прямо пропор. оплате.
Анон, есть примитив - куб или пирамида. Как отображать только их ребра и больше ничего? При этом, чтобы были видны все, в том числе и ребра задней грани. Каркас модели.
>>485121Ты говори что именно тебе надо. А то вдруг ты там пилишь очередного убийцу фоллаута, за которого никто за пятихатку даже яйца не почешет.
>>485130Какая тебе хуй разница - он платит за быдлокодинг - сиди да пили. Код есть, процесс идет. Ему сдавать, а не тебе.
Быдлокоданы, есть массив объектов (40 штук), у объектов есть публичный bool, который на каждом выставлен в false.Надо взять 10 рандомных объектов из массива и выставить там этот самый bool в true.Казалось бы - бери Random.Range от ноля до длины массива и ебошь 10 раз. Но вдруг рандом несколько раз выдаст одинаковое число.Как максимально трушно решить эту задачу?
>>485151var x = new Random();i = x.Next(blah); // первая генерацияint c = 0;while (array.value != true && c < 10){array.value = true;i = x.Next(blah); //custom shuffle if you wantc++}
>>485151Вообще, подумай еще, а правда ли всегда ли массиве будут как минимум 10 с falseИ даже если будут - чем их меньше, тем хуже алгоритм.Правильнее да, выделять лист, но в зависимости от частоты - грязи будет много>>485166У листоеба памяти дохуя, каждый раз аллокацию делать. Он любит, когда при игре в 60+FPS GC начинает УБОРОЧКУ
>>485162Но вообще да, грамотное ООП-решение - это завести у объекта, который перебирает коллекцию метод, в котором будет перебираться набор уникальных рандомных значений. Внутри этого метода будет своя коллекция (ака список).
>>485162Если есть хотя бы 0.0000001% вероятности повторения того же значенияЯ про это. Поэтому только рандомный выбор из оставшихся из труъ
>>485168> а правда ли всегда ли массиве будут как минимум 10 с falseДа, всегда. Или 10 или больше, но никак не меньше.
>>485167А хули ты будешь делать?Ок, допустим у тебя есть правильно выделенный array, contiguous, 40 рыл. Ты генеришь рендом от 0 до макс. границы в lenght и добавляешь объект в отдельный List<>. А дальше что? Если выпадет опять 10, нужно проверять на Contains и в случае с List - это линейный поиск. И даже если это мелочь, у тебя все-равно будет цикл аналогичен while{} потому как проверка на Contains.Ок, возьмем List как начальный массив и HashSet. Тут казалось бы проще, можно роллить что угодно, из List удаляешь, в hashSet хуячишь, но для каждой операции ту будешь аллокатить новый лист и потом тебе нужно будет переобавлять их обратно в начаkьный List из HashSet - эти операци тоже недешевыты - хуй.
Посоны, а если я просто таким вот макаром перетасую массив и возьму первые 10 объектов? Это сильно костыльно или норм?
>>485173Ты не можешь в логеку?Берётся копия одного списка, суётся в список. Рандом указывает на кондедата. Тот копируется и из списка изымается. След.рандом проводится с оставшимися
>>485179>>485181Тогда сделаю список-клон, буду в нём рандомно тыкать и удалять того, кто выпал.Всем спасибо.
>>485180>Берётся копия одного списка, суётся в список.99 ТЫРАБАЙТ ПАМЯТИ@5ms Garиage Collection every 1000 framesЧистая эссенция быдлокодинга.
>>485129можешь скачать стандартные шейдоры в https://unity3d.com/ru/get-unity/download/archive там в DefaultResourcesExtra\VR\Shaders есть SpatialMappingWireframe.shader допили его чуть напильником.
>>485206Иди читай что GC делаетс frametime и framepacing в UnityИ лучше не возвращайся, тут и так достаточно долбоебов по типу "ЮНИТИ ДЕРЬМО ТОРМОЗНУТОЕ ВСЕ ТОРМОЗИТ РЯЯЯ"
Кстати, я правильно понял что если мне нужен бесконечный цикл для спавна врагов, то его надо делать в корутине? Потому что похоже, что если провернуть это в апдейте, то всё к хуям зависнет, потому что оно не отрисует следующий кадр пока не выполнит этот самый цикл (то есть никогда).
>>485231Нет.float time, elapsed;void Update() { if ((elapsed += Time.deltaTime) >= time) { elapsed -= time; DoSomething(); }}>>485240Не люблю корутины. Лучше обойтись без них, если можно>Update лучше не засорять лолщто. если у тебя в update() делает больше одной вещи, ты что-то делаешь не так
>>485415Просят пройти по списку. Если используешь foreach, то тебя обоссывают и выгоняют, потому что НИАПТИМИЗИРАВАНА ПЛАХОЙ КОД ПЛАХОЙ.
>>485298>>Update лучше не засорять >лолщто. если у тебя в update() делает больше одной вещи, ты что-то делаешь не такЖопочтец? Жопочтец!Я и говорю "не засорять"
>>485151>Как максимально трушно решить эту задачу?Гляжу в дотнете такое ООП-безумие, что даже для рандома есть свой класс. Я заглянул в референс, а там вот какое есть:>NextBytes(Byte[]) Заполняет элементы указанного массива байтов случайными числами.Так вот тебе и трушное (байтоёбское) решение: генерируй массив байтов нужной тебе длины (равной длине массива твоих объектов) получай случайное заполнение байтами, проверяй на соответствие маске, маска должна содержать столько нулей, сколько тебе нужно. И наконец, накладывай кучкой этот массив на булевое свойство твоих объектов, где очевидно 1 = тру, 0 = нетру.
>>485231Никаких циклов внутри игры, основанной на главном цикле. Если тебе нужны циклические действия - цикл у тебя уже есть. Переформатируй своё мышление под эту парадигму. Тебе нужен бесконечный спавн врагов? Ты делаешь функцию, которая добавляет одного врага, если прошло N секунд времени. Чтобы считать секунды, твоя функция принимает параметром дельту времени. Это не зависит от движка. Это везде так, где используется главный цикл.
>>485464Видимо он запутался на каком-то из этапов:1. Resources.Load() десериализует объект из префаба, но не добавляет его на сцену (я так понимаю повторные вызовы возвращают одну и ту же ссылку, объект хранится где-то в кеше).2. Instantiate() клонирует существующий объект и добавляет его на сцену.
>>485467>Это везде так, где используется главный цикл. Эмм, ты из криокамеры пишешь? Просто в движках и в юнити в частности - давно уже джоп-пулы, гатхер-скаттер, системы, вотэто вот все и single-main-loop - прямой путь к core i7 в минимальных требованиях и отсосу с портом на мобилки.
>>485298Лучше так>void Update() { if ((elapsed += Time.deltaTime) >= time) { elapsed -= time; SendMessage("OnTimer"); }}и сохранить как компонент. Тогда можно добавить таймер к любому объекту просто добавив компонент
>>485469Ты долбоёб? Он всё правильно написал. Твой код в юнити однопоточный и будет таким еще лет 30, потому что многопоточным кодом 99% разработчиков отстрелят себе ноги. На другие ядра юнити кладет физику, скиннинг, партиклы и прочую парашу, которую кодишь не ты.
>>485480>многопоточным кодом 99% разработчиков отстрелят себе ногиА ты у нас такой особенный из 1%? Ну-ка покажи свою многопоточную логику на правильном движке твоего выбора.