Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности! Прошлый тред: >>456736 (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=gnkBKtnYeb8https://www.youtube.com/watch?v=qKcEi-rs9swThe Unity Awards 2017 Winners: https://www.youtube.com/watch?v=8--xPOlY7kUMade With Unity 2D Games Showreel 2017: https://www.youtube.com/watch?v=NMUr2yNALhUUnite Austin 2017 - Writing High-Performance C# Scripts:https://www.youtube.com/watch?v=tGmnZdY5Y-E&t=1686s--------------------------------------------------------------На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program, Hearhstone, Niva, yni ユニゲーム и многие другие, кроме этого, на Unity сейчас активно разрабатываются множество образовательных проектов, а также и проектов в дополненной реальности, использующих математическое моелирование. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.FAQ- Какие у Unity сильные стороны?- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.- Какие у Unity слабые стороны?- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.- На каких языках я могу писать скрипты для Unity?- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.- Для каких жанров подходит Unity?- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft/yni-подобные песочницы.- На каких платформах работают созданные с помощью Unity игры?- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.- Что такое стартер киты?- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).- Бесплатен ли Unity?- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.Обучение - ЯзыкИтак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:https://dotnetcademy.net/CSharp/Beginnerили в текстовом туториале здесь:https://www.tutorialspoint.com/csharp/csharp_quick_guide.htmДля изучения основ UnityScript выучи вначале основы JavaScript:https://learn.javascript.ru/Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScriptПомни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.- ДвижокЕсли ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.http://www.ozon.ru/context/detail/id/34792570/Также посмотри на видеотуториалы с официального сайта:https://unity3d.com/learn/tutorialsЕсли же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:http://catlikecoding.com/unity/tutorials/Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-startedЭто будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unityВ нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных. Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Ты не уверен в себе только потому что не знаешь как делать игры в Юнити!
Привет, помогите, у меня почему то не анимируется перс.Cоздаю анимацию, кликаю чтоб она открылась в animation, жму запись, щелкаю на полосу времени, выбираю ногу у перса и двигаю чуть чуть, типо начальное положение, потом снова на полосу времени, двигаю ногу. При нажатии на плей анимации нету, хотя со всей моделькой целиком это работает. Как челика анимировать? Ключи удалять и заного ставить пытался, с кривыми тоже.
>>461029Создаёшь аниматор, вешаешь его на модель, потом создаёшь анимацию, пихаешь её в аниматор, создаёшь условия.
Sup! Есть массив координат. Как сделать так, чтобы объект плавно перемещался сначала к 1 координате, потом к второй, потом к третьей и т.д.(динамически изменяется кол-во координат)?
>>461039Как вариант - повесить навмешагент и потом agent.destination = points;
>>461041А там разве работает в 2d на спрайтах?
А как куча анимаций персонажа слепляется? Например, есть анимация бега, есть анимация удара. А если мне нужен удар во время бега? Как скомбинировать?
>>461042Да, только навмеш придётся переносить из плоскости XZ в плоскость XY.Но можешь обойтись и без этого. Если есть координата, в которую должен переместиться объект, то пидорь объект в эту сторону (сначала поворачивай, потом transform.Translate), как дошёл до точки — смещай цель из массива.>>461044Blend Trees
>>461044Создать новую анимацию из бега и удара, мб
Эх, как же хочется юничку.
>>461045>>461046Спасибочки :3
>>461039https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%B2%D0%B0%D1%8F_%D0%91%D0%B5%D0%B7%D1%8C%D0%B5 листай вниз пока не увидишь анимации.
>>461055
>>461039Функция которая бы отслеживала достижение каждой новой точки и по оному лерпила новую корутину до следующей точки?
>>461061Да, по достижению первых координат брала бы из массива следующие, и создавала бы опять плавное передвижение>>461055Очень интересно, как вариант, спасибо
>>461061Не обязательно корутину. У меня так мобы бегают через обычный трансформ.транслейтМожет это не сильно правильно, но вроде работает.
>>461039var movementQueue = new Queue<Vector3>();while(movementQueue.Count > 0){ var targetPosition = movementQueue.Dequeue();while(true){transform.MoveToили как там было блядьvar distance = targetPosition - transform.position;if (Mathf.Approximately(distance, 0))break;yield return null;}}
Анончик выручай. Хочу ограничить передвижение по границе камеры и при этом сама камера будет двигаться. Как такое провернуть?
>>461077можешь у Cuphead спиздить
Я с этого поста>>461029, помогите плестушка вся может анимироваться а ноги нет((( на пике видно, что я делаю не так?
>>>461081ТУПОЙ ЮНИТИ БЛ, СКАЧАЛ ДРУГОГО ПЕРСА И ОН НЕ ХОЧЕТ АНИМИРОВАТЬ, ГОВНО ПО ТТОРИАЛУ ДЕЛАЮ А ОНО НЕ РАБОТАЕТ
Есть одна low level API сеть. Она кидается byte[] из штатного NetworkTransport.QueueMessageForSending.Все бы ничего и все заибися, но юневая сеть может принимать не более 64 кб. т.е. буфер у NetworkTransport.Receive не может быть более 65535 байт. Пофиг какой канал ты используешь, хоть по 256 байт свой message порежь, в итоге оно соберется в сообщение, которое придется Recieve, и оно не должно быть больше 65535. Если больше - гроб, гроб, кладбище, пидор. А если вкратце - то, куда приходит жЫрный пакет намертво виснет (найс секурити).Но как же быть с сравнительно большими данными (содержимое инвентаря, диалог с пиздожорчиком и прочее)? "Резать" byte[] на куски? Но как потом пересобирать при получении? Есть ли решения?Гдэч помогач?
>>461099>класть сахар до пакетикаФу блять нахуй таким быть.
>>461100Мне больше интересно где продаются пакетики с псилоцибами.
>>461100С чего ты взял что это сахар?
>>461026 (OP)Хоть бы поменял шапку. Unity Script-то всё.
>>461099во первых нахуя, во вторых зачем? ты там пытаешься войну и мир переслать одним пакетом?
>>461119Скан войны и мира
>>461126В .bmp
>>461127Одним файлом.
>>461126>Скан войны и мира>64 кбНу не надо, ну не стукай.Инвентарь с инфой о 20-30 шмотках одним пакетом если (ибо если уже двумя, то хз как их на том конце собирать) и все, приехали.
>>461130Страшно представить что там за инфа если она не влезает в 64КБ.
>>461130> Инвентарь с инфой о 20-30 шмотках> 64 кбШто? У тебя инфа об одной шмотке занимает 2-3 кб?У меня все разновидности шмоток (42 штуки) суммарно чуть больше полкилобайта занимают. Просто передаёшь их name, по которому они из Resources подтягиваются.
>>461100Это ж не сахар, а d6.
>>461134>Просто передаёшь их name, по которому они из Resources подтягиваются.Неоткуда брать инфу по Name. Сервер читает данные из БД, отсылает клиенту. Клиент, не имея доступа к БД, применяет все присланные данные.Проблема в том, что я выполняю Recieve, получаю заголовок, по которому понимаю что куда применять, и массив, который десериализую в свой тип данных (к примеру, Inventary). Если я буду присылать по одной шмотке, как я пойму когда начался "новый" инвентарь, а когда еще заполняется старый?>"Резать" byte[] на куски? Но как потом пересобирать при получении? Есть ли решения?
>>461099Там для этого есть fragmented канал. Ничего городить не нужно
>>461141> Пофиг какой канал ты используешь> Там для этого есть fragmented каналКук
>>461141>fragmented NIET. Это немного не так работает.От меня улетает сообщение в 10240 б. Максимальный размер пакета у меня, к примеру, 1024 б. Таким образом, сообщение режется на 10 кусков, кидается в получателя. На том конце оно получается, собирается обратно в цельное сообщение, ставится в очередь. Из очереди я его делаю Recieve. Буфер выделяемый на это сообщение не может быть больше 64 кб. Ты можешь свое сообщение хоть на тысячу кусков порезать, но на том конце его соберут и положат в очередь.
>>461143>>461144ну значит никак. Я не экстрасенс, чтобы угадывать что юнитидауны там нагородили, а документации нихуя нету.В этом случае проще всего использовать reliable sequenced или как оно там называется и интерпретировать как поток данных. в этом смысле это будет то же самое, что и TCP т.е. самому нужно форматировать данные.
>>461087Ты бы нервничал поменьше, братишка. Если хочешь заниматься разработкой, такие ситуации будут возникать постоянно, одна за другой годами.
>>461144>64 кбЭто как бы дохуя для одного тика.
https://youtu.be/7AS71A_KvuMПочему бы не вбросить своё говно в юнити-тред, подумал я. И вот оно здесь.
Анон, помоги. Я все еще ебусь с 3д буллет хеллом. Как сделать, что бы камера над игроком двигалась вперед и в тоже время не давала игроку выйти за её пределы. Официальный гайд по космическим пострелушка это не то, там статичный задник.
>>461028Что за аниме?
>>461181https://en.wikipedia.org/wiki/No_Money_(manga)
>>461167Ты молодец :3
>>461178> 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;В предыдущем треде было. Вроде работало.
>>461200Но камера находится в движении, кораблик просто залочится на месте.И это из туториал все того же.
Можно как то с новым навмешем делать модификаторы для какого то определённого агента или хотя бы типа агентов?Например, я хочу создать область, которую избегала бы часть агентов, но игнорировали остальные.
>>461206//move cameraboundary.xMax = camera.transform.position.x + screenwidth/2;boundary.xMin = camera.transform.position.x - screenwidth/2;boundary.yMax = camera.transform.position.y + screenheight/2;boundary.yMin = camera.transform.position.y - screenheight/2;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;Впрочем напрямую менять позицию ригидбоди не стоит.
>>461229Всё, нашёл.В NavMeshModifier есть фильтр агентов.К сожалению придётся создавать по отдельному типу агентов для каждой комбинации проходимостейкишечника
>>461166Не тика, а сообщения. Сообщение это то что мы в итоге получаем. При передаче, сообщение режется на пакеты и кидается в сторону получателя. Меня смутило, что я, к примеру, данные инвентаря (List<Item>) отсылаю в одном сообщении, которое режется на пакеты по 1024. На том конце сообщение собирается и делается Recieve, с использованием буфера. Этот буфер не может быть больше 64 кб. А у меня только инвентарь уже 14000 байт. Если полученное сообщеие больше буфера Юнити умирает. А если инвентарь больше? Я уже хз как обьяснить подробнее.>>461149Ты не в ту сторону воюешь. Читай выше. Данные и пакеты эт разные вещи. Юнитидауны сделали все правильно, и sequenced работает на уровне пакетов правильно. Я хоть мегабайтом могу в получателя кинутся, sequenced канал его честно порежет на кусочки и доставит. А вот после его сборки Юнитя сдохнет в конвульсиях.
>>461234>инвентарь уже 14000 байтКак именно у тебя описывается отдельный итем из инвентаря?В случае отсутствия рандома, как в дьябле, достаточно передавать два значения - id предмета и количество, а остальное дергать из базы данных на стороне клиента.
Если блять такие булыги передаешь, используй систему побитовой индексации инвентаря, как те идиоты в жабе на древних мобилах с 64кб памяти
>>461235Собственно, как обычный класс из кучи переменных, описывающих параметры. Я его сериализую и вперед! Не важно, насколько компактен отдельный элемент инвентаря, важно что он List. т.е. различных элементов может быть впечатляюще дохуя. А кроме инвентаря есть еще цепочки диалогов и прочая крупная хрень.>остальное дергать из базы данных на стороне клиента Клиенту нельзя в базу. Вообще. Анально огорожен, ибо можно инициировать перебор айдишников и таким образом получить слишком много инфы. Таким образом, мой сервер, это эдакий SQL Proxy.>>461236А вот тут поподробнее?
Есть вопрос, вопрос по 2д, вопрос такой: как двигать game object в самой анимации, при этом не давая игроку влиять на его движение в процессе этой анимации? Грубо говоря идет атака персонажа и он делает шаг, в котором game object двигается, а управлять в процессе этой атаки персонажем нельзя.
>>461246statemachine для character states как вариант?if (character.state != CharacterState.Attacking) {}
>>461246bool isControllable;Update(){if (isControllable){SpinYoba();}}Там уже либо через ивент, либо напрямую переключаешь isControllable.
>>461250убейся уже быдлосука
>>461251> ужеЯ тут неделю не постил, что не так-то?
>>461246Даже в официальных мануалах было. Лочишь инпут в начале анимации, анлочишь в конце. МОжно использовать анимационные ивенты.
В чем отличие юнити 5 версии и Unity 2017.2?
>>461259В цифрах.
>>461259Зачатки Job System если ты планируешь свой говноклон Total WarЕще можно C# 4+ подключить, для дельных свистоперделок
>>461252Я недавно постил в том же стиле.
>>461239Да откуда вы суки лезете-то? Это классика, это знать надо блядь!Допустим, у тебя в игре есть всего 8 предметов. Следовательно, наличие того или иного предмета можно уложить в 1 байт, т.е. индекс бита в байте означает номер предметаю Если бит равен 0 -- предмета нет, если бит равен 1 -- предмет есть.
Юнипидор опять шапку засрал своим школоподелием?
>>461275Ему же 13 лет, что ты хотел?
>>461261>Job SystemЧто эта?мимо создатель говноклона тоталвора
>>461273Даже в голову не приходило, т.к. не понимаю как это можно будет тут использовать (сервер БД, реляционные бд, куча разных "шмоток", динамическое изменение параметров на взятые из БД - хз как это уживается с тем что ты предлагаешь). Ну еще можно на флешке человеку список с данными приносить. Если флешек будет вагон, мы достигнем, как ни странно, рекордной скорости передачи данных.
>>461230>screenwidthА это что? Я очень плох в c#
>>461283Ты очень плох в английском. Не нужно знать шарпы, чтобы понять что это переводится как "ширина экрана".
>>461284Нет, я понял что это ширина экрана. Эти значения вручную вписывать?
>>461285
>>461285Из юнитевого класса Screen. Это и нагуглить можно было.
>>461279Во-первых, это не я предлагал.Во-вторых, твоя схема говно ебаное.Иди почитай как в играх сетёвку делают.
Двач, помогай, нагуглить не получается, хотя, возможно, просто я тупой.Скачал большой фреймворк (считай стартер пак) из которого леплю игрулю. В этом паке есть Animator, со всей написанной логикой, к которому обращаются скрипты там, меняют стейты и пр. Я хочу заменить анимации в нем на свои, но при драг н дропе в поле Motion просто остается None, при этом если туда перетащить любую другую анимацию из этого пака, то поле спокойненько себе меняется. (если что, в паке все анимации сделаны под риги антропоморфные, а у меня собака с legacy ригом)В чем может быть причина и как мне таки сменить эти чертовы анимации?
>>461330И еще такой вопрос есть, вот я хочу сменить .fbx персонажа, который содержится в стертер паке, мне казалось, что порядок действий должен быть такой:1. Пихаешь персонажа на сцену2. Вешаешь на него Animator3. Переопределяешь все анимации в аниматоре4. Драг'н'дропаешь объект во все скрипты, где он был в паке, ну, тобишь кидаешь ссылки на все нужные элементы во все необходимые скиптыЯ где-то проебался? Просто вроде я пропустил 3й шаг и все работает норм за исключением того, что анимации не проигрываются, в игре просто "деревянная" моделька собаки.
>>461294И читал и смотрел и даже спрашивал (выслушивая ответы).Что, по твоему, не так? Я открыт для дискуссии. п.с. говно ебаное? Серьезно? как ты себе это представляешь?
>>461331>Скачал большой фреймворк (считай стартер пак) из которого леплю игрулю.>в паке все анимации сделаны под риги антропоморфные, а у меня собака с legacy ригом>анимации не проигрываются, в игре просто "деревянная" моделька собаки. Решение очевидно. Скачай пак с готовой собакой. Именно так пишутся игры под юньку.
Так, а как мне материалы то загружать? Срать в главный класс не хочу, Resource.Load - тормозит и вообще отстой. А может мне создать класс-пустышку (moho) который будет иметь в паблик полях материалы? Или как мне из проекта загружать материалы? Через префабы какие?
Посоны, у меня такой вопрос.Делаю мобильную игру по классической схеме с выбором уровней, которые различаются лишь декорациями/набором противников/доступным оружием (примерно как Angry Birds).Разумеется нелогично было бы на каждый уровень делать отдельную сцену.Как лучше организовать сам проект? Я так понимаю, что у меня будет 3 основных сцены: стартовый экран, экран с выбором уровня и сам уровень.Соответственно, в сцену с уровнем мне нужно будет подгружать параметры: доступное оружие, фоновый спрайт, время и место появления врагов. Как это правильно сделать? Можно ли хранить набор параметров в отдельном массиве в контроллере (или в файле конфига) и при клике передавать в загружаемую сцену? Есть в Юнити какие-то нативные возможности?
Алсо, как синхронизировать значение поля в инспекторе и в классе? В классе, допустим написано int i= 3 а в инспекторе i= 666. Как так то?
>>461349В углу компонента знак шестеренки - reset. Зачение измененное в инспекторе имеет приоритет над значением в скрипте.
>>461348Ты сейчас говоришь, что тебе нужен функционал отдельной сцены, но новые сцены использовать нельзя, нет.
>>461351Я тебя не понял. Я не зря привел в пример Злых птиц. Ты предполагаешь, что там каждый уровень - отдельная сцена?
>>461352Они не на юнити написаны.
>>461285>>461330> Скачал большой фреймворк (считай стартер пак) > Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов> Я где-то проебался?Да ну даже хуй знает.
>>461352https://gamedev.stackexchange.com/questions/117668/unity-scene-performance-better-to-use-one-scene-and-toggle-what-is-activeЕсли ты будешь делать все на одной сцене, у тебя телефон охуеет от количества говна, которое тебе надо хранить в ОЗУ. Я не понимаю, почему сцены — это плохо, а вот ебашить велосипед руками — это в самый раз. Что поменяется-то? Сцены загружаются на раз-два, если пулить объекты и еще как-нибудь изъебываться.
>>461360> Я не понимаю, почему сцены — это плохоЭто член секты "Свидетели Оптимизации".
>>461360>>461356Ну в общем-то все понятно. Я совершил ошибку признаю. Прежде чем спрашивать на дваче, нужно было покурить официальный туториал:https://unity3d.com/ru/learn/tutorials/s/2d-roguelike-tutorial>Writing the Board Manager>Writing the Game ManagerГде показана ровно та схема, которую я описал в первом посте. >>461348
>>461362>Это член секты "Свидетели Оптимизации">вот сейчас я кеширую трансформ, чтобы каждый раз не вызывать GetComponent()>и сразу после этого делают 100 рейкастов>в апдейте
>>461367Так это под процедурную генерацию, хуй знает, как ты будешь ее писать для клона Angry Birds.>>461368Ради этих 100 рейкастов и оптимизируем, лол.
>>461370Да, 3 аттосекунды компенсируют то, что рейкасты делаются раз в кадр, а не пять раз в секунду.
>>461370Какая разница, процедурно уровень генерится или нет? Можно тайлы и ручками задать, если хочется. Там вообще не про это в этих двух уроках, процедурная генерация там в предыдущих описана. А здесь именно подгрузка уровней и передача в них данных.
>>461376>>Writing the Board Manager> "In this video we're going to create our board manager script, which is going to procedually generate our levels so that they're different each time the player plays."Я уже не понимаю, что тебе нужно. Сериализация всяких пушек и персонажей? Генерация уровней? Сохранение уровней? Глобальный менеджер, который хранит в себе персонажей и прочее говно?
>>461382Попробую иначе объяснить. Binding of Isaac знаешь?Если бы его делали на юнити, то там каждая комната была бы отдельной сценой или же одной и той же сценой, в которую бы передавались данные о том, где и что лежит и состояние героя на текущий момент?
>>461392Второе 100%. По-крайней мере я бы так делал. Хранил бы все в хмл или джейсоне или на-крайняк просто в Resources и манагерами подгружал бы в сцену (или AssetBundles). Насколько я знаю, ты вообще не можешь грузить сцены, которые ты не добавил в Build Settings при билде.
>>461357Вот не знаешь, не пизди.>>461341Так собака и была скачанная, в том то и дело, лол. Я, возможно, чего-то важного об анимациях не знаю, но проблему решил следующим образом: через Ctrl-D достал анимации из .fbx, открыл их в эдиторе, копировал кеи из эдитора, создавал новые анимации и вставлял туда кеи. И новые анимации заработали как надо, начали вставляться в любые Аниматоры и т.д. Сначала думал, что проблема в аниматоре, но нихуя, проблема именно в самих анимациях. Я не знаю, почему извлеченные анимации не хотели себя нормлаьно вести, но в итоге все оке.
>>461393Вот описание такой практики мне и нужно. Хочу сделать правильно.
>>461397Попробуй сначала загрузить что-нибудь из Resources. Так и гуглишь, Unity Resources и желательно имеено документацию, а не выидосики. Там ряд ограничений для мобилок с ними связанный, так что если прямо по хардкору решишь, то гугли xml in unity, если пишешь скрипты на б-гмерзком джаваскрипте, то гугли json in unityОбщий принцип хранения данных на диске поймешь, а потом и без туторов поймешь, как делать то, что ты хочешь.
>>461398Спасибо за советы. Я обычно сначала всего оф. доки читаю, видосики только если нетривиальное что-то нужно сделать, но что 100% уже кто-то делал до меня.XML мне ближе, я много раз их парсил/генерил по работе.С Resources пока еще не знаком - делал саму механику игры, а теперь вот созрел все это дело собрать во что-то похожее на предбилдную версию.
>>461340Тебя уже ткнули ебальником, что у тебя не так, а ты всё равно упираешься, что у тебя база анально огорожена и лежит на сервере.Страдай дальше, в общем.
>>461399>XML мне ближе, я много раз их парсил/генерил по работе.Обоссать бы тебя, только жаль силы писюна на тебя тратить.
>>461392>>461397Один этаж — одна сцена. Скрипт генерит комнаты, смотрит, какие спрайты и противников использовать. Спустился на этаж ниже — перезапустил сцену с новыми данными.Но Исаак на процедурной генерации, потому что там можно сделать нормальную процедурную генерацию. Минимальное требование для игры: возможность дойти до босса.Если ты делаешь типа Исаака, то да, ты на верном пути. Но если у тебя есть конкретный набор карт/заданий, то тут просто нет смысла велосипедить. Сделай пачку сцен да гоняй менеджер из сцены в сцену.
>>461026 (OP)>yni ユニゲーム私は本当にユニ・ゲームが大好きです
CharacterController скатывается с края поверхности из за округленной нижний части капсулы, ощущается это очень уебищно. Как это пофиксить?
>>461406Написать свой.
>>461407Желательно найти решение уже в готовом так как слишком много уже сделал на его базе.
>>461409Открой исходный скрипт и поковыряйся там, если хочешь. Без знания как он устроен нормальный костыль вряд ли напишешь.Но вообще ковыряй в сторону бросания рейкаст сферы вниз.
>>461406Трение у материала поменяй.
>>461401Что тебе не понравилось, петушок?Прочел Дайв инту Питон и шишка встала?Приходилось работать с ФИАС/КЛАДР когда-нибудь, с 10Гб иксмл файлами? Если нет, то ебало завали и не отсвечивай.
>>461345Если ресурсы external - то только Resource.LoadЕсли внутренние - то ассет-бундл аналог resource.load
>>461425>10гб xmlЕбать ты фуфел. Столько информации вникуда выкинул. Почитай про протобуферы хотя бы, а потом ебальник разевай, манька.>>461345У тебя материалы тормозят из-за того, что юнька прежде чем рендерить что-либо, грузит текстуру в гпу, "останавливая" цпу. мало кто это понимает из-за чего все кукарекают, что юнити тупая и плохо зделонаВ конце концов, попробуй LoadAsync.
>>461428А ты перепутал все, Палыч.сосалыч
>>461430Ты просто дебил, похоже и не умеешь читать. Не я придумал эту хуйню хранить в XML, а наши госструктуры. Но тебе-то, понятно, лучше самоутвердиться тут, чем погуглить что такое "Федеральная информационная адресная система" и в каком виде она доступна.Манька как раз ты, диванный теоретик, с нулевым опытом внедрения чего-либо.И эти твои понты>мало кто это понимаетговорят о том же самом.
>>461431Нет, ничего не перепутал.Ну а если же ресурсы совсем external-external? например, через сеть подаются или с папки юзера - тут только через WWW.file читать, затем в рунтайме обрабатывать сырой файл (sic) и преобразовывать ресурс.
>>461433Угомонись, молодой.Тебя направить пытаются тут, а ты пальцы гнуть начинаешь. В очко их себе загни лучше и подумай почему текстовая информация для пидорасов, а бинарная для батек.>>461434Еще раз. У тебя Resources.Load для external. Расскажи, пожалуйста, как у тебя п знаменитая папка в проектеи Resources оказалась в external?
>>461438> В очко их себе загни лучшеИ не забудь выложить видео.
>>461433>а наши госструктурыТы симулятор освободителя пишешь по заказу правительства чтоли?
>>461406Конкретно этот момент есть в Unity in action.Вообще советую эту книгу прочитать.
>>461438>Угомонись, молодой.Пионэр, ты б потише, а? Я понимаю, что ты у тебя передоз хабра и ты все на свете теперь знаешь. Вот как заработаешь первый лям своим говнокодом, тогда поговорим, ок? А то от тебя ни одного ответа по существу, одно кукареканье и агрессия на упоминание распространенного формата данных.>>461479Ты лучше видео своих поделий в юнити выложи, с удовольствием посмотрел бы и попроигрывал.>>461490Нет, мы писали, точнее уже написали аналог вот сервиса: dadata.ru для одной риелторской конторы.
>>461518>dadata.ru для одной риелторской конторыА игори то тут причём?
>>461519Игори тут не при чем, я имел неосторожность упомянуть XML, на который почему-то агрится местный клоун.
>>461518>>461523Быдлан ITT. Все за семками.
>>461523>на который почему-то агрится местный клоун.Меньше внимания на клоунов обращай
>>461430>У тебя материалы тормозят из-за того, что юнька прежде чем рендерить что-либо, грузит текстуру в гпу, "останавливая" цпу. мало кто это понимает из-за чего все кукарекают, что юнити тупая и плохо зделонаО, интересно. И как заставить юньку не останавливать ЦПУ? Я так понимаю что цпу стоит не только во время отправки текстуры, но и во время просчета новой текстуры в шейдоре. Потоки (системные) вроде как не хотят работать с Юнити АПИ.
>>461534О, опять ты. Как успехи?
>>461572Помаленечку. Иногда на день-два на багах застреваю. Переделал немного логику слоев в симуляции. Теперь это не просто гора текстур а класс инкапсулирующий свойства слоя (кроме земли, правда). В ГУИ почти всю информацию и контроль вывел. Лаву вот добавил. Но она выглядит как говно и не имеет температуры пока. Надо ей светимость, что ли добавить и зависимость цвета от температуры. В идеале еще добавить какое нибудь плавающее говно в лаву для эстетики, но лениво и память есть будет. И так в webGL чета не работает.
https://www.amazon.com/Patrick-Felicia/e/B00K3O5Z6CЭто хорошая серия книг? И где их можно скачать? На рутрекере нет
>>461638Pajeet, my son...
Как пофиксить это (возникает при компиляции билда под андроид - на PC всё хорошо) Win32Exception: ApplicationName='C:/AndroidSDK\platform-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)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.BuildReporting.BuildReport report)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, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:271)UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) Build completed with a result of 'Failed'UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x00207] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:172 at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:83 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
>>461656Слеши то так и не поменял?
Пиздец как я охуел. Использую стандартную OpenFilePanelWithFilters а она блядь содержится в UnityEditor библиотеке и нихера не работает вне редактора. Как мне пичот, пиздец они ебанутые. нахуя мне эта функция в эдиторе? Мне в рантайме нужно. Теперь каждый блядь велосипедит свой диалог выбора файла, вообще охуеть, кросплатформенность, они говорили, игровой движок. Нет, хочу костылить базовый функционал под каждую платформу.
Анон, выручай.Делаю тестовое задание. Надо было сохранять карту из редактора в файл, и при старте игры восстанавливать сцену из файла. Все работало.Сегодня загружаю, пытаюсь запустить и при вызове scene.GetRootGameObjects() ловлю The scene is invalid.Шта бля? В доках только то, что, мол, сцена не загружена или не существует. Проверяю, и сцена есть, и загружена, но все равно Invalid.Ебанный в рот, как так-то?
>>461661Спасибо за наводку.Их же внутри самого Юнити нужно менять? Где это можно сделать?
>>461675хз, я просто на разные слеши сагрился. Юнити такое не любит
>>461676Перемести папку с Android SDK в Program FilesТеперь немного изменилась ошибка: Win32Exception: ApplicationName='C:/Program Files/AndroidSDK\platform-tools\aapt.exe', CommandLine='package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/Program Files/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)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.BuildReporting.BuildReport report)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, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:271)UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Такая трабла посоны, нихуя не пойму в чем дело.Пикрелейтед 1 - Объекты "Зоны смерти", и "Мяча". Соответственно, если происходит коллизия (мяч попадает в зону), то триггерится вход в зону и смена сцены на "Проигрыш".Пикрелейтед 2 - Скрипты зоны смерти и мяча, как видно вывожу в консоль, если триггернулся евент входа в "зону смерти" и вывожу координату Y мяча.Пикрелейтед 3,4 - Стартую игру, мяч стоит на месте, координата Y не меняется вообще, через 160 фреймов внезапно срабатывает коллизия с зоной смерти, если опустить зону ниже, то коллизия срабатывает, но уже позже, как будто мяч медленно опускается вниз.Узнал примерно на каком вызове Update() такое происходит и пошагово выполнял, подумал, что коллайдер падает вниз независимо от спрайта к которому привязан, но нет, на 122 Update() коллайдеры на своих местах, на 123 так же, но срабатывает метод входа в зону, при том, что коллайдеры не пересекаются.
Блядь, проебал объекты.>>461682
>>461683>>461682Убрал строчку "Print(this.transform.position.y)". Проблема исчезла.Сложно игры делать, оказывается, я так и понял, на что я потратил 1.5 часа.
>>461686Раз 6 запускал, никаких проблем не было, не тригерился коллижн, отошел сделать чай, возвращаюсь обратно, чтобы еще раз проверить, что все нормально, просто жму запуск игры, проблема вернулась, да что за пиздец.
>>461638> На рутрекере нет Я догадываюсь почему нет.
Можно ли как-то настроить навмеш или агента, чтобы агент не упирался в границу навмеша и никогда не подходил к границе меньше, чем на заданное расстояние?
>>461705Увеличь радиус агента.
>>461687Ты мячик двигаешь не физоном, а так и даже не транслейтом?Ты зачем это делаешь?
Покайтесь, юнитипидоры!
>>461400Нет, не ткнули. Фраза "У тебя неправильно, а как правильно я не знаю, на опыт релизнувшихся больших кампаний плюю, они тоже не правильно делают, все делают все неправильно один я правильно, но не делаю. Потому что хз как." не тянет даже на вялое указывание в стороны.
Есть скрипт, скрипт паузы.По нажатию на Esc включается панель паузы и включается курсор. Далее, по нажатию на Esc, меню паузы отключается, а курсор остается. Что мне сделать, чтоб убрать этот курсор? Cursor.Visible = false; как видно на пике не помогает, приходится еще раз кликать после отмены меню, чтоб скрыть курсор. Надеюсь, понятно всё написал. Так что, как мне скрыть этот долбаный курсор? Код пикрил
>>461810Начнем с того, что если у тебя в игре используется физика Unity - пауза через timescale может привести к багам.Касательнр курсора - просто в апдейте забей:Cursor.visible == isPaused;
>>4618111. Если не timescale, то что лучше?2. Курсор всё так же появляется по выходу из меню и/или по нажатию на Esc, хоть я и вбил в апдейт. Я думаю, что придется там костыль какой нибудь делать, вообще в голову ничего не приходит.
>>461812>1. Если не timescale, то что лучше?Не могу сказать, опыта нет, но вон Cuphead свою паузу изобрели через PausableComponent base class>2. Курсор всё так же появляется по выходу из меню и/или по нажатию на Esc, хоть я и вбил в апдейт. Ищи что-то где-то ставит его
Есть две гоночные машины - игрок и оппонент, оба пытаются доехать до определенной точки на карте. Если рядом игрок, бот пытается столкнуть его с дороги.Как проще реализовать такое поведение бота?Я придумал простенький алгоритм: если игрок слева или справа, на машину бота давит AddRelativeForce, толкающая ее в соответствующую сторону. Тогда, если игрок сзади, бот не дает ему проехать вперед. А если спереди - бот врезается в него сзади и подталкивает. Также хорошо работает и во время обгона. Бота начинает кидать в сторону игрока, и это выглядит так, словно он бодает игрока бочиной, сталкивает с дороги и продолжает ехать дальше.Но в ряде случаев такой алгоритм не работает. Например, если бота развернет на 90 градусов, когда рядом игрок.Какие-нибудь идеи?
>>461882Подожди, тут где то был писатель АИ на ифах, нужно только дождаться.
>>461811>пауза через timescale может привести к багамХуй знает, у меня вроде норм работает. Ригидбоди пульки летают как летали.Хотя может я ещё не наткнулся на проблемы.
>>461810Как бы я не ебался со скриптом, понял, что всё дело в FPS Controller'e, если его нет, т.е. когда на сцене просто камера, то всё работает замечательно, а вот когда добавляю на сцену ФПС игрока то начинается эта дрисня с мышкой. Хз как фиксить, это нужно лезть в код фпс контроллера или костыль думать какой нибудь.. ааааа пичот. Ну, по крайней мере, понял что дело в самом фпс контроллере, а не в скрипте. Жарко, однако.
>>461812> Если не timescale, то что лучше?Через таймскейл и делай, только сначала открыл бы документацию и увидел вот это> If you lower timeScale it is recommended to also lower Time.fixedDeltaTime by the same amount.
>>461945А про курсор случайно не ответишь?
>>461946Я с курсором не баловался, но попробуй в блоке else поменять местами две верхние строчки. Может он игнорирует любое дрочево при таймскейле 0.
>>461812>>461945(18:31:39) <at> I was trying to ask what Vooloo means with pausing, because it's well known that near-zero timescales mess up physics(18:34:11) <Usr> how else would you pause it(18:37:08) <at> depends on the project(18:38:32) <at> in some situations taking a (18:38:37) <at> as an example
>>461957> because it's well known that near-zero timescales mess up physics> If you lower timeScale it is recommended to also lower Time.fixedDeltaTime by the same amount
>>461957>>461962проебал строку:(18:38:32) <at> in some situations taking a snapshot of physics objects states and temporarily setting them to sleep is a better option
>>461963Спасибо, а как быть с курсором? Есть ответ?
Поцоны, прошу, накидайте годных материалов по созданию AI.
У кого-нибудь есть в электронном виде книга "Основы анимации в Unity" Торна Алана?
>>461983В документах вк ищется
>>461984Действительно. Спасибо.
>>461669Ты, манька, не рвись.Юнитеки всё правильно сделали, просто ты костылепидор, который не понимает того, что игры на юньке -- это data-driven, а вот редактор code-driven.Но ничего, скоро и редактор переведут на data driven.
Возможно ли убрать начальную заставку юнити, не покупаю и не взламывая программу?
>>462058Возможно.
Может глупый вопрос, но насколько использование свойств вместо обычных полей влияет на производительность?
>>462062https://jacksondunstan.com/articles/2968
>>462059Как?
Анончики, только вчера вкатился в юнити и сразу вопрос: Как отменить действие? Допустим ткнул дерево не там где надо - как удалить его?
Срочно понадобилось запилить UI, но вместо менюшки якорей какая-то залупа. Как исправить эту каку?
>>462130Ты иснпектор в дебаг режим включил. В верхнем правом углу
>>462140товарищ, спасибо за оказанное содействие
>>462158Вот суки падлы мрази твари
>>462120ctrl+z?
>>461100>>класть сахар до пакетика>Фу блять нахуй таким быть. Одобряю твою ярость, анон!Таким лучше вообще не родиться
>>462323> ~2к18> пакетики
>>462329>2k19-1>деньги на листовойкак же заебали дети мажоров сука
>>462330Да ты охуел, он 200 рублей стоит, а пить ты его будешь несколько месяцев минимум. Я больше на сахар трачу, чем на чай.
>>462331>Да ты охуел, он 200 рублей стоит, а пить ты его будешь несколько месяцев минимум.Ты там воду что ли пьешь? 3 чаинки на кружку?Тебе намекнуть, почему чай называется ЧЕРНЫМ?>Я больше на сахар трачу, чем на чай.>чай>с сахаромнемудрено по диабетикам пидорашка первая в мире
>>462332Хуй знает, что у тебя там за чай, у меня все ок. Второй раз уже завариваю, потому что я ленивое хуйло.> немудрено по диабетикам пидорашка первая в мире> В соответствии с исследованиями Ассоциации по Изучению Болезней Сердца, максимальное потребление сахара в день должно составлять: Для мужчин: 150 калорий в день (37,5 грамм или 9 чайных ложек)Пока вроде не умираю.
>>462334мужик! с чашкой! ловите его!
Какой уровень владения шарпом требуется для нормальной разработки на Unity?
>>462342Гуру.Без шуток. Ты должен быть богом Garbage Collector'а. В идеале, твой код должен подчищаться раз в тысячелетие и желательно только при подгрузках т.е. когда идет серьезный свопинг ресурсов.Тогда, возможно, даже на говноюнити будет стабильный FPS в серьезной 3D игре (а-ля Subnautica)
>>462345Хуета жи е. У меня по несколько гигабайт в тик чистилось и мне было норм. Лучше бы вы игры делали вместо дрочи движка и мусора.
>>462347Вот когда ты свой прототип доделаешь, когда на сцене будет ХУЕВА тыща объектов и все текстурированы, когда повер всего этого спец-эффекты, блум, годрейс, и остальной пост-процессинг - вот тогда ты запустишь Риву, и покажешь не только FPS, но и фреймтайм/лаг между фреймами и если он на протяжении 10 минут активной игры будет в рамках приемлемого лага для данного СТАБИЛЬНОГО FPS (16ms/60FPS) - тогда и будешь роток разевать.А пока - молока обтирай с губ ссучонок.
>>462348>тыща объектов и все текстурированы, когда повер всего этого спец-эффекты, блум, годрейс, и остальной пост-процессинг>сисярп>Garbage Collector
>>462352Кто бы говорил, постпроцессинг на сишарпе
>>462352>>462355Ни туда попал. Ну ты понял
Поцаны, тут все на сишарпе ебошат или есть и пользователи скрипта? Куда новичку лучше податься?
>>462373Проснулся.UnityScript is deprecated
>>462373Лучше на завод. Я серьезно.
>>462450Да ты охуел? На заводе вообще лафа, пьешь водку, валяешься в грязи. Да и платят порою больше
>>462454Райское место!
Аноны, писал скрипт, чтобы в 2Д платформере камера двигалась за игроком. Но не работает. В чем ошибка?using UnityEngine;public class CameraMove : MonoBehaviour { public GameObject player; void Update() { transform.position = new Vector3(player.transform.position.x, player.transform.position.y, -10f); }}
Скажите пожалуйста.В юнити есть реализована ньютоновская физика, с инерцией и ускорением или нужно ручками код писать.
При экспорте из 3д макса в юнити не экспортировались Pivat'ы.Как фиксить? Я думаю, при экспорте какие галочки забыл указать, но вот какие именно отвечают за пивот не понятно, хелп плиз.
>>462567А ты не забыл player'a в GameObject кинуть? хих.(прост сам часто забываю о таких вещах)
>>462570Реализована>>462572Тогда бы эксшепшон кинулся бы, и анон упомянул бы об этом, т.к. не мудак
>>462567trythis.GameObject.transform.position = ...
>>462574>Реализованаrigidbody это оно или есть другой компонент?
>>462571бамп вопросу
>>462577rigidbody или rigidbody2D соответственно
>>462580Но параметры ускорения или маневрирования объекта это уже нужно кодом регулировать?
>>462581Кроме гравитации, да. Хотя можешь какой нибудь компонент запилить, если ручками не хочешь.
>>462567Скрипт на камере? Камера одна?
>>462576Redundant же, и так понятно, о каком transform идет речь.
>>462588может на base.transform выкинуть а это та еще абстрактная хуета
>>462586Камера одна. Скрипт на ней. >>462572Не забыл же.
>>462591Ебанутый? Все нормально в скрипте, просто этот имбецил где-то в другом месте обосрался. Вообще уровень большинства пользователей юнити это пытаться в свободное время засунуть куб в круглое отверстие, а потом писать "ваш движок говно, ниумеет ничего искаропки"
>>462567На камере флажок static небось поставил.оптимизатор мамкин
У меня есть дурацкая задачка. Нужно использовать материалы в не-моно объекте. Грузить их через ресурсы - неправильно, через инспектор - не могу. Как получить ссылки на материалы? Я сделал публичный моно-объект список материалов, ссылка на который устанавливается вручную. но это жи хуйня какая то. Как правильно сделать?
>>462645Передать в конструкторе? Или просто потом SetMaterial(blabla)?
>>462661>Передать в конструкторе?В статический конструктор не передать параметры жи. >>462661>Или просто потом SetMaterial(blabla)Некрасиво. Забудешь вызвать - перестанет работать.
>>462665static AppRoot(){var materials = MyAssetBundleManager.LoadMaterials();}
>>462645SCRIPTABLE OBJECTCRIPTABLEOBJECT
>>462674> в не-моно объекте
Чему у меня пиксельный шейдор выдает одинаковые значения во всех точках хотя я ему подогнал норм текстурку и инспектор ее видит? Я не обосрался ли с нормалью, например? Предполагается, что предмет плоский.float vapor = tex2D(_VaporField, IN.uv_MainTex).x;o.Albedo.r = vapor / _MaxVaporForBlackColor;o.Alpha = 1.0;o.Normal = fixed3(0,1,0);https://pastebin.com/JJRA3caF
>>462746БЛЕАТЬПереименовал текстуру в шейдоре в _MainTex и все заработало. Оно что ли никак не может без этого слова? А если я ее по другому хочу назвать? Плохо сделоли, негодно.
>>462710Мать твою трахал, подгружаешь скриптабл обжект через ресурсы на старте в свой маняобъект, а в скриптаблобжекте все материалы хранятся, плюс можно через инспектор редактировать. И вообще иди нахуй.
>>462759Как школа?
>>462749Ты текстуру как ставишь?Спорю, что через какой-нибудь material.mainTexture
>>462765Вот так materials.evaporate.SetTexture("_MainTex", water.main.READ);Уже пару раз замечал что при замене _MainTex на другое имя - перестает работать.Естественно, меняю имя и в шейдере и в сишарпе, лол.
Не знаю, что за срань. Но не могу перенести спрайты в Animator. Раньше мог, а сейчас уже нет.Что делать?
>>462771Спрайтшит кидашь на сцену, тебе предлагают сохранить файл анимации. Его потом кидаешь в аниматор. Всегда так делал.
>>462771Какого хуя? Как он вообще должен понять что ты там анимируешь?
>>462669>var materials = MyAssetBundleManager.LoadMaterials();Чет это совсем как из пушки по воробьям>>462674>SCRIPTABLE OBJECTИнтересно, но так то это тот же mono только без гейм обжектЯ тут подумал - в моем случае материалы всего лишь прокладка между шейдерами и ГПУ. А что если материалы вовсе не хранить, а создавать их в рантайм из шейдеров? Меньше связей - меньше багов. Плюс можно не хранить имена шейдеров, а грузить все что есть в папке Шэйдэрс, потом через рефлекшен вызывать их.
Поясните за создание анимации в Юнити. Хочу, чтобы дверь открывалась ровно за 4 секунды. Как это правильно сделать? И что означает Samples в данном случае?Сменил на 4 samples. И подстроил кейфреймы на таймлайне. Открывает за 4 сек. Но что-то мне кажется, что я неправильно делаю.
А, кажется понял >>462903Samples - кол-во кадров в секунду? Если я задал 4, значит максимум 4 кадра для 1 секунды могу задать.
>>462816Спасибо братишка. Раньше просто кидал в аниматор и заебись все было. А сейчас почему-то выебываться начал.
>>462904> Samples - кол-во кадров в секунду?Да.
Куда можно залить свое поделие, чтобы поделиться им в веб плеере?
>>462969На файлообменник.
>>462969или в гитхаб pages например
>>462902Вот из-за таких мыслей как у тебя, юнити превращается в говно.Тебе дали, блядь, возможность создавать какой угодно шейдер и пропихивать его куда угодно и как угодно, не написав НИ ЕДИНОЙ СТРОЧКИ кода.В принципе, дело твоё. Хочешь ебаться с кодом, изобретая велосипед -- пожалуйста.Ты мне лучше скажи, браток, ты при генерации меша используешь стандартный движок террейна юньки или свой велосипед изобрёл?
>>462976>Тебе дали, блядь, возможность создавать какой угодно шейдер и пропихивать его куда угодно и как угодно, не написав НИ ЕДИНОЙ СТРОЧКИ кодаЧто мне за радость от отсутствия кода? Надо связанность сокращать, а не код. Ошибки я и без кода могу херачить, линкуя всякую хуйню в инспекторе.Например, создал шейдер с новым функционалом. Можем работать? Хуйс, иди создай бесполезный материал, в него укажи ссылку на шейдер (текстовую, блиать!!), ссылку на материал тоже где то укажи, на каждом этапе по ошибке соверши. >>462976>Ты мне лучше скажи, браток, ты при генерации меша используешь стандартный движок террейна юньки или свой велосипед изобрёл?Меш у меня вообще плоский, еба. А карта высот хранится в текстурах, генерируется перлин шумом и в реалтайме редактируется\подвергается эрозии.
>>462984Запилил, кстати, замкнутый кругооборот воды. Теперь дождь идет не из ниоткуда а из облаков который образовались из испарившейся воды
>>462987Жиденькие облака m8Давай там 100500 полигонов с бампмеппингом
>>463003Это первая версия, только только из под пера. Полигоны то там не нужны, а карта высот будет а то плоско как то выглядит.>>463003>Жиденькие облака m8Что за m8?Там еще 2 проблемки у меня - как облака движутся ИРЛ?И как сделать чтобы полигоны облаков были видны с обеих сторон? Не меняя порядок вершин, естественно.Потом еще ебаться с тепловым балансом от испарения\конденсации\заморозки воды
>>463005>Там еще 2 проблемки у меня - как облака движутся ИРЛ?Чую Гугл охуеет от внезапной смены паттерна твой истории поиска.
>>462984Мне кажется, что у тебя синглетон головного мозга, т.к. в твоём случае один шейдер используется у тебя только в одном месте и в одном материале.А юнька расчитана на то, что ты написал один шейдер и можешь спокойно хуячить тонну разных материалов для всех случаев жизни, а также использовать один и тот же шейдер где только хочешь.Переиспользование же -- охуенно!По поводу меша, ты его на ЦПУ выдавливаешь или на ЖПУ?
>>463017>Мне кажется, что у тебя синглетон головного мозга,Ну так я то свой случай реализую, а не какой то абстрактный>>463017>на ЖПУНа ЖПУ, в вертекс шейдере
>>4629691. microsoft store2. itch.io3. альтернатива itch.io которую сделали недавно, поэтому не ебу как её название
>>462969Скринов накидай.
>>463028>Ну так я то свой случай реализую, а не какой то абстрактныйПару сообщений тому назад: >В принципе, дело твоё.>На ЖПУ, в вертекс шейдере Моё увожение.
>>463037gamejolt?
>>463039>Моё увожение.Делов то:void vert(inout appdata_full v) { v.tangent = float4(1,0,0,1); v.vertex.y += _AtmoHeight x _ScaleY + tex2Dlod(_MainTex, float4(v.texcoord.xy, 0.0, 0.0))x_ScaleCloudsHeight; }
>>463048>\t\t\tкриворукий
>>463041не, там что то с буквой s было
Анон посоветуй мануалов по написанию чарактер контроллеров. Во всём, что я пока что видел, делают одну монструозную хуитку для каждого персонажа.Даже если забыть о том, что вносить какие то изменения будет не очень удобно, такой вариант очень не очень в случае большого количества разных персонажей, например, в эрпоге или стратегии.
>>463155А чо, базовые принципы OOP не применить?Создаешь абстрактный base class, от него наследуешь кастомные?Не хочешь писать кучу таких - используй Decorator, не?
>>463155наследование. интерфейсы. это зависит от конкретной задачи. любая деталь может поменять код.
>>463157>>Не хочешь писать кучу таких - используй Decorator, не?лол преколист, щас бы декоратором создавать персонажей. вот ты еблан чел
>>463155А Б С Т Р А К Ц И И
>>463348Сам еблан.Вместоabstract EnemyBaseClass {}abstract EnemyBossBaseClass {}abstract NPCBaseClass {}abstract NPCSpecialBaseClass {}abstract NpcUniqueSnowflakeBaseClass abstract PlayerCharBaseClass {}abstract TemporalPlayerCharBaseClass {}abstract SpecialPlayerCharBaseClass {}и их наследники.можно банально захуячить лишь голые базы для Enemy/NPC/Player и затем декорировать под спец-типы. А если ты так просто сделаешь 3 базовых класа и попробуешь наследовать, то в игре со 100500 персонажей, где и боссы еще могут быть подтипные и ни один ни два, а хуева туча в сцене, а потом еще и ростом левела как простые енеми пойдут - ты захлебнешься сучечке тупое
>>463155[code lang="C#"]class ActorController : MonoBehaviour{public AttackComponent m_attackComponent;public MovementComponent m_movementComponent;public void Move(){m_movementComponent.Move();}public void Attack(){m_attackComponent.Attack();}}abstract class MovementComponent : MonoBehaviour{public abstract void Move();}abstract class AttackComponent : MonoBehaviour{public abstract void Attack();}[/code]А потом сидишь и пишешь реализации для передвижения, атаки и прочей хуйни, которая нужна в игре.Но стучишься в нужные действия только через ActorController ну или блядь назови его CharacterController, мне похуй
>>463157>Создаешь абстрактный base class, от него наследуешь кастомные?Слабо решает проблему незапланированного расширения. Знай я весь геймдизайн наперёд обошёлся бы и самыми всратыми методами.>используй DecoratorДа, я с самого начала пытался сделать модульную архитектуру, но не получается собрать всё воедино.На самом высоком уровне контроллер - это набор отдельных классов операторов для самых малых, неделимых действий: WalkOperator, ShootOperator, например. И если мне понадобится добавить персонажу отдельный функционал, я просто добавлю один из универсальных операторов - DernutAnusOperator, либо напишу новый, реализующий тот же интерфейс - DernutAnusOperatorSpecialForPes:IDernutAnusOperator.Здесь всё гладко.Но ниже идут анимации и начинаются проблемы. Аниматор у каждого свой и уникальный. Можно написать прослойку между операторами и аниматором. Но так лишь удобнее, прослойка всё равно должна быть у каждого своя.У меня конечно спрайтопораша и можно написать свой модульный аниматор, но очень сильно не хочется - и так кода накалякал уже много, а игры всё нет.
>>463354>и так кода накалякал уже много, а игры всё нет.Умерить аппетиты?либо же, если ГОТЮ очень хочеться - придеться как все девы-одиночки - ДЕСЯТИЛЕТИЯМИ.
>>463351это не единственая реализация, их овер дохуя .
>>463354Хуй знает, валенки-кун, модульный аниматор звучит как то, что нужно, если нужна модульность.Отпишись, если сообразишь чо.
>>463354В чем проблема сделать BaseControl > NavelnyBaseControl > Analnyи просто оверайдить move, attack под свои нужды.
>>463354https://youtu.be/ZpxNmDm-t64
>>463361>>463364Вы чем читаете, блджад, у него нет проблем с модульностью контроллера, у него проблемы с аниматором на этой стадии
>>463366Ну проблемы с аниматор из за ебланской модульности. В наследовании такой хуйни нет. Написал один раз getcomponent<hyinimator> и юзай его хоть в move хоть в очке
>>463354https://blogs.unity3d.com/ru/2017/11/28/introducing-the-simple-animation-component/
Сап. Нужен help. Кто-нибудь знает как на C# сделать анимацию воды в 2d? Типо как в Cookie Clicker 2 молоко.
>>463376http://bfy.tw/FkGT
>>463379не заходите там вам майнер установиться
>>463381Майнер - это круто и модно, сейчас все майнят. Так что заходите.
>>463364Но если у рыбы, птицы и верблюда вообще разный набор действий? Что если они все три могут двигаться, но при этом птица срёт гуано, генерируя полезный ресурс для игрока, рыба его атакует, а верблюд разговаривает?Делать один турбобазовый класс для них всех?>>463369> getcomponent<hyinimator>Это же относится и к хуениматору. Что если у аниматоров разных персонажей мало общих черт?>>463359Да наверное будут пытаться пилить модульную(хотя бы частично) прослойку для аниматора. Спасибо >>463370 анону, это может помочь.
>>463405>Что если они все три могут двигаться, но при этом птица срёт гуано, генерируя полезный ресурс для игрока, рыба его атакует, а верблюд разговаривает?Proxy pattern?
>>463405>Делать один турбобазовый класс для них всех?Чему бы и не сделать? Заодно и дупликацию кода снизишь.
>>463409Что это у тебя за новая малафья? Облака?
>>463410Угу, трех-мерные. Я наверное сделал самые велосипедные облака в юнити. Беру два плоских меша, один выдавливаю в одну сторону, другой - в другую и складываю половинки. Хз, потом может попробую штатными средствами сделать облака
>>463411>Беру два плоских меша, один выдавливаю в одну сторону, другой - в другую и складываю половинки.Велосепедитс
>>463409>Чему бы и не сделать?Потому что при появлении в их компании орангутана, который ест фрукты, супергипертурбобазовый класс придётся менять.
>>463420Но ведь есть жи переопределение методов. Было move(){..} сделал move(){я покакал base.move()}
>>463426А что переопределять, если раньше никто фрукты не ел?
>>463428Метод simulate(), например, или update().Впрочем, на компонентах, было бы наверное лучше. Компоненты лучше решают проблему множественного наследования (чем интерфейсы)
>>463411> складываю половинкиШов весьма заметен. Но то похуй, в принципе, чай не на конкурс.
>>463411Лучше бы карты нормалей и текстуры к земле прикрутил.
>>463405Я тут подумал и вспомнил про такую штуку как конечный автоматю state machineАниматор сам по себе уже конечный автомат. Так почему бы не взять и угореть по StateMachineBehaviour?
>>463441> конечный автоматю
Где бесплатно скачать Shader Forge версии 1.36 или 1.38?Что лучше Amplify Shader Editor или Shader Forge.
>>463499Если на персии нет, значит нигде нет. И если тупо через гугл на китайские релизы этой новой версии не выходишь.
>>461026 (OP)Как называется паттерн когда создаешь какой нить обьект вот таким образомKindOfBulder.Jokes(5).Count(2).Something("Puppy").Headshots(4)?Мне это надо для создания условий победы\поражения.сейчас смог сделать подобие, но хочу знать как оно делается по уму. К тому же мне в конце нужно приписывать .Done() что бы получить только что созданный список, не уверен что это необходимость
>>463533https://ru.wikipedia.org/wiki/Fluent_interface
>>463504>на персииЧто за сайт?
Подскажите, что делаю не так. По идеи при касании объекта "Destroy" должно происходить уничтожение объекта "working". Но почему то не работает. Поясните пожалуйста.
>>463570Нахрена ты в Update запихал, если есть коллайдеры?OnColliderEnter2D event отрабатывай.https://docs.unity3d.com/ru/530/ScriptReference/GameObject.CompareTag.htmlhttps://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter2D.html
>>463439>Лучше бы карты нормалей и текстуры к земле прикрутил.Но нормали там есть.. А текстуры - может сделаю..
Можно ли использовать бесплатную Unity, и если я доделаю проект, купить версию за 30$, просто чтобы убрать рекламу?
>>463580Да.
>>463575Карты нормалей -- это нормали per-pixel, а нормали, про которые ты говоришь -- это per-vertex.Чуешь разницу?
В общем пришёл к выводу, что я переусложнил теорию, когда на практике всё гораздо проще. Модульности контроллера уже достаточно для независимого обращения к аниматору.Ведь если мне понадобится добавить орангутана, поедающего фрукты, то ему понадобится новый оператор ConsumeOperatorю В то же время наоборот, если я чему то добавляю ConsumeOperatorю, то подразумевается, что у него есть анимация поедания.Правда придётся придерживаться определённых правил в создании аниматоров, например, имя триггера для инициации анимации стрельбы у всех, кто использует один и тот же ShootOperatorю, должно быть одно, а не MakeShot в одном, Ratata в другом и AndruhaHuyach в третьем.Прослойку для аниматора всёже сделал, но она служит больше для удобства обращения, контроля и упрощения работы с анимационными эвентами.
>>463588>Карты нормалей -- это нормали per-pixel, а нормали, про которые ты говоришь -- это per-vertex.>Чуешь разницу?Теперь чую. Нормаль per-pixel это, грубо говоря, текстура с нормалями которая рисуется между вершинами. Там вроде не так много визуальной разницы, можно попробовать, вместе с цветовыми текстурами
>>463571Так. С этим разобрался. Но, столкновение обрабатывается, когда объект "working" имеет тэг "kill". А нужно, что бы обрабатывался объект "dest". Он привязан к "working". Это такая поверхность над врагом как бы, что бы типа его можно было убить прыгнув на него, но когда персонаж касается поверхности, ничего не происходит.Может это я не правильно реализовывающую убийство врага ?
>>463604https://docs.unity3d.com/ScriptReference/Transform.Find.html
>>463604Ты как-то не с той стороны подошел к проблеме, имхо. У тебя враг будет иметь возможность убивать персонажа? Как реализовывать будешь? Еще один коллайдер повесишь, только уже на ноги?Я диванный, но я бы повесил триггер-коллайдер на игрока, триггер-коллайдер на врага.В OnColliderEnter2D поставил бы проверку, где находится персонаж относительно врага. Если он сильно выше (то есть не совершает прыжок непосредственно перед врагом, врезаясь коленом ему в нос), то уничтожал бы врага. Если нет - отнимал здоровье у игрока.
>>463606Я так понимаю, это как то вот так делается. А как мне все это объединить? Проверить значение тега ребенка?
>>463607Боюсь у меня сил не хватит на такое.
>>463608coll.gameObject.tranform.Find("name")
>>463597Я бы засадил в этот валенок, really.
>>463611Ты бы и в этот тапок засадил.
>>463621Где ты столько порнухи обувной набрал
>>463608Для того что бы убить монстраа прыгнув ему на голову можно без этой платформы обойтися
>>463624Валенки - ориджинал, тапок из гугла.порномагнат уровня /гд/
>>463535Хех, у меня получилось то же что и в примере по c#
>>463641И как же?
>>463668Повесить на самого монстра коллайдер
>>463668>>463669При помощи векторов проверять, верно ли позиционирован прикоснувшийся игрок. Но если ты совсем новичок, тебе нужно в первую очередь научиться гуглить. И это не упрек, а совет, который некорректен лишь в том случае если у тебя есть наставник. Но раз тебя занесло СЮДА, то очевидно единственный твой наставник это анон который может быть кем угодно и доверять которому все равно что елозить попой по асфальту. Так что лучший твой наставник это Google.com как впрочем и для 90% населения земли. Гугли как сделать марио, желательно на английском и проверь не одну ссылку, а несколько.
>>463687> если ты совсем новичок, тебе нужно в первую очередь научиться гуглить> желательно на английскомВот этот хуй всё верно сказал. Гугл и инглиш — твои лучшие помощники.
>>463604Ставишь галочку Is Trigger.А в коде ставишь событие случилось ли столкновения с персонажем или нет.>>463608("working/dest") такая запись не работает нужно что то одно ставить working или dest.
>>463763>Ставишь галочку Is Trigger.>А в коде ставишь событие случилось ли столкновения с персонажем или нет.И сквозь врагов бегать?>("working/dest") такая запись не работает нужно что то одно ставить working или dest.мануал читай
>>461026 (OP)Знающий анон, помоги с юнити ui.Мне нужно, чтобы имейдж перемещался за курсором при попадании курсора в определенные области экрана. Нужно не просто изменение координаты, а плавное перемещение из точки А в Б, причем эти А и Б могут быть произвольными. Я думал запилить анимацию, но не уверен, что анимация годится, ведь это нужно каждый раз программно создавать новый клип с перемещением из новой точки в новую точку - ебалово какое-то.
>>463882> Нужно не просто изменение координаты, а плавное перемещение из точки А в Б, причем эти А и Б могут быть произвольнымиyobaImage.transform.position = Vector3.MoveTowards (yobaImage.transform.position, yobaDestinationPosition, speed * Time.deltaTime);
>>463883Спасибо. Я скорее думал по событию запускать, а не в апдейте следить, но тоже норм.
>>463884> Я скорее думал по событию запускатьЕбошь в корутину и запускай её по событию.
>>463883>этот уебок again
>>463734>>463687Нашел как какой-то парень создавал марио на unity. У него подсмотрел как это можно сделать. Сделал, все работает. Жаль только я английский не знаю
>>463888> этот Ты меня с кем-то попутал, братишка.
>>463923Step 1. Ставишь Google Chrome. Step 2. Ставишь на Google Chrome расширение Google TranslateStep 3. Выделяешь английский текстStep 4. Получаешь переводStep 5. Через какое то время при желании и множественных повторах 3-4 шагов начнешь запоминать что да как делается в этом забугорном языке. А если будешь пытаться запомнить часто встречающиеся слова при помощи например ассоциаций и образов, так вообще через месяц пендосом станешь и мать родная не узнает.
>>464026Зонды не мешают ходить?
>>464027Помогают, что бы это не было
>>464027У него уже гузло необратимо деформировалось, если сейчас вытащит кал будет сыпаться на ходу.
>>463888>>464027>>464035
Фигачил я тут шэйдер для того, чтобы на кваде планеты рисовать. Нужно было ювишки исказить, нашел такую фигню (пик1). Но elliptical и Fg мне не подошли. А в Шварце-Кристофеле такая хуйня (пик2). Как мне запихнуть многочлен лагранжа и комплексные числа в шейдер? Может это можно как-то сфэйкать?
>>464079А чем тебе не нравится рисовать текстуру на сфере?
>>464106У нас во дворе за такие вопросы убивают нахуй!
>>464117> Вывел 0.7$ На дошик хватит, молодец.
>>464106Y меня стилистика коммиксно-2d-шная.3д сфера не очень смотрится.просто я ебнутый
>>464136Ну, рисуй в RenderTexture и используй Unlit шейдер. Никто и не заменит подмены.
>>464079Ты ебанулся на отлично. Не, можно найти аналитическое решение твоей хуйни но это жи пиздец. Может можно наложить текстуру на сферу а потом сплющить ее? Если таки соберешь считать по ебанутым формулам то считай на ЦПУ, там и библиотеку найдешь для интегралов
Анон, рейтани пятнашки. Начал во вторник. Есть несколько режимов. Кастомный - где можно ввести любую размерность. Стандартный, на время и реверс. Можно сделать паззл из фото или взять фото из файловой системы. Есть проблемы с соотношением сторон и ориентацией горизонтальных фоток, но попробую исправить в ближайшее время. Короче рейт поделие. https://drive.google.com/file/d/1l_WBx4KON33gtsz8IGymR_kNOzZ3V7Q1/view?usp=sharing
>>464151Ах да, забыл добавить что игра на ведроид.
>>464151Мог бы хотя бы скриншоты сделать. Или видос снять. Рейтанет тебя какой-нибудь распидорас и все.
>>464153Ты прав. Вот наделал самых важных моментов.
>>464215
>>464215Дизайн не самый приятный. Поищи коллекции градиентов, есть готовые наборы. Можешь накидать абстрактную иллюстрашку на фон. Мудрить не надо, из примитивов.
>>464215Ты это щас сам нарисовал или взял откуда?
>>464218Мэдскилз за 10 минут.
>>464219Пизда сковорода, чтоб я так умел. Можно спиздить?
>>464220Конечно, шрифт Proxima Nova
>>464221Спасибо! С Наступающим!))
Есть object1 с RigidBody и MeshCollider (via Convex)Есть object2 с RigidBody и CapsuleColliderОба используют полноценный RB (non-kinematic)Нужно без хаков сделать так, что бы при столкновении, object2 отскакивал от object1, оказывая минимум действия на object1. Хак - дать object1 массу в 999, к примеру, но это НИПРАВИЛЬНАПредложения?
>>464554Сделать обжект один синематик, очевидно же.
>>464564Нет, object1 управляется резе rigibody.positionЕму вообще не вперлось быть kinematic
>>464569Rigidbody.MovePosition
>>464554> при столкновении, object2 отскакивал от object1, оказывая минимум действия на object1https://docs.unity3d.com/Manual/class-PhysicMaterial.html
>>464575К сожалению, если я изменю физ. параметры obj1, это повлияет obj2. То есть, мне все же нужно, что бы obj2 как град слегка отскакивал от obj1, но при этом, если obj1 со всей дури вхреначивается в obj2 - последний отскакивал так же, как если бы obj1 был стационарен.
Есть охуевшего размера моделька (точнее группа моделей, хуй знает как сказать, сцена) здания со внутренней отделкой и прочим безобразием на 5 миллионов полигонов в общей сложности. Есть какие-то практики нарезки на куски, чтобы юнити не отбросила копыта? Ради эксперимента попробовал сдампить в obj, вышло 500 с лишним мегабайт.
>>464592А не проще ли внутренюю отделку в префабы зафигачить и грузить их по мере надобности?Например, когда игрок открывает ту или иную дверь, тогда грузим префаб на сцену. Как только игрок вышел из комнаты и закрыл за собой дверь -- выгружаем из памяти.
>>464616Дык я в общем-то и хочу порезать эту залупу на куски, вопрос только как это поэффективней сделать.
Эээээ блэт, хули я не могу модельку из блендера экспортировать? Атлас текстурки по пизде идут. Шел по гадйу на ютубе, на этом моменте у типа текстуры нормально наложились. Думал с размером проебался, так ведь правильно выставил.
>>464619Пиздос, пошел комменты читать у него к видосу, хуй знает где нашел комментарий с такой же проблемой и оказывается он блять забыл указать хуйню из-за которой все по пизде и пошло.
>>464619>>464620нехуй в блендер лезть, он сырой еще
>>464621А что из бесплатного тогда юзать хуле?
>>464621>еще
>>464621он не сырой года 2 уже
>>464617зависит от много чево. можно порезать на кубики, а можно отделять дома вместе с отделкой, и в юнити перестроить
>>464637>Ко-ко-ко.
Пацаны, я - нуб. Делал-делал проект и вдруг Хуяк железо подвело - комп ребутнулся аварийно. Теперь проект не запускается, крашится при открытии. Чего делать?
>>464622Юзай не бесплатное, с торентов скачай.
Здравствуйте.Начал осваивать движок, прошёл курс сишарпа.Хочу попробовать сделать тайловую карту по которой бегает герой.Нашёл пачку уроков по таким вещам.И столкнулся с проблемой.Вот например один из уроков:https://youtu.be/70sLhuE1sbc?t=19m4sЯ отмотал на время. когда там начинают писать код.И там добавляют в меню возможность делать тайлы.Повторил я этот код и у меня в итоге возникает ошибка в виде пикрелейтед.И я не понимаю почему - там же явно коду объясняется что такое WaterTile! Почему он не понимает, что это такое?
>>464660library/metadata удали. Если не прокатит, то новый создай и импортируй ассеты из старого>>464689нахуй пошел
>>464693>нахуй пошелСпасибо!
>>464689Опс картинка отклеилась. Вот что у меня за трабла.
Хочу сделать лестницу. Типовую такую, как в девятиэтажке из плит. Вопрос: ебашить на каждую ступеньку по коллайдеру это совсем шизофрения? Как делать лестницы правильно? Поставить перед ступеньками невидимую наклонную плоскость? Но я хочу, чтобы модельки ходили по ступенькам.
>>464667Тупой долбоеб.
>>464788Как я вижу два варианта:- Compound Collider- MeshCollider для лестницы сделай, по форме и вперед ровнять по габаритам.гугли
>>464862Благодарствую.
>>464862Да ты охуел там, у тебя игрок охуеет от того, что камеру трясет на каждой ступеньке. Получится Sonic 2006.>>464788Делай просто рампу и будет заебись.
>>464865>у тебя игрок охуеет от того, что камеру трясет на каждой ступеньке.Ну так а скрипт амортизации делают на этот случай.
>>464693Хули ты такой злой, пидор?
>>464859Дебил.
Анончики, а как в 2к18 делают дороги? Вот есть допустим террейн с травкой и на нём террейн коллайдер. А посреди этой травки идет асфальтовая дорога. И по-идее у нее другие физические свойства, нежели у земли с травкой. Как делать асфальтовую дорогу в таком случае - отдельным объектом с меш-коллайдером? Или теперь можно изъебнуться и как-то запихать всё на один террейн?
>>464892Easy roads 3d гугли, тебе хватит
Как лучше всего организовать цепочку вызовов? Есть различные сервисы, которые объединяются в одном классе GameService для удобства. Там есть метод Login, который работает с ГуглПлей и с ПлейФаб(пикрелейтед). Вот как я организовал вызовы: https://pastebin.com/hhJfBhg3Мне такой подход не очень нравится. Может есть решение лучше?
Хм, можно вынести вызовы в отдельный класс >>464932https://pastebin.com/aqHfGqft
>>464621Я бы за такие слова тебе пизды дал.
Пытаюсь делать менюНашёл туториалhttps://www.youtube.com/watch?v=zc8ac_qUXQYСделал всё по нему.У меня кнопка после нажатия становится хайлайтнутой, и оно не пропадает пока я не нажму на другую.В чём дело?
>>465010Может быть в том, что так и должно быть?
Чем GetSpectrumData отличается от GetOutputData? GetSpectrumData понятно что такое, а GetOutputData инфы практический нет, что это такое?
>>465010>Top-quality game development tutorials! Unity, C#, Game Design, Photoshop and the list goes on. If you want to become a developer this channel will help guide you through it!Кто сможет найти хоть одну его игру, которая умудрилась попасть на стим-стор - получит шоколадку.>я профессиональный девелопер, вот мой список игр: []
Есть где гайды на тему создания изолированных систем контроля персонажа <-> инвентаря <-> статсов перса?Я, конечно, могу все повесить на синглтон GameManager с единой инстанцией и с него/к нему делать запросы когда надо, но ведь пиздец же.
>>465210В глаза ебешься, мразь? Спектрум это спектр, дата это дата. Пошел нахуй короче.
Поцоны, я занимаюсь погроммированием около 20 лет и ниразу не использовал синглтон. Я нормален?
>>465299>Поцоны, я занимаюсь погроммированием около 20>Unity beginners threadВозвращайся в /b/ и учись траллить правильно, тупая лолка
>>465299>я занимаюсь погроммированием около 20 лет
>>465299
Допустим мне надоело из проекта в проект копировать общие классы. Можно в юнити сделать так чтобы оно брало общие классы (и всю хурму) из некоего внешнего общего проекта?
>>465358Желательно без компилирования в длл
>>465359При чем желательно чтобы эти общие классы грузились из гитхаба.. Т.е. вот исправил общие классы - и во всех проектах это изменилось..
>>465358Модифицировать монодевелоп?
>>465364Нит. Кто нибудь знает как package.json в github работает? Он, что ли, автоматически подставляет в твой проект содержимое указанных зависимостей?
>>4653581) Открываешь MonoBehaviour2) Прописываешь в нём нужные классы и войды3) Наследуешься от него4) Все пацаны на районе смотрят на тебя с уважением, а бабы от одного твоего вида текут водопадом и теряют сознание
>>465368
>>465369Ну чё ты сразу?
>>465368Этого я даже не понялДелать, видимо, буду так: буду экспортировать пакаджи с номерами, типа UIv5, UIv6, UIv7. Потом, в прикладном проекте, старые пакаджи удалять, новые добавлять. Где камни?
>>465371> Где камни?В подходе к вопросу.В юньке давным давно есть коллаборейт с синхронизацией в один клик, нахуй тебе гитхаб?
>>465372В бесплатной?
>>465373Да.
>>465372Но ведь гитхаб это накаченный стероидами стандарт рынка, а коллаборейт - какая то левая фигня. Еще и денег хотят, вроде.Алсо, я пользуюсь всяческими интеграциями гитхаба. Без них не стоит жить
>>465375> Еще и денег хотят, вродеМожет и хотят, но коллаборейт работает в бесплатной версии.
А можно сделать чтобы скрипт работал без наложения на какой либо объект в сцене?
>>465377Нет. Только если он абстрактный и его наследник висит на чём-то.
>>465378>>465377Полный статик можно в принципе так юзать, но толку-то
Есть код:класс-хуясс [Serializable] public class ButtonPressEvent : UnityEvent { } public ButtonPressEvent OnPress = new ButtonPressEvent(); public void OnPointerDown(PointerEventData eventData) { OnPress.Invoke(); }...Я вручную указываю в инспекторе имя объекта для события OnPress и метод который должен вызваться. Как эти данные указать в коду а не инспекторе?
>>465382> Как эти данные указать в коду а не инспекторе?Получи объект и вызови в нём метод. Ах да, метод должен быть публичным, само собой.
>>465383Не, мне нужно что то типа OnPress = ButtonPressEvent(имя объекта, метод объекта);Только там у конструктора нет параметров. OnPress.AddListener() вроде не подходит или я не понимаю как использовать
>>465384Пиши войд, в который передавай две строки. По первой получай объект через GameObject.Find и по второй передавай имя метода.
>>465385> через GameObject.FindGameObject.Find ОЧЕНЬ медленный, поэтому если у тебя этот функционал в hotspot - подумай 999 раз прежде чем хуячить такую тупость.мимо
>>465385>>465386Все норм, у емня там вообще на this ссылка. Просто параметр у метода должен отсутствовать что бы быть совместимым с UnityAction
Я кончилpublic string url; private UnityEvent OnPress = new UnityEvent(); private void Start() { OnPress.AddListener(() => { OpenLinkJSPlugin(url); }); } public void OnPointerDown(PointerEventData eventData) { OnPress.Invoke(); }
Бля анон, объясни, не понимаю вопросик один. Пересмотрел уже несколько раз епту видосы обучающие на сайте юнити про интерфейсы. Не понимаю в чем их суть, если в самих интерфейсах не описываются методы, а только их имена. Я думал что это мол аналог наследования, когда есть метод и его можно использовать во всех потомках не переписывая заново. Так в чем суть если используя интерфейс, нужно каждый раз писать внутренности метода?
>>465461Интерфейс он нечто вроде "контракта", если классы используют один интерфейс они гарантированно следуют "контракту".
>>465461Потому что ты потом можешь обращаться к экземплярам класса по интерфейсу. Тебе не нужно будет привязываться в коде к конкретным классам, а лишь к интерфейсу, который они будут реализовать.
>>465461Можно реализовывать множественное наследованиеМожно пихать в один список разные классы без общего предка
>>465472>Можно пихать в один список разные классы без общего предкаВот теперь кажется понял. Спасибо.
сап анон, я расчехлил юнити на эти выходные и пошел наконец нетворкинг читать. Делаю игру про Voevalee. Беда в том, что снаряды кастующиеся через [command] с очень большой задержкой появляются на клиенте, хотя даже при пинге 100 такой херни не должно быть.
>>465612предсказывай появления снарядов сразу на клиенте, потом подменяй на нормальный
>>465659ну я пока вообще не секу как накодить вангу, лучше подскажи что подтюнить в настройках синхронизации, network.transform там и вот это всё, чтобы задержка между instantiate и моим положением не была такой огромной.
Здарова, бандиты.Тут есть аноны, которы покупают ПЛЮСОу версию Юнитей? (Которая за 35 бачинских в месяц)