Это копия, сохраненная 20 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый тред: https://2ch.hk/gd/res/780319.html (М)
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity?
- C#.
- Для каких жанров подходит 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
- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендуется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: https://www.writeurl.com/publish/qzgktisltkskaitem6aa
https://github.com/smkplus/CustomToolbar
Ещё 600 постов в старом сидеть можно было.
Нет, это бесполезная параша. Если тебя какая-то конкретная кнопка заинтересовала то просто загугли как сделать функцию этой кнопки пунктом меню тулбара, и юзай.
чтобы было дохуя
Скачал этот ассет с модельками и сценой: https://assetstore.unity.com/packages/3d/environments/industrial/station-v2-104479
Открыл в юнити, но тут все розовое. Почому? Что мне нужно сделать? Текстуры вроде назначены. Сами файлы текстур есть в папке с проектом.
Почему такие ассеты не делают так чтобы "открыл и пошел", надо их еще допиливать самому?
от коллайдера можно обратится к геймобжекту на котором висит этот коллайдер, а от геймобжекта уже ко всему остальному
Бля я сам заебался с этими текстурами, скачиваешь модель, текстуры отдельным архивом. Хуй бля, нихуя не стыкуются.
Документация и ютуб ролики по старым версиям, пиздец короче.
Ты просто скачал и открыл сцену, нихера больше не делал?
Ну хуй знает... Попробую тоже в ЛТС открыть.
Но почему у меня теперь какие-то мобильные контролы на экране?
Импортнул нативный 3рд персон контроллер. Но я раньше так делал и все управлялось нормальным WАSD и камера норм висела.
Убедись что ты используешь дефолтный рендер-пайплайн BRP, а не URP\HDRP.
>Как мне превратить эту кучу деталей в один объект в юнити?
Объединить в блендере через ctrl + j
Название файла скрипта и название класса монобеха должно быть одинаковым, и на будущее такие дебильные вопросы можно погуглить и найти ответ за три пикосекунды.
>Это такой уебищный моно или такой уебищный шарп?
Ты сюда пришел разорванной сракой потрясти или решить проблему? Ответ на твой вопрос тебе уже дали, теперь можешь проследовать нахуй.
Решил проблему. Теперь интересно - это моно убогий или шарп в целом.
Почему считаешь, что у меня разорванная жопа? Я получил бесплатный совет, применил его и пошел дальше. Тебе разорвало что ли от того, что я назвал моно убожеством? Ну так это так и есть, судя по тому, что имя файла должно соответствовать имени класса - такое и в дурдоме не придумали бы
>За годы опыта с нормальными языками
Забавно что за годы опыта ты даже гуглом пользоваться не научился
У тебя не получится создать объекты с одинаковым именем.
чел, серьёзно? уже даже такую базовую вещь, как управление персонажем ты предлагаешь брать у сторонних разработчиков(зав деньги)
А представь, сделали бы качественный контроллер персонажа из-коробки и его не сделали бы десятки индусов, не выпустили бы в юнити ассет стор и сам юнити был бы немного менее популярным.
или более, за счёт наличия такого функционала искаропки, а все эти индусы потратили бы свои силы на что-то более важное
Но базовая уже сделана, о чем разговор долбоёбина? Управление часто реализуется под конкретный проект, сделать то которое будет закрывать почти все популярные кейсы - пиздец задача и получится раздутая, тяжеловесная хуита. Проще найти пример на гите и переделать под себя, если уж такой тупорылый что не можешь такую простую вещь написать сам\дернуть из других своих проектов.
чел, одно дело дописать, а другое дело переписать, может мне сразу весь движок переписать?
Возьми с гита и допиши.
Тысячи реализаций, десятки жанров. Какое из них ты хочешь добавить в юнити как базовое? Не неси хуйни долбоёб, иди делай игры.
зачем? ты же всё равно ничего не поймёшь и не захочешь разбираться в чужой куче дерьма
Скажи спасибо, что они сподобились сделать хоть какой-то, к 2021 версии. До нее вообще нативного контроллера не было, представь. Глядишь так к 2034 версии допилят. Я давно говорил, что юнити - говнопомойка для унтерменьшей. Не то что годот.
(Автор этого поста был забанен. Помянем.)
Ты мимо движкосрачетреда промазал, серун
Ну так-то анон выше прав. Попробуй поискать на гите и покулупай это говнецо. Проще самому написать чем разобраться.
Единственный же официальный проект от юнитеков, слишком себе сука на уме, никто так не пишет код в инди-гейдеве.
Image.sprite=Тут твоя картинка.
Инстанси, либо делай виртуальный обьеденнёный обьект, но это немного сложно.
>Graphics.DrawMeshInstanced
Cпасибо, работает неплохо, не совсем понял нахуя там лимит в 1023 инстанса за один вызов ну да хуй с ним в принципе, можно несколько раз вызвать.
>На рутрекере не нашлось
В cgpeers дохуя, если акк/инвайт где откопаешь
если правильно то нужно использовать какие-то пулы, я хз что это
Работаю двад аниматором в spine, большую часть работы делаю для последующей интеграции в unity. Так вот подумал, чтобы изучить еще какие-то вещи,которые помогли бы в будущем в карьере.
ЗАдумался о рисованных двад эффектах, партиклях юнити, может еще что?
Так вот, лично вы если бы брали к себе в команду аниматора персонажей чтобы вы еше от него хотели,чтобы какие еще задачи тот же человек закрывал? Только что-то близкое или то что реально изучить научиться за год два.
Можешь ещё попробовать BatchRendererGroup. Он внутри себя разруливает ситуёвину с 1023 инстансами. А ещё к нему можно кастомный куллинг подключить.
Ну а еслм тебе надо миллиард травинок рисовать, то тут уж только DrawMeshInstancedIndirect и кастомный шэйдер.
Странное сообщение, зачем мне что-то показывать? Тебе работник надо, ну так сам кинь примеры того,что тебе надо и сколько готов заплатить. Я сюда за советом пришел а не в поисках работы.
>Так вот, лично вы если бы брали к себе в команду аниматора персонажей чтобы вы еше от него хотели,чтобы какие еще задачи тот же человек закрывал?
Обычно такие персонажи берутся щас на всратые 2д гиперказуальные новеллы и инди 2д игры. И там и там - лютый дефицит кадров, поэтому совет - дрочи 2д рисунок. Будешь универсальным челиком который молча закрывает область работ и уже и требовать можешь нормально по деньгам.
Рисунок мне совсем не нравится, не смогу себя заставить этим заниматься, но спасибо за мнение.
Возможно анимировать придется не только персонажей, но и интерфейс игры. Знать как это делается точно не помешает.
>разрабатывать анал
Для этого используют годот.
>юнити с пекой для учобы
Нет. Конечно это не анрил, но все равно желательно иметь комп получше, иначе фризы замучают.
Уже давно возмущаюсь что нет онлайн рубильни на мечах с видом от первого лица, где:
1. Есть реалистичные повреждения с отрубом конечностей, выкалыванием глаз, кишками и мозгами, а не тупо хп-бар.
2. Есть рабочая броня, которая не тупо срезает урон, а как минимум конвертирует рубящий урон в дробящий(гамбезон, кольчуга) или может свести его в ноль(фуллплейт)
3. Имеется расчёт повреждений в зависимости от массы(оружия и игрока) и ускорения
Всё это на минималках я хочу реализовать в прототипе. Для начала хочу сделать управление оружием, чтобы это было одновременно удобно, более-менее реалистично(насколько это возможно с мышкой и клавой) и самое главное весело. Пока ориентируюсь на Mount&Blade, ибо мне нравится боевка там, как минимум я сделаю похожую, но хочу поэкспериментировать.
Собсно мои сильные стороны это программирование и дизайн. А слабые - всё остальное. Больше всего переживаю за анимацию и 3д-модели. Для прототипа можно будет купить какую-нибудь простенькую модельку, но чтобы боёвка была вкусной мне в любом случае нужно будет запариться с анимациями.
После недолгих раздумий выбрал Юнити ибо в своё время успел попроходить кучу курсиков на нём, и имею кучу ассетов на него с хамблбандла, но если пойму что он меня ограничивает то быстро сдрыстну на другой движок. Писать движок с нуля не хочу.
И вот тут у меня к вам вопрос: чего подскажете по анимациям в Юнити? Мне по-любому нужно будет привязывать анимации к движению мыши и надо чтобы это всё хорошо смотрелось и чувствовалось, и вот здесь я полный ноль.
Уже давно возмущаюсь что нет онлайн рубильни на мечах с видом от первого лица, где:
1. Есть реалистичные повреждения с отрубом конечностей, выкалыванием глаз, кишками и мозгами, а не тупо хп-бар.
2. Есть рабочая броня, которая не тупо срезает урон, а как минимум конвертирует рубящий урон в дробящий(гамбезон, кольчуга) или может свести его в ноль(фуллплейт)
3. Имеется расчёт повреждений в зависимости от массы(оружия и игрока) и ускорения
Всё это на минималках я хочу реализовать в прототипе. Для начала хочу сделать управление оружием, чтобы это было одновременно удобно, более-менее реалистично(насколько это возможно с мышкой и клавой) и самое главное весело. Пока ориентируюсь на Mount&Blade, ибо мне нравится боевка там, как минимум я сделаю похожую, но хочу поэкспериментировать.
Собсно мои сильные стороны это программирование и дизайн. А слабые - всё остальное. Больше всего переживаю за анимацию и 3д-модели. Для прототипа можно будет купить какую-нибудь простенькую модельку, но чтобы боёвка была вкусной мне в любом случае нужно будет запариться с анимациями.
После недолгих раздумий выбрал Юнити ибо в своё время успел попроходить кучу курсиков на нём, и имею кучу ассетов на него с хамблбандла, но если пойму что он меня ограничивает то быстро сдрыстну на другой движок. Писать движок с нуля не хочу.
И вот тут у меня к вам вопрос: чего подскажете по анимациям в Юнити? Мне по-любому нужно будет привязывать анимации к движению мыши и надо чтобы это всё хорошо смотрелось и чувствовалось, и вот здесь я полный ноль.
Загугли простейший гайд на ютубчике, для обзорного понимания хватит. Хочешь чтоб мы тебе расписали методичку в виде полотна текста?
Анимация как и везде для 3д через кости которые ты делаешь на этапе моделирования, да и анимации можешь делать там же. Использовать юнити как и любой другой игровой движок для их создания - долбоебизм .
В твоем случае будет сложный скелет с кучей анимаций переходящие друг в друга (вот за эту часть будет отвечать юнити, в виде стейт-машины с которой ты взаимодействуешь через код), и костяшка инверсная кинематики для меча.
Не, ты не понял, я вообщу НУЛЬ в анимации, даже что такое кости и как они работают знаю совсем поверхностно. Думал может книгу посоветуете или курс какой.
Да глянь серию туториалов на ютубчке про моделирование\риггинг.
Суть: есть меш представляющий из себя просто список связанных между собой вершин. Кости же это штука, которая будет влиять с разной силой ни них.
В итоге будет выглядеть так: ты двигаешь кость, меш изгибается - запись последовательности этого действа и есть анимация.
Инверсная кинематика же это отдельная кость, которая будет с определенной силой взаимодействовать с частями тела во время проигрывания анмации.
Там ничего сложного по сути всего лишь заебисто, любая инфа в интернете будет про одно и тоже.
Ты больше от шейдеров и рендера охуеешь. Я бы на твоем месте своровал обзорный курс по юнити или если знаешь ангелский то курс на официальном сайте юнитеков где делают 5 прототипов, следом порешал бы эти туториалы: https://catlikecoding.com/unity/tutorials/
>если знаешь ангелский то курс на официальном сайте юнитеков где делают 5 прототипов
Можешь дать ссылку? Там на юнити лёрн дохуя всего
Я про вот это: https://learn.unity.com/pathways
Для начала лучше просто нет, первый поможет разобраться с самой программой, второй с простейшими скриптами, третий даст азы рендера. Но учитывай что там для достаточно начального уровня, но это все еще лучше чем любые платные\бесплатные курсы от инфоцыганов где будет та же инфа только с тысячью ненужных мелочей.
Спасибо, в третьем точно что-то полезное для меня есть. Первые тоже пролистаю, всегда можно просто скипануть.
Ты не затупок, у тебя правильный подход к делу, ты не хочешь тупо изучать синтаксис, ты хочешь понять логику за всем этим делом и так и надо. Тебе нужно изучать как работают языки программирования, часто используемые идиомы, алгортимы и структуры данных и вот когда ты всё это поймёшь хотя бы на базовом уровне тебе будет абсолютно похую на каком языке программировать, ты будешь быстро ориентироваться в любом синтаксисе и сразу изучать тонкости языка и понимать поможет ли он тебе в твоём деле.
Крайне рекомендую вот эту тему: https://github.com/ossu/computer-science
Пройди хотя бы включительно до Core CS, математику можешь скипануть, дальше по желанию.
Спасибо анонч. Я просто смотрю эти туторы, качал эти курсы популярные. Но там поясняют "ну вот это метод он дефолтный типа для запуска программы" и я сижу такой чего блядь пояснение запилил бы нормальное но нет.
Вот поэтому крайне советую курсы тут, особенно Programming Languages с Дэном Гроссманом. Но сперва пройди курсы перед ним чтобы быть готовым, потому что его курс весьма трудный для новичков, но не сдавайся, делай всё сам и не жульничай - оплатится сторицей.
... В том что мне нужна 3д игра. С 3д объектами. + моя проблема не в объектах а в отсутствии инструментов для создания 3д тайлмапов.
Да залупу конскую ты почитать можешь. Ты берешь уже вещь того уровня, где своя голова должна быть на плечах, а не все по учебникам.
А для изучения - ковыряй готовые ассеты по типу finalIK и всякие готовые риги на торрентах и ассетсторах их дохуя. Так же можешь глянуть готовые от юнити говно ебаное и чекни проекты на гитхабе говно ебаное, но код изучить советую
Юзаешь Snap'инг в 3д пространсве к сетке + Заготовленные префабы 3д моделек тайлов.
Можешь юзать готовые редакторы. Спойлер - они хуита)000.
В юнити нет 2д как такового, только ограниченный в плоскости 3д, так что ты тот же 2d tilemap и палитру можешь использовать для 3д
Блядь, я в ахуях, неужели тут все уже в курсе как сборки подключать, все шорткаты знаете, юнит тесты оформили, CI, DI, ECS, адресейблс и всю хуйню освоили? Если нет, то вы просто долбаебы, чей проект не доживет до релиза, либо кончится сразу после него
Я уверен что тут большинство анонов и я в том числе, просто начинают делать какой-то проект и недели через 2 дропают его. И так по новой. Хз как еще обучатся чему-то, если не через прототипы.
То есть существует определенный порог знаний, переступив который разработчику уже не нужно изучать ничего, а нужно все велосипедить самому, игнорируя опыт и знания предков? Хуйню спизданул.
Ну знаешь, это же двач, тут так принято что есть всегда кто-то успешный. Но обычных лохов куда больше.
Вот так и в этом треде. Там выше анон спрашивал, кто вообще работает в геймдеве и как устроились, но его тупо заигнорили. Не любят местные аноны помогать.
В соседнем /вебе и то больше людей которые вкатываются/вкатились/помогают. А ведь они всего лишь макаки-верстальщики. Злой у нас тред.
почитать можешь гугол, всё что ты хочешь - довольно тривиальные задачи для гуманойдного типа аватаров, но сложные из коробки для дженерика, только ассеты покупать. Настраиваешь скелет -> настраиваешь анимации и аниматор -> включаешь IK в слое аниматора -> Выставляешь кривые контроля в анимациях -> пишешь рейкасты и переставляешь веса контроля OnAnimatorIK в монобехе -> ты на коне.
https://www.youtube.com/watch?v=-BBpC0diOsI
ссылки скинешь? Мож куплю Интересно какого уровня аноны тут сидят и какого уровня игры можно уже выпускать
https://www.youtube.com/watch?v=CS7MudfyDzM&list=PLyBYG1JGBcd1E4CigRSDE9YdH8syiDY6-
Там конечно контроллер для шутера, но основы одинаковые для гуманоидов. Все что ты выше описал там присутствует.
> какого уровня игры можно уже выпускать
прикол хош? можно даже окно с одной кнопкой выпустить, но в таком случае нужно уметь продать это кнопку (охуенно оформить страницу, цену по минималке, и конечно же достижения)
прикол не хочу, хочу посмотреть что там анон выпускает
Есть определенный порог знаний переступив который ты вместо вопросов "КАК СРАТЬ ТО ПАЦАНЫ?", уже умеешь искать по ютубу и гитхабу.
Извини, но я обладаю навыком общения и иногда советуюсь с единомышленниками, как сейчас.
К твоему сожалению, но искать и решать свои вопросы куда быстрее и эффиктивнее самому, чем на борде или форуме. И это не только экономия в сотни раз, так и духовно спокойнее.
Вопрос, через что лучше реализовать? К кадрам привязываться не хочу
Так таймер ставь, который каждый кадр к значению прибавляет Time.deltaTime, и если значение превышает заданное, то происходит экзекут - изменение твоего параметра.
Благодарочка, Time.deltaTime то что надо
Префаб нужных префабов, скрипт со списком? Ебтвоюмать, откуда вы берётесь только?
Resources.Load нужен для загрузки, а добавление на сцену происходит через Instantiate. Можешь грузить через Jsons, сериализацию, adressables, но с таким уровнем знаний лучше пиздуй грузить коробки в пятерочке
Зачем мне сериализовать объекты, если они уже есть в проекте? Их просто нет на сцене, следовательно я не могу просто так передавать ссылки на них в Instantiate. Или нет?
>Зачем мне сериализовать объекты, если они уже есть в проекте?
>Их просто нет на сцене, следовательно я не могу просто так передавать ссылки на них в Instantiate
[[SerializeField] private GameObject _prefab;
private void Update()
{
if (yaYmamiDolbaiob)
{
GameObject newGameObject = Instantiate(_prefab, Vector3.zero, Quaternion.identity);
}
}
}
затем в скрипт ручками прокидываешь префаб из ресурсов
>private
Поясните за вот эту хуйню. Нахуя её объявлять если и так очевидно, что все что не публик = приват?
>Дайтикнижек почитать!!111
> Книжек на любой пук нет. Начинай изучать другие реализации на гитхабах и ассетах и выстраивай свой опыт на этом.
> РЯЯЯЯ ВЫ НЕ УЧИТИСЬ
Откудаж вы только блять беретесь?
Потому что есть конвенция. Пидарахи ей могут не следовать. Остальные же стараются уважать других и писать как рекомендуют.
https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/coding-style.md
неявное объявление добавляет нагрузки компилятору, усложняет читаемость, препятствует обнаружению ошибок самой IDEне в этом конкретном случае, но вообще
Единственное почему так следует делать именно реально, это для удобства и повышение читаемости кода для самого себя. Бонус в виде плюса для других волнует обычно меньше всего. Больше реальных причин для этого нет.
я говорил о неявном объявлении в принципе, сегодня ты доступ не прописываешь, завтра у тебя все переменные неявные, а послезавтра в жопу долбишься
>По сравнению с замусориванием однотипными дефолтными модификаторами - упрощает.
ну да, ну да, особенно в каких-нибудь аниматор контроллерах или эвент холдерах удобно разъебываться на парах десятков методов, когда половина из них публичные. Или в ецс, где большинство компонентов на пабликах, а ты из-за своей ебаной привычки не прописывать модификатор потом по 2 раза возвращаешься на исправление
>Блядь, я в ахуях, неужели тут все уже в курсе как сборки подключать, все шорткаты знаете, юнит тесты оформили, CI, DI, ECS, адресейблс и всю хуйню освоили? Если нет, то вы просто долбаебы, чей проект не доживет до релиза, либо кончится сразу после него
Больше половины терминов не знаю, но я в вебдев вкатывался просто начав дрочить курсы по ХТМЛ, КСС и ЖС, и после пару лет дроча устроился джуном в галеру и поехало. В галере мне просто ставили задачи и я справлялся с ними гуглингом и пердолингом.
Думаю применить мой опыт вката здесь. Сделаю прототип, и если он мне зайдёт, попробую выкатить ёрли аксес чтобы дурачки оплатили мне оставшуюся разработку игры.
Но кстати вебдев довольно дружелюбен для вката, у нас там есть роадмапы, которые расписали для вкатышей, по ним можно идти, гуглить документацию, курсы, смотреть примеры на гитхабе. С юнити пока не уверен, но вроде накопал инфы для начала.
Имеется старая игра, вот решил немного оживить её и обновить.
Сам проект собирался давно и было допущено много косяков в разных ресурсах и т.д. Игра также работает в связке со стимом.
Так вот, есть ли способ каким либо образом пересобрать взаимосвязи/префа/уровни, но уже в новом проекте? Обьясню почему - При работе в проекте через некоторое время(10-15мин) всегда происходит утечка памяти и редактор крашится и глючит после поглощения 12гб оперативы. Также высираются не понятные ошибки воркера, которые не гуглятся и являются тоже весьма редкими судя по всему, они же без описания лишь содержашие ссылки на кучу внутренних длл юнити. С нуля создавать и переносить ресурсы это нереальный гемор который займет пару недель, мб есть способ удобнее и быстрее?
В общем вопрос к олдам.
Юнити:
+ Дохуя обучалок и огромное коммьюнити говноделов
+ Нет роялти, после 100к в год надо тупо оформить подписон
- Закрытый исходный код
Анрил:
+ Открытый исходный код
+ Зарекомендованный движок, выпускавший дохуя ААА проектов
- Роялти
ты забыл что для юнити ещё и любой ассет можно запросто спиздить и ничего не будет
>С нуля создавать и переносить ресурсы это нереальный гемор который займет пару недель, мб есть способ удобнее и быстрее?
Либо приглашать чувака, который знаком с архитектурой, либо резать к чертовой матери, не дожидаясь перитонита знакомиться с архитектурой самому в любом случае. Ты можешь знакомиться просто открыв в вижуал студии, можешь переносить кусками механик и их изучая параллельно.
Пробегись по моделям. Мб префаб какой говно итд. Перенеси чисто код в новый проект и посмотри как он себя будет вести.
>Что выбрать: юнити или анрил?
Этот срач несостоятелен. Выбирай тот инструмент в котором компетентен больше и в котором хочешь работать. Ты не выбираешь дорогу в один конец. Попробуй то, попробуй это.
Юнити и Анрил инструменты для разных целей с разными целевыми платформами и с разными болячками.
И да, за
> Зарекомендованный движок, выпускавший дохуя ААА проектов
> огромное коммьюнити говноделов
Тебя бы нахуй послать, но поясню - и там и там овердохуя лютых говноделов делающих лютейшее говно. Ебучие необучаемые блупринтомакаки, дегенераты не понимающие вообще даже примерно как движок работает, но орущие что все говно и многое многое другое.
>после пару лет
ну, если у тебя есть столько времени, то пожалуйста, я в программировании 5 месяцев в принципе и за всю эту кухню шарю уже, надеюсь через 2-3 месяца идти уже джуном устраиваться
как ты и сказал
>Весьма специфичный вопрос.
пробовал версии юнити менять? профайлер смотрел где именно аллокации? как давно код написан, много легаси?
Универсального решения нет, ты либо пересобираешь, либо рефакторишь пара недель звучит как совсем недолго
Что ты делать то хочешь? Инди-говноделу всегда лучше зайдет юнити из-за простоты подключения сервисов и билда под разные платформы.
Если же ты у мамы хочешь делать ААА игры в калифорнии, то стоит анрил брать без вопросов.
> К минусам анрила C++ добавь плиз.
двачаю, в отличии от сисишарпа слишком не юзер френдли язык и слишком сложный для вкатунов, в особенности для тех у кого компуктер вчера появился
Да я сам всё делал, но было это дело 2 года назад, когда только вкатывался в стим, и наступил на кучу граблей, последние обновы на игру выпускались как раз в вечных крашах и ошибках, поэтому и забил на него.
Перенести чисто код или механики не получится, слишком всё взаимосвязанно и держится на липких костылях. Не конечно получится наверное, но это такой дрочь.
По ресурсом пробежался, да там половина срёт ошибками если в папку заходить, но не смотря на это работает.
>>87610
Как раз сейчас на ласт версию перенес и на ней копаюсь.
>профайлер смотрел где именно аллокации?
Там утечка в самом редакторе идёт, не во время игры, или даже не в собранном билде.
> как давно код написан, много легаси?
Два года назад, всё почти самописное, лишь парочка ассетов в виде эффектов и стим плагин.
>Универсального решения нет, ты либо пересобираешь, либо рефакторишь
Всё думал мб есть утилита, или у самих юников что-то на этот счёт. И того что нашёл это просто в папке либы поудалять подпапки кэша, но это вроде помогло, но не сильно.
>пара недель звучит как совсем недолго
Как бы да согласен, но давно уже забил на эту игрульку и похоронил её. Было желание так немного припудрить и выпустить обнову, пока в простое.
Ну может ты просто более серьезно к делу подошёл, я распиздяйничал те два года больше чем работал.
>Выбирай тот инструмент в котором компетентен больше и в котором хочешь работать.
Ну в том и проблема что я в обоих околонулевой и хз чего ждать
>Юнити и Анрил инструменты для разных целей с разными целевыми платформами и с разными болячками.
А можешь расписать хотя бы поверхностно вот это всё?
>>87602
>Тебя бы нахуй послать, но поясню - и там и там овердохуя лютых говноделов делающих лютейшее говно.
Толпа говноделов это плюс, если ты не заметил, ну как минимум с моей точки зрения, потому что количество переходит в качество. Толпа говноделов прокладывает дорогу будущей годноте. Я уверен что на анриле в свое время дохуя говна понавыпускали уже. Гораздо хуже когда на движке вообще толком нихуя не выпустили, даже совета спросить не у кого.
>>87613
ФПС но с необычными механиками. Еслиб это был обычный шутер, то пошёл бы с анрилом, но я слышал что выпустить ту же сабнаутику было бы сложнее на анриле чем на юнити, поэтому засомневался. ААА-проект не собираюсь делать, я хочу поэкспериментировать с новыми механиками и если моя инди-говнина взлетит то продамся большой студии и уже буду делать ААА. Но это всё пока мечты, нужно хотя бы до первого релиза дожить.
>>87622
Какой-то ноунейм двиг, не?
вообще тема анрил или юнити - холивар для долбаебов, так как реально это совершенно разные инструменты, типа молоток или отвертка.
Следует начать с выбора языка, а не с выбора платформы, так как мне, например плюсы изначально вообще не давались, но в сишарп я с первого взгляда влюбился, а потом уже после брейншифта через полгода уже любые языки читаются более-менее. Коллега у меня наоборот начинал с плюсов в универе и год потом работал с анрилом, потом переквалифицировался на юнити.
Если ты и в языках нулевой, то c#, а как следствие и юнити, дадутся гораздо проще
>мимо
UPD:
сорян, не для долбаебов, это просто вопрос для продюсера (на чем выпускаться?), а обычному разработчику совершенно глупо таким вопросом задаваться, ты что-то изучаешь - ты на этом работаешь. Если ты за бабками гонишься, то в геймдев вообще не входи, изучай питон и датасайнс, геймдев сейчас превращается в рынок мигрантов с бесплатной рабочей силой
Опять мимо, я хочу пилить проект мечты и эксприментировать с разными геймплейными механиками.
>>87656
Ок, я писал выше что хочу сделать ФПС но с необычными механиками, сидеть и экспериментировать, пробовать разное. Большим вдохновением для меня является сабнаутика. Прости, подробнее не хочу рассказывать.
> помогите советов
> Опять мимо
> я хочу
Да иди нахуй просто. Никто ничего доказывать тебе тут не собирается. Раз ты чмоня со стажем, то должен уметь в гугл.
Проект мечты он пилить собрался, лол.
Ну в гугле можно надолго застрять, я уже гуглил, думал может тут кто-то опытный раскидает по пунктам плюсы и минусы. Ну ок тогда.
блядь, ну пойми, научиться работать с графикой или купить дизайнеров проще, чем написать каркас игры. C# от C++ отличается не сильно, продумай архитектуру нужна ли тебе там сильная или слабая типизация, а если похуй, то я бы выбрал шарпы, потому что для могилок юнити билдить проще.
https://www.youtube.com/c/CodeParade/videos
вот пример, как парень на юнити создал игру в гиперболическом пространстве практически переписав движок, так что всё ограничивается только твоими способностями
>переписав движок
А юнити разве разрешает переписывать сорс код? У них там лицензия же вроде для референса-онли?
тебе не обязательно лезть в сорс для перепила, есть экстеншны, посетители и прочая нечисть
Без разницы что ты выберешь, все равно игру не сделаешь. Звучишь как восторженный нюфаня с охуитительным и секретными идеями.
Который нафантазировал себе уже манямире с карьерой в гейдеве за ближайшие пол года, но на всех форумах отписывает как что цель: для себя\как хобби\эксперементы\мечтаю сделать игру жить немогу!1 Сколько таких было.
Тебе ничего не мешает потратить пару месяцев и вместо доябывания на тупую и холиварную тему, просто взять и сделать пару мини-прототипов на обеих движках. Что понравится идеологически больше то и бери.
>Тебе ничего не мешает потратить пару месяцев и вместо доябывания на тупую и холиварную тему, просто взять и сделать пару мини-прототипов на обеих движках. Что понравится идеологически больше то и бери.
Я эту фазу уже давно прошёл и всё равно на заборе. У меня ощущение что тут никто глубже меня не погружался ни в один из движков, все как один отвечают что вот движки для разных целей и задач со своими плюсами и минусами, а что за цели и задачи с плюсами и минусами не отвечают, пиздец просто. Зато уже заагрились и назвали восторженным нюфаней - охуеть, а я разве говорил что я эксперт?
Походу придётся тупо по чуйке выбирать.
Но лениво же расписывать.
Открой одну из тысяч тем на хабре из разряда https://habr.com/ru/post/571806/ и обмазывайся коментами сколько хочешь. Ты можешь потратить пару лет на чтение такой холиварной темы, на эту тему написано миллионы постов, тысячи веток обсуждение на хабре, реддите, етк. Мне тебе сюда их принести все, хлебушек?
Зачем? Я же попросил хотя бы поверхностно плюсы и минусы с твоей точки зрения обоих движков. Я даже показал как я это вижу на данный момент. Просто я еще не делал что-то по-настоящему сложное ни на одном из движков, все проекты что я делал относительно типовые и потому я не упирался в особенности движков, но может на твоём опыте было что-то что тебе доставило проблем, или наоборот оказалось легче чем в другом движке.
Открой коменты статьи выше, там в первой ветки расписывают уникальный фичи для анрила, а дальше почему это не всегда нужно.
Ладно, спасибо что назвал меня восторженным ньюфаней который нихуя не сделает, подобная хуйня меня заряжает мотивацией. Как к тебе обращаться чтобы потом сказать тебе что ты был не прав?
На доске есть список игр, которые выпущены местным. Если я увижу шутан подводный пойму что был не прав.
Ну выставить point текстуре
Рендерить в 320-х240 текстуру (а кстати как? есть короткие гайды? (а не сратые видосы по три часа ради одной строчки кода)
Но это явно не совсем даст такую же картинку.
Пиздец ты идиот. Он задал вопрос, ответ на который занимает пару минут и несколько строчек текста, типа "я вот на юнити сделал то и это, очень хорошо подходит"
Нет, ты начал срать себе в штаны и надувать свою охуенную важность, засрал доску и время потратил.
Копай в сторону Render Texture.
Ещё изучи простейшую постобработку шейдером - полезно для ретростилистики.
Ну и unlit шейдеры научиться создавать буден очень неплохо - тоже в копилку стиля.
В общем через пару десятков часов гринда сможешь собрать подобный визуал.
Юнитач. Подскажи как получить координаты объекта?
Нужно что бы при уничтожении объекта он дестроился и на его координатах создавался разрушенный объект
gameObject.transform.position
Хочу сделать битмейкер апп. Типа видеорилейтед -https://youtu.be/tCgTq0uYaQo. Хорошая ли идея делать на юнити? Привлекает возможность кроссплатфоромы. Но я насколько видел, обычно такие приложения пилят на нативном Андроиде/айосе. Что думаете?
Всякие музыкальные ритм игры всю жизнь популярных в сторах. Можешь сделать, но придется учиться работать со звуком.
>А как вы учились писать шейдеры?
Открыл википедию, прочитал что такое шейдеры. Вся юнити-релейтед инфа содержится внезапно в документации к юнити.
Ну а как ты хочешь понять такое количество информации не смотря 4 часовые лекции? Читай документацию, хули.
Ну или пройди на официальном сайте юнитеков новый pathway про рендер, туториалы тут: https://catlikecoding.com/unity/tutorials/ где охенно разобрано все что связано с рендер пайплайном, ну или можешь посмотреть те же четырехчасовые лекции от наших лучших девочек юнити-сообщества https://www.youtube.com/playlist?list=PLImQaTpSAdsCnJon-Eir92SZMl7tPBS4Z
Шейдерфордж от трапа юзаешь. Тыкаешь ноды по примерам. Впираешь. В целом улавшиваешь логику, переходишь в код.
Я в курсе. Какое сообщество, такие и девочки.
Бля, а ведь на самом деле если подумать, то это буквально открытая ниша. В ру сегменте вообще нет челиков, которые учат рендеру или шейдерам. Только вскользь проходятся.
Жаль челики которые это знают не хотят писать гайдлайны, туторы. Я их от части понимаю, это же тупо головная боль без какого-то выхлопа. Чисто мб имя себе сделать. А так, наверняка тупо лень или времени нет.
Но как же заебно порой натыкаться на видос от индусов, которые в геймдеве так же не долго как мы, но которые все же записывают свои туторы на хинди или на "чистом" английском для своих коричневых братишек.
Наше сообщество и правда не любит заниматься чем-то для обучения кого-то. Печально.
А смысл то делать такие туторы? Просмотры небольшие и денег это не принесет. Лучше уж делать игры.
>Наше сообщество и правда не любит заниматься чем-то для обучения кого-то.
Так все есть на английском и если хочешь заниматься гейдевом учи язык.
Двачую. Как только выходишь за рамки тем для начинающих, резко падают просмотры. Заходит только говнецо которое делают популярные блоггеры вроде Brackeys, тупо беря какую-то простую фичу которую можно изучить за 5 минут в документации и растягивают ее на 30 минут с крутым монтажом, поставленной речью и простым, визуально ярким примером чтобы хомячки хоть что-то понимали охуевали от причастности к геймдеву.
Любой качественно структурированный материал сразу превращается в здоровенный цикл статей, книгу, 4+ часовое видео как у трапа выше и такое не заходит массам.
Открыл пару туториалов - там чуваки прям весь визуал игры ебашут на канвасе. Это норм вообще? Понятно, что там нету особо графена, но что-то мне подсказывает, что так не стоит делать. Или нет?
Просто люди игру делают, пока ты занимаешься хуйней
Вопрос чистого удобства, когда у тебя один интерактивный спрайт ты можешь делать как угодно.
Что думает тредик на этот счёт вообще? Как вы делаете? Городите ИФы и потом возможно переписываете или применяете какие-то другие паттерны?
В чём сложность? Две камеры, одна для рендера ui, вторая для 3д. Они никак не пересекаются, лишь скрипты для работы с ними.
Не пойму, что тебе не понятно?
Кому как удобнее. Лично делаю через скрипт и функции, т.к для понимания условий проще и дебага, кому-то проще через квадратики со стрелочками в машине.
Вот классическая статья. Я не прогер, и когда там начали про интерфейсы и прочее я охуел вообще
https://gameprogrammingpatterns.com/state.html
Юнити 3.0.0 beta7 постоянно подгружает какую то хуйню.
Проблема в глючной версии или я где то проебался?
Делаю через аниматор. Там готовый автомат, и надо только запилить состояния, переходы и условия. Сотни строк кода просто исчезли.
Чому не через свитч? Он же сразу берет одну строчку кода с проверкой и перескакивает на нужный блок, вместо последовательной проверки ифами. М?
наверно потому, что на каждое состояние нужно 3+ разных проверки, которые могут взаимоисключать друг-друга в зависимости от состояния и дальнейших действий, получится точно такаая же каша, только ещё более запутанная
Подскажите по функции OnMouseDown. Чому в функции не работает вторая кнопка мыши?
При этом она работает в Update
Да. Уже разобрался
Хочу попросить еще об одной подсказке
Делаю простейшкую мини-игру паззл и решительно не понимаю что тут с системой координат?
Два объекта находятся по одинаковым координатам , но при этом в разных местах. Чому так?
Координаты берутся либо мировые либо локальные от родителя, всегда чекай кто родитель.
Ну и в чём он не прав?
иф ит воркс, ит воркс
>проект несложный
Ну тут всё зависит что ты вкладываешь в понятие. Это 1к строк кода? 5к? 10к? 50к? 100к?
Если у тебя в скрипте будет более 10к строк, редактировать его, и делать по нему навигацию уже будет гемор и не понятки, да и структура юнити такова, что некоторые вещи ты сможешь сделать только имея десятки маленьких скриптов.
На словах может это и звучит круто, но в реальности лишь проблемы и сложности которые строишь себе сам.
Ага, гениально повторяем туториалы с ютуба.
Есть 4 типа разрабов в геймдеве.
Самый популярный - Читают и смотрят кучу туториалов, и тут же повторять делая чистый и прекрасный код, но на выходе такие ребята никогда не сделают игру, они мастера фантазий, но в реальности их максимум это одиночная меха в вакуме, зато всё по канонам чистого кода. А в основном они лишь пиздят.
Второй, уже редкий - Они посматривают в доки и туториалы, но делают уже саму игру, в которой естественно уже будет приличное количество говнокода и велосипедных конструкций, но у этих ребят, в отличии от тех кто выше, уже есть большая вероятность выпустить свою небольшую игру(Обычно они участвуют на джемах или мини конкурсах, т.к из-за нехватки опыта или комплексов боятся выпустить игру публично).
Третий, редчайший тип - Те кто планируют именно выпустить игру, и понимают что для этого надо помимо кодинга, очень много аспектов, они потеют строя говно архитектуру, всё держится на костылях, но работает и даже не лагает/вылетает, и как правило, они даже успевают выпустить свою игрульку в стим, собрал пару десятку отзывов и заработав +-500$. Из этого типа обычно расходятся дороги в кучу других.
Ну и божественно редкий тип - У них и код, и проект, в почти идеальной чистоте, они используют на максимум все знания, такие как правило уже помидоры, или одиночки которые прохавали как зарабатывать кэш, и выпускают по небольшой игрульке раз в пол годика. Но в большей степени это фантазии из 1 типа.
Вывод как всегда очень прост - Ставишь цель сделать игру, делаешь. Ставишь цель кодить, кодишь, но законченную игру никогда не выпустишь. Для конечного пользователя всегда важен графен, контент, чтоб не лагало и не выетало.
>пытался понять, как запилить стейт машину в коде
А чё там сложного-то? Читай определение:
https://ru.wikipedia.org/wiki/Конечный_автомат
Вот простой конечный автомат (на Паскале):
case state of:
0: state := 1;
1: state := 2;
2: state := 0;
end;
У нас здесь:
- один вход
- один выход
- три возможных состояния
Всё! Конечный автомат готов и работает.
Что тут может быть сложного в реализации?
мимо проходил
>то же самое, что и ИФы с проверкой состояния
Суть конечного автомата не зависит от способа реализации.
>>88093
>на каждое состояние нужно 3+ разных проверки, которые могут взаимоисключать друг-друга в зависимости от состояния и дальнейших действий
Ну и что? Конечный автомат в каждый момент времени только в одном из возможных состояний. Простой пример: ты можешь сделать персонажа, который либо бежит, либо прыгает - это два состояния. Если ты хочешь сделать персонажа, который сможет прыгать с разбега - ему нужно третье состояние "прыжок с разбега". Если персонаж сможет стрелять, ему нужны ещё три состояния: стрельба на бегу, стрельба в прыжке, стрельба в прыжке с разбега. И так далее. Если тебе нужно запретить стрельбу в прыжке - просто запрещаешь переход из состояния "прыжок" в состояние "стрельба в прыжке" и персонаж больше не может стрелять, пока не приземлится. В результате тебе не нужно делать никаких лишних проверок, достаточно только знать, в каком состоянии находится персонаж.
Уже много лет пытаюсь вылезти из первого типа. По началу решил что нужно упороться в программировании и по мере вката решил что смогу набить экспу в вебдеве ибо туда вкатиться проще. В итоге успешно вкатился в вебдев и заработал там денег, а игру так и не сделал, даже сейчас по совету анона прохожу pathways якобы мне это даст подсказку по моему проекту, который я так и не начал.
Онон и видно, что ты мимо проходил. Ты походу ещё и мимо читал. Теперь сделай то же самое на шарпе в юнити с классами, функциями и прочим.
Это не типы разрабов, это просто градации. Как те же условные джун/миддол/помидор.
Сперва пишешь прототип по туторам с ютуба или курсов, воруя код и даже не задаваясь вопросом почему он написан так а не иначе.
Потом спустя определенное время захочешь что-то изменить/добавить свое/улучшить и ты идешь снова в гугл, открываешь доку или тутор, выбираешь нужное и делаешь правки.
И так дальше и дальше. Сперва почти все разрабы чмохи которые от куда-то копипастят код чтобы набить свою головешку хоть чем-то полезным. Самое главное, это в определенный момент перестать заниматься этим и попытаться все таки преодолевая себя научиться решать основные задачи без подсмотров у кого-то.
И потом, может быть, спустя миллионы лет когда ты станешь гуру в области программирования, ты все равно так же откроешь код на стакоферфлоу, скопируешь и вставишь себе, даже не разбираясь как он там работает. Тебе это уже тупо не надо. Ты в своем сознании преисполнился.
Все делают, но только аноны с двача считают это не возможно. Хех.
А в чём собсно проблема эту кейс конструкцию замутить внутри класса? Вот буквально 1 в 1 перенести?
public class MamkuEbal : MonoBehaviour
{
void StateMashinaEbat()
{
switch (state)
{
case 3:
stateThree();
break;
case 2:
stateTwo();
break;
case 1:
stateOne();
break;
default:
stateDefault();
break;
}
}
}
ага. А потом у тебя появляются дополнительные условия в стейте, типа проверок дистанции, нулов, анимации и прочее и ты делаешь в этом сратом свиче ифы. И твоя конструкция становиться всратей x2.
Хотя для какого-то платформера где всего пару состояний и эти состояния чисто номинальны и нужны максимум для анимации, то такое пойдет.
они и так сериализуются. я к тому что некоторые классы разумно инициализировать через конструктор, но когда тебе надо чтобы они отображались в инспекторе то разумно к ним дописывать какой-то метод для инициализации. и чето это не всегда удобно.
>А потом у тебя появляются дополнительные условия в стейте
Ты видешь что я делаю вызов функции? Там и делай свои йоба-конструкции, или вне стейт-машины. Зачем тебе это делать прямо в свитче?
Ты видимо у мамы особенный.
Ты просто слишком жирный.
Какая разница где ты делаешь свои еба конструкции. Они все равно будут в твоем еба классе на 600 строк, с кучей ответственности не нужной. Вместо того чтобы храниться в мелких классах которые отвечают за что-то одно.
А тебе кто-то запрещает создавать классы для разных задач? И вообще хватит двигать гоалпосты, выше тебе даже скинули ссылку на гугл где можно подобрать реализацию стейт-машины через класс и enum, хули ты выёбываешься сидишь я не пойму?
Чет по-моему это ты слишком жирный. либо настолько туп, что не понимаешь абстрактность его примера.
Я не понимаю. Если ты слишком туп, чтобы сделать как надо, даже не понимаешь принцип конечно реализации, то на каком основании ты обсираешь чужие, если обсуждаемая проблема за пределами твоей компетенции лул?
Мне кажется он от балды спизданул а теперь пытается как можно дольше продержаться прежде чем все в треде поймут что он абсолютный ноль в программировании. Я также когда-то делал, иногда мне удавалось всё свести к тому что меня не поняли просто и я имел ввиду другое и на этом расходились, но для этого нужно иметь хоть какой-то уровень компетенции.
> Я не понимаю
Это и так понятно.
Я лишь говорю что твоя реализация стейт машины дерьмо. Вот от слова совсем. Потому что она не покрывает большинства даже средних кейсов. Так понятнее?
Если возникнет кукаре-ку вопрос "а шо за кейсы, какие проблемы", то можешь как бы смело идти нахуй. Ведь у тебя явно опыта нет.
Хотя ты хоть можешь в гугл анон. Уже не плохо.
Забей, уже всем понятно, что обосрашка включила режим клоуна.
Вообще, сколько у вас стоит значение? 0.13 не сильно угробит производельность?
Как передать позицию камеры из эдитора в "игру" при нажатии в эдиторе Play?
что значит из эдитора в игру?
Допустим у меня спрайтшит на 10 кадров, где в каждом спрайте лампочка на фонаре качается, где прикрепить источник света к этому движению
Есть пункт в меню чтобы камера встала на тот вид который в эдиторе.
В общем, толкаю персонажа (точнее капсулу с rigidbody и камерой) с помощью rigidbody.MovePosition в fixedUpdate.
Все ок, ходит нормально, предметы толкает нормально.
С какими подводными могу столкнуться?
Как там вообще белые люди реализуют движение 3d персонажа от первого лица?
У меня камера прикреплена дочерним элементом, она
вращается только вверх или вниз, а влево и вправо крутится только капсула. Может стоит просто сделать камеру отдельным объектом, которая просто следует за капсулой
Почему люди просто не читают шапку? Вот серия туториолов https://catlikecoding.com/unity/tutorials/movement/ где разжёвано прямо для дебилов контролер перемещение около-физичный с возможностью цеплятся за стены, плавать и т.д
Тебе же так-как ты хочешь от первого нужно от туда буквально треть и поставить синимашину, чтобы не ебаться с написанием своей камеры.
Перемещение через рижибади, да и вообще через физику не очень хорошо. Обычно продвинутые убер контроллеры написаны без учета почти физики тупа кинематика
В твоем примере же вроде перемещение онли через физику. Ну или я не увидел где он там его меняет потом.
Протыкласник твой сказал?
Нужно отталкиваться от задач и если ты не можешь написать свою физику, ты используешь чужую и не выёбываешься. Когда сможешь написать полность кинематичный контролер - тогда и будешь его использовать.
У тебя задача игры делать или на код дрочить?
private void OnTriggerEnter(Collider other)
{
Destroy(gameObject);
Destroy(other.gameObject);
}
так вот чел который записывал видео, запихнул этот скрипт в оба сталкивающихся объекта, в зверя и в пиццу. Вопрос нахуя, если я пихаю его в пиццу и она уничтожает обоих? Или типо один из объектов первым обработает код, делитнет себя и другого, а другой тупо не запустит свой скрипт и поэтому похуй что скрипт в обоих?
Ты относишься к этому слишком серьезно, там показывают пример как оно вообще работает.
Может быть любой вариант, и еще множество: например они будут еще при столкновении друг с другом уничтожаться или еще с чем, нет смысла гадать.
>первым обработает код, делитнет себя и другого, а другой тупо не запустит свой скрипт
По идее оба скрипта отработают, т.к. Destroy уничтожает объект не мгновенно при вызове этого метода, а при переходе игры на обработку следующего кадра.
Понял/принял.
>Теперь сделай то же самое на шарпе в юнити с классами, функциями и прочим.
А, так бы сразу и говорил, что у тебя проблема не с конечными автоматами, а с использованием на практике
>шарпа, юнити, классов, функций и прочего.
Тогда могу посоветовать продолжать изучать программирование и больше практиковаться - с опытом придут знания и навыки.
>>88238
>классе на 600 строк
Вполне нормальный, даже какой-то малюсенький класс.
>с кучей ответственности не нужной
Это уже проблема твоего неправильного применения конечного автомата. Делай такую архитектуру, в которой не нужен один глобальный конечный автомат, управляющий всем и сразу.
>храниться в мелких классах которые отвечают за что-то одно.
А потом твоя игра будет ждать GC каждые несколько секунд, а ты будешь рекомендовать игрокам купить более мощный ПК, чтобы эти подвисания случались реже.
>>88245
>она не покрывает большинства даже средних кейсов
С чего вдруг ты решил писать максимально универсальный конечный автомат на все случаи жизни? Ты вообще игры делаешь или только максимально универсальные фреймворки?
>Если возникнет вопрос "а шо за кейсы, какие проблемы", у тебя явно опыта нет.
Это у тебя опыта нет, если ты не можешь объяснить, в чём твоя проблема и с чем именно ты столкнулся на практике. Выглядит как нытьё новичка "ой, кодить сложна, надо ведь по клавишам пальцами попадать, я так не умею".
> 600 строк говна - маленький класс
> юнитеки буквально говорят юзать компонентный подход, потому что он лучше.
Ты что сказать то хотел, дурилка? При чем тут компоненты и твой GC? Или ты недавно узнал что такое существует и решил приплести? Тогда может хоть узнаешь когда он вызывается?
На остальное твое сообщение и отвечать не хочется, ты явно вообще не понял о чем я говорил. Про какие-то сложности, фреймфорки, универсальные атвоматы. Ты наркоман что ли?
Ставил, но вообще никакой разницы не заметил. У меня подозрение, что это потому, что камера у персонажа в качестве дочернего элемента, то есть, ее толкает само физическое тело и естественно она тоже двигается рывками. Надо попробовать камеру сделать отдельным обжектом, который тупо следует за капсулой игрока с smooth lerp
Во-первых, все что мне надо реализовать - это ходить wasd и мышкой. И все, никаких прыжков, цепляния за стены, приседа и прочего. То есть код не должен быть большим и сложным. У меня он занимает 12 строчек.
Во-вторых, мне нравится делать самому. Это мое хобби а не работа, я не тороплюсь.
Почему бы просто не отвечать на вопрос, не приплетая своего мнения? Зачем напрягаться? Так будет легче и тебе и мне.
Ставь https://unity.com/ru/unity/features/editor/art-and-design/cinemachine для камеры, не пиши свои костыли все уже сделано до тебя.
Старайся делать максимально плоскую структуру без дочерних элементов, это совет от юнитеков.
Вот тут разобрано: https://catlikecoding.com/unity/tutorials/movement/orbit-camera/#:~:text=jittery camera motion
Чееел, конечно камера должна следовать за объектом и вообще может никак к нему не привязана иерархией, ты вообще хоть один видос-тутор смотрел с кинематиком или от 3 лица? Скачай готовый ассет и посмотри как сделано, там скрипт буквально на 50 строчек с уже плавным сглаживание.
Но если хочешь как в рпг, то юники завезли специальную кине-машину для этого готовую, там и зум, и сглаживание, и обстакле детекция, лишь ползунки крутить для себя остаётся. Сам свой велосипед заебёшься писать для такого.
Как хочешь. Будет негибкий метод, как делают всякие тупорылые блогеры туториалы на ютубчике.
>Тогда может хоть узнаешь когда он вызывается?
https://docs.unity3d.com/Manual/performance-garbage-collector.html
>Unity uses a garbage collector to reclaim memory from objects that your application and Unity are no longer using. When a script tries to make an allocation on the managed heap but there isn’t enough free heap memory to accommodate the allocation, Unity runs the garbage collector. When the garbage collector runs, it examines all objects in the heap, and marks for deletion any objects that your application no longer references. Unity then deletes the unreferenced objects, which frees up memory.
Т.е. сначала твоя игра распухнет и займёт всю доступную ей память, потом в рандомный момент времени проснётся GC, пройдёт по всем объектам в памяти, посчитает ссылки и отметит лишние, затем освободит лишние и вернёт управление игре (в режиме по умолчанию эта работа распределена на несколько кадров, но от этого не сильно легче, всё равно GC отнимает время кадра).
>На остальное твое сообщение и отвечать не хочется
Потому что не знаешь, чем ответить. Ты утверждаешь, что делаешь только гиперказуалки, потому что нормальные игры у тебя не получается делать - почему не получается? Потому что боишься написать маленький классик на 600+ строчичек? Или потому что не любишь документировать свой код?
>new input system
Зачем это использовать? Она поломанная и багнутая на половину. Используй старую.
Во 1х мы используем ютилиту которая включает мусорщик в параллельном потоке не приостанавливая поток с игрой.
Во 2х, с чего ты взял что компоненты которые постоянно используются и на которые есть ссылки, будут очищаться из памяти?
Я не говорю тебе создавать класс из-за 3х строчек кода. Но когда у тебя есть класс в котором 600 строк кода, и который наверняка раздутый просто потому, что в нем разная ответственность, то почему бы это не раздробить?
Твои методы и переменные в этом классе так же будут очищаться мусорщиком. Так в чем твоя претензия?
> Ты утверждаешь, что делаешь только гиперказуалки
Ну а это уже чисто твои домыслы. Если для тебя показатель большого проекта это кол-во строк в одном классе, то...
Но рассказать несколько случаев про баги и что-то нерабочее ты конечно не сможешь.
А что ты хочешь услышать? Или может тебе видео со скринами на блюдечке принести?
Тебе более опытный девелопер говорит что лучше её не использовать и там есть косяки, ты должен понять что если есть голова просто пишешь в гугле new input system error/bug и наслаждаешься кучей разных проблем. Лично сам сталкивался с невозможностью адекватной настройки и передачи.
Ты точно про это https://docs.unity3d.com/Packages/com.unity.inputsystem@1.3/ ?
Ну хз, достаточно заполнить .inputactions, и ты уже можешь принимать данные сразу с клавы, мыши, виртуальных и реальных джойстиков. Тестировал небольшую демку на PC и на андроиде, где были виртуальные UI джойстики и кнопки (которые есть в комлекте с пакетом), все четко. Данные от всех устройств получаешь одной строчкой
А че сразу не сказал ввести unity error/bag? Там еще больше ссылок найдет))0)
Ты просто так пукнул получается, сказав что она аж на половину поломанная. Опытный девелопер
Так это ж ты пришел, высрал чет, нихуя не пруфанул, а теперь все еще продолжаешь срать. Робин-гуд мля)0).
нафаня
Сап гдач, такие траблы не могу понять как обращаться к отдельным частям меша?
Есть робот собранный из примитивных фигурок у него руки поворачиваются в из стороны в сторону в идле режиме. Анимацию сделал внутри движка. Повесил скрипт на робота с бросанием луча. Когда игрок попадает в зону действия рук то открывается огонь. Но столкнулся с тем что компилятор выдаёт ошибку он не понимает что нужно вращать только руки и ругается. Пробовал нацепить скрипт не на робота а на сами движущие руки и ничего не происходит, луч не кидается.
За помощь буду благодарен, с меня как обычно нихуя.
Делаешь скрипт UI manager, в нём при инициализации в авэйке или когда она у тебя происходит заносишь ссылками или любым другим путём весь нужный ui для логики.
В нём есть либо функции либо доступ к этим элементам, всё.
Логика проста -> У нас есть ссылки на все элементы -> Запрашиваем нужный элемент либо посылаем элементу команду -> Можно спокойно расширять или разбивать на множество скриптов.
Делаешь в логике событие. Вызываешь его, когда тебе надо.
Делаешь скрипт для ЮИ, подписываешься на событие.
Поздравляю, вы изучили почти MVP паттерн!
Корректно работает со scale 1 но ума не приложу как реализовать со scale -1(на нем висит разворот персонаж).
Нужна помощь потом как я уже головой ебнусь с этими углами и системой координат
https://youtu.be/Ybc0QzTgSIk
Наверно потому что пытается женский голос имитировать, но выходит не натурально. Вот более мужской голос.
Можно персонажу сделать родительский объект, персонажа скейлить, а родителя вращать?
>Ну а это уже чисто твои домыслы. Если для тебя показатель большого проекта это кол-во строк в одном классе, то...
>>88193
>Я литературно охуел от того, каким надо быть умным в кодинге и почти дропнул геймдев из-за этого(теперь пилю только кал, который стыдно показывать).
Т.е. ты делаешь кал огромных масштабов?
Т.к. Unity направлена на начинающих разработчиков, данную функциональность отключить нельзя.
Не рекомендуем этого делать.
Нажал на "скачать через hub", вылезло окно, где можно галочками выбрать дополнительные пакеты, типа документация, ios support, android suppport.
Вот только все это я уже качал, когда устанавливал 2020.3.26, но видимо придется заново качать, ибо те были сохранены в 2020.3.26\Editor\Data\... (посмотрел пути в references)
Юнете параша не может нормально устроить обновление, блять
Ты дебил?
Пути к компонентам можно указать вручную, но ты же прибежишь спрашивать А ГДЕ СКАЧАТЬ АНДРОИД СДК, поэтому для даунов всё устанавливается в папку с юнити.
Если ты не способен написать 2 слова в гугл, то тебе и правда не стоит заниматься разработкой.
Сделал у скрипта публичные property(j(из базовых типов данных). Но в инспекторе их почему-то не видно. Видно только обычные публичные поля. Можно ли как-то сделать чтобы все видно было?
Какие слова написать, дурачок?
Поля инспектор видит, свойства не видит. Придется выбрать.
>Можно ли как-то сделать чтобы все видно было?
Можно, но с кастомным интерфейсом много ебатни.
Фриз (делал через Time.timescale) и рестарт через нажатие клавиши реализовал, а вот как сделать так, чтобы до фриза положение сбрасывалось на исходное? Пытался присваивать позицию объектам и до изменения таймскейла на ноль, и после - ноль результата, игра фризится в момент забивания гола, и после нажатия уже идет рестарт.
Как фиксить? Мне не надо готовый код, просто скажите что юзать и в каком направлении копать, а то я даже нормальный запрос в яндекс сделать не могу, тк я даже хз как это сформулировать
Спасибо!
>игра фризилась до нажатия любой клавиши.
>игра фризится в момент забивания гола, и после нажатия уже идет рестарт.
охуенно описал. влепи задержку на импут после фриза.
Не, щас попробую объяснить.
Представим что в момент забивания гола игра фризится как на пикрил 1, а мне надо, чтобы после того как мяч влетит в ворота, состояние объектов возвращалось в исходное (короче как на пикрил 2 только еще мяч посредине) и только после этого был фриз и ожидание пользователя. И я не понимаю как это сделать. У меня есть идея, что надо просто в функцию апдейта это все как то организовать, но я хз
запоминаешь исходные координаты объектов перед стартом игры. типа 3 переменные. после гола передаешь их ф трансформ объектов, они влетают в старотвые позиции. фризиш. ждешь.
Нахуй тебе URP если ты в рендере не разбираешься? Юзай стоковый рендер, если ты не лезешь.
Делал так. Все равно фриз идет в момент забивания гола, а телепорт к исходным только после инпута от пользователя. А мне надо до фриза
>Делал так.
как так? мне лично непонятно как ты сделал. Ну т.е. я понимаю, что принцип у тебя так, только реализация у тебя не так. Ну сделай так. типо чтобы скрипт возвращения на стартовую позицию был завязан на гол, а скрипт фриза на координаты объектов, и если они == стартовые, то игра на паузе до инпута. У тебя тогда физически не получится, чтобы фризило до возвращения
Если будет интересно, глянь, может поймешь, как я реализовал. Думал без кода получится объяснить, но видимо нет
https://github.com/OUTS1D3R047/Pong/blob/master/Assets/Scripts/Ball.cs
Я хз как юнити работает, но есть подохрение, что он должен перед отрисовкой кадра скрипт выполнить полность. Получает таймскейл 0 и вот как бы да.
Ну слушай это моя первая игра. Допишу ИИ, менюшки, звуки, VFX сделаю, выгружу в маркеты, тогда и буду "вторую фазу" своих фич имплементировать. Пока вот так.
Юнитеки нахуй сломали там что-то в последних версиях, обещали исправить, на лтс версии должно быть наверное нормально, я сам хуй знает, на последней сижу. Если эта хуйня думает больше 30 секунд надо через диспетчер в пизду гасить, сама по себе хуй догрузит. Пиздец короче.
А По какому процессу ее убивать? Она как бы висит часми и не начто не влияет , можно задвинуть в угол и не обращать внимания
Заранее спасибо
Пофиксил, я затупил что коллизия происходит только у мяча, и передвинул телепорт объекта в апдейт при условии что таймскейл 0
Насколько сложно на Unity создать классическую пошаговую боевку Как в миллиардах jrpg или каком-нибудь Battle Brothers?
И ещё один:
Каким диалоговым ассетом лучше всего воспользоваться для построения водопадных и, желательно, узловых тоже диалогов?
>создать классическую пошаговую боевку
Не сложно, т.к она пошаговая то схема будет простая -> Строится массив объектов которые в бою, и далее по формуле они ходят по очереди. Визуально тоже самое.
>Каким диалоговым ассетом лучше всего воспользоваться для построения водопадных
Тут уже стоит исходить из собственных потребностей или возможностей, так-же можно своё написать, это тоже не сложно.
Спасибо за ответ.
Осталось только выяснить, это программист меня дрочит или схема не такая уж простая.
Трап делающий лучший обучающий контент по юнити и ее\его "девушка", которая тоже трап.
Ты тредом ошибся.
>или схема не такая уж простая
Не такая уж простая, если все разрабатывать с нуля. Тут буквально все стоит на компетенции программиста, его опыта и насколько ты юзаешь готовые реализации. Ты ахуеешь если это вообще ВСЕ с нуля.
На юдеми курс был по созданию 2д рпг. Там челик делал пошаговую боевку. Код не ахти конечно вроде, но работало. Сам скрипт вышел на 600 строк, лол.
Можешь купить курс или спиратить (на торрентах есть).
The Complete Guide to C# & Unity Programming - Build an RPG
Программист сначала плевался во все стороны и говорил, что код повсюду дерьмо и все дебилы. Потом передумал.
Сделал сетку и очки действий и просчет пути. Теперь уперся в раунды и очередность.
Вот я и думаю - может вместо того, чтобы велосипед изобретать, тупо взять откуда-то, да и вся недолгая?
Единственное что не знаю как там с авторскими правами дела обстоят.
>>89010
А вот это спасибо. Надеюсь поможет.
Нормальные ребята покупают куча ассетов среднейхуевости и делают быстро прототип, смотрят метрики, тестят и потом уже садятся писать полноценно проект.
>Нормальные ребята
Боюсь это не про нас. Я вон, от безысходности, генерацию и диалоги на ренпае вообще пилю. А ты говоришь - нормальные...
Но вообще да, надо тупо взять чужой код и оттуда плясать. Пытаюсь этот чертов курс найти.
Кинул бы тебе ссылку, но тут вроде запрещены.
Вообще просто вбей это в torlook или аналогах. Найдешь думаю сразу.
Почти любой кейс обсасывали в туториалах на бурж. ютубе, конечно в просто реализации но и ты не ААА игру делаешь.
В первую очередь референсы ищи, можешь даже на яве и си-подобных языках готовые проекты на гитхабе брать как пример. Да и ассеты платные можно пиратить и выдирать от туда куски.
Кажется, нашел.
Спасибо, ты прямо выручаешь.
>>89028
>Да и ассеты платные можно пиратить и выдирать от туда куски.
Изначально и планировали. Смотреть как написано, и делать примерно так же.
Но что-то не срастается. Не выходит у программиста код заимствовать. Говорит код везде плохой, а плохо делать не хочет.
Вот я и пытаюсь разобраться в чем дело. Помочь хоть как-то.
Сейчас вон, буду по совету доброго анона пытаться под копирку проект создать. Сам я в программировании почти нихрена не понимаю, ну да ладно. Надеюсь там всё для дебилов растолкуют.
>>89030 (Del)
Бог его знает. Проект-то, вроде, простой как палка. Три режима:
Первый: стандартный, бегай по курсору, тыкай на нпц, устраивай анальные диалоги.
Второй: передвигай фишку по ячейкам квадратному или гексагональному полю с триггерами, кликай по кнопочкам, получай результаты & балабольство персонажей & очередной бой.
Ну а третий: стандартная пошаговая боёвка в квадратном поле, которую на том же юнити даже в порно-играх делают.
Я думал ничего сверхъестественного.
>ничего сверхъестественного
Мне влом тебе описывать все проблемы реализации, но знай, в твоем списке у каждого пункта есть дохуя подпунктов и если нет проектов готовых где ты можешь брать готовые модули будет геморройно и долго делать для начинающего.
>Я вон, от безысходности, генерацию и диалоги на ренпае вообще пилю.
Дурак ты. Так и быть, посоветую годноту. Yarn Spinner - готовая диалоговая система тупо для юнити. Бери, вставляй, юзай.
Слушай, а выглядит удобно! Я весь магазин юнити перерыл в поисках подобного. Спасибо тебе!
>>89041
Скорее всего так и есть.
>>89044 (Del)
А сколько бы это примерно стоило? Ну так, на всякий случай?
Поможите по аниматору
Сделал персонажа. реализовал прицеливание по курсору(персонаж водит винтовкой по точке курсора).
Оружие реализовано как отдельный GameObject и вполне дружит с аниматором персонажа(через аниматор персонажа реализовано покачивание оружия при ходьбе) .
Но почему то при попытке анимировать выстрел через собственный аниматор оружия не работает функция прицеливания .
Что сделал не так?
проблема решена
>Слушай, а выглядит удобно! Я весь магазин юнити перерыл в поисках подобного. Спасибо тебе!
Я знаю, анон. Я сам так же. Это реально лучшее решение + бесплатное.
public Image mask_;
и
public GameObject mask_;
какой предпочтительнее? картинка просто закрывает часть текста и меняем свою прозрачность через этот скрипт
>public Image mask_;
Ясен хуй это. Public GameObject - пиздец говноедство использовать кроме вынужденных мер. Просто потому что ты делая геймобджект повышаешь риск объебаться для всех. От самого тебя, до того дизайнера или стороннего чувака, который тоже обосрётся.
Он повышает риски объеба с этим гет.компонентом и юзается по потребности. Всякие случаи бывают.
Объект изначально 100% прозрачен со всеми дочерними
Еще есть левая кнопка, которая дергает метод в скрипте висящем на этом объекте, метод меняет в этом скрипте переменную и по ней в этом же скрипте в апдейте плавно меняется прозрачность через увеличение GetComponent<CanvasGroup>().alpha с 0 до 1.
И все охуенно работает.. но не в билде. В билде при перезаходе в стартовую сцену этот 100% прозрачный объект ведет себя как деактивированный. Т.е. можно дергать в нем методы, но ни старт, ни апдейт не работают.
Они работают при первоначальном запуске, но не при перезаходе в сцену. Причем только в билде.
И это пиздец если честно, нахуя вот так делать, что в редакторе и в сборке разная логика? Понимаю, что они хотели что-то там оптимизировать, но зачем это делать таким способом?
Есть третий, правильный стул. Делаешь приватку и получаешь ссылку на неё.
Отучайся использовать паблике.
Если даже не вдаваться в детали, то можно руководствуясь ISP, просто откинуть второй вариант.
Давай попробуем разобраться.
Сцена полностью меняется или подругжается через additional?
Твой объект со скриптом изначально активирован?
Еще попробуй сделать development билд и пиши в логи всю инфу.
Объект всегда активен, изначально имеет 100% прозрачность через компонент Canvas Group и находится в сцене меню, происходит переход в другую сцену и потом возврат в меню.
В редакторе все работает, но в билде при возврате в сцену меню скрипт этого объекта не работает - ни старт, ни апдейт
Ты можешь воспроизвести, создав такой объект, и добавив в старт его скрипта, каротину которая через n должна включить его прозрачность. В билде при возврате в его сцену эта каротина не сработает, хотя при первом запуске и в редакторе все будет работать.
>ни старт, ни апдейт
Попахивает магией, не иначе. Ладно старт может не сработать если обьект не уничтожаемый между сценами, но апдейт, это уже за гранью. Советую хотябы просто пару дебаг логов сделать, где-то ты хуйню наворатил.
Ссылки на скрипты: https://ideone.com/rfFaJk (счет)
https://ideone.com/J1TFTX (мяч)
Трабл в том, что при считывании переменная winner постоянно сука null из-за чего у меня образуется null reference exception (или как то так). Хотя очевидно что я виннеру значение присваиваю.
Вопрос - хули делать? Я весь гугол облазил нихуя не нашел, все что там советуют я уже делал и результат один и тот же
Спасибо
Говнокод уровня индусов с ютуба конечно. Но да хуй с ним.
Ты свой мяч как создаешь? Из префаба или он уже есть у тебя на сцене?
Попробуй поиск ссылки на мяч сделать через авэйк. Второй вариант попробуй убрать поиск мяча в старте и сделай присваивание через инспектор. Тести в общем.
Очевидно что у тебя не winner равен null, а ball. Ты точно на объект мяча скрипт Ball навесил?
Дополню что т.к текст меняется лишь при событие лучше вынести это в отдельную функцию и вызывать только когда это происходит.
Потому что апдейт вызывается по 10050 раз в секунду, и нету смысла так его дрочить.
Также есть вариант попробовать в ручную сделать поиск объекта и уже у него взять ссылку на скрипт. Тут где-то мелкий проёб есть.
В смысле не говнокод?
Тут буквально по пунктам все совпадает.
1. ball = FindObjectOfType<Ball>(); зачем ты это делаешь, если у тебя публичное поле которое ты можешь заполнить через инспектор?
2. Time.timeScale == 0 что это? Почему какой-то юайтекс делает такие проверки? Почему у какого-то юайтекста есть апдейт?
Почему нельзя обновить юай через ивенты? У тебя там уже есть мяч, сделай ивент в мяче, в юайе подпишись и обрабатывай как тебе угодно. И хотя это все еще будет не правильно, так как юай имеет ссылку на мяч (а это ведь по сути твой игрок, а значит высокоуровневый класс), но все еще лучше чем было.
3. Какие еще кейсы по строкам? Да еще и по имени объекта на сцене. И это ж не даеб ради доеба, если ты захочешь переименовать что-то, тебе надо будет лезть по всем скриптам и менять все там.
4. Закешируй ты уже переменную GetComponent<Rigidbody2D>() раз вызываешь так часто.
5. Раз тебе надо просто знать какой игрок выиграл, используй enum а не текст.
Там еще очень много до чего можно доебаться, но в этом уже нет смысла. Так как даже базовые вещи хромают.
Почему не посмотришь каких-то хороших курсов? Не наберешься опыта и не забьешь голову правильными вещами от опытных людей, чем привыкать писать сразу такое. Чеж вам всем неймется свою "игру" пытаться делать после недели обучения.
Насчет 3 и 5, я позже сменю, тк хочу потом опцию ввода имени ввести, это на уровне прототипа. Я бля лучше буду сначала делать потом теорию смотреть. Сколько раз начинал с теории и нихуя не заканчивал. А тут работа кипит
Сделал так чтобы виннер виделся. Но теперь значение не присваивается UI переменным. И ИДЕ выдает типа им нигде не присваивается значение и они по КД будут null. Хотя очевидно это не так. Ебучий Text Mesh Pro, а обычный текст слишком заблюренный, хуй знает как фиксить
1280x720, 0:07
Да пошел ты на хуй, хватит меня демотивировать. Я блять смог сделать так, что щас все работает. Мудаки токсичные, лишь бы засрать
1280x720, 0:03
Один засрал, второй посоветовал экспериментировать. Последовал совету второго анона, получилось, сейчас все работает как я и хотел. Говнокод или не говнокод - другой вопрос. Хоть я и стараюсь делать по умному, но объективно скилла не дотягивает, так что делаю как могу.
Пока главный принцип: "Работает, как я хотел, ну и хорошо"
Ничего не заставляет работать голову на полную как придумка собственных решений. Не слушай дурачков ворователей чужого кода. Твори!
Спасибо, надеюсь в этот раз я доведу все до конца (настроен максимально решительно)
Нормальный голос. Всяко лучше картавых индусов пишущихся на гарнитуру от ксяоми, которые за свои "курсы" ещё и деньги пытаются требовать.
Я другой анон, и пробовать писать код всё равно нужно, но еще нужно взращивать майндсет постоянного обучения и улучшения, потому что код можно и нужно улучшать всегда. Не бойся возвращаться и рефакторить если у тебя появляется идея как сделать код лучше. Подсматривай решения и других, дрочи паттерны, алгоритмы, структуры данных - вот это всё.
Ну у меня такой план примерно. Сначала (п)опыт, потом теория. Я вот учебник шарпа прочитал, узнал про ООП, классы, листы, дженерики, а все равно 80% не запомнил, а щас вот кодирую, появляется понимание, что, зачем и когда юзать. Там глядишь и по красоте уже получаться начнет
>Я вот учебник шарпа прочитал, узнал про ООП, классы, листы, дженерики
Бесполезное дерьмо. Если у тебя желание делать игры, нужно делать игры. Всё что ты читаешь в 90% случаев ты не будешь использовать, а те 10% остатка сам сделаешь велосипедом.
Поверь, теория с реальной практикой создания игры почти не встречается. Офкорс я говорю про одиночный инди-дев. А в юнити где используется куча ассетов и разных настроек с готовыми функциями и подвано.
Вот и я о том же. Сколько раз начинал с теории, нихуя не заканчивал. Сейчас решил с практики начать, на нубтутсе как раз, который в ОП приложили скопипастил механики и спрайты для понга.
А щас сам вот хитбоксы сделал, UI элементы, плюс скрипты из туторов немного улучшил, надо еще звуки добавить, след мячу, ИИ прописать, и я еще думал менюшки сделать, и если получится вообще игру по сети организовать. А там что в голову придет то и буду мб допиливать
Самый идеал для практике любое подобие джема найти и вкатиться. Там и фидбек и возможность чужими глазами увидеть как будут играть в твою игру.
Как ты и написал, основное умение это гуглить туторы и возникающие ошибки. Если не знаешь как реализовать тот или иной элемент тупо берёшь из тутора, и далее уже с пониманием идёшь дальше. Также важнейшее качество для одиночки это гуглить и находить ресурсы для игры по типу 3д/2д/музыки/интерфейсов/эффектов/ассетов, своё делать конечно придётся, но лишь малую часть.
> и если получится вообще игру по сети организовать
Лично в моём списке todo этот пункт остался, всё что хотел сделал, но с сетью как то не складывалось.
Да, я думаю на какой нибудь ТВГ обязательно влечу, летом наверное, тк щас учеба будет плюс РАБота. А так, думал к осени мб еще в WarGaming Academy попытаться, если набирать будут
>WarGaming Academy
Онлайн курсы, тоже самое бесполезное времяпровождение, как и инфоцыганство. Ты тратишь время и деньги, получаешь удовольствие т.к там всё показывают и рассказывают, но по окончанию лишь разочарование. Накопи денег, и лучше потрать на пару релизов в стиме, или если бесплатно то на том же итче, это даст в 999 раз больше полезного опыта и реального действия, чем курсы в вакуме.
Так там бесплатно, отбор еще надо пройти через тестовое и собес. Как по мне, звучит годно
Правильно, тебе и не нужно всё помнить, тебе нужно в принципе знать что есть такие-то возможности у языка, и где можно подсмотреть чтобы вспомнить как они работают. Возвращаться к источникам это норма.
>>89434
Бесполезное дерьмо это ты, не надо концентрироваться на дроче программирования онли, но совершенствовать его понимание по ходу вката в разработку можно и нужно. Это просто инструмент, который позволит тебе делать игры быстрее и качественнее. Это по началу твоим играм не нужен сложный код, потом когда столкнёшься с более-менее сложной фичой охуеешь и наговнокодишь хуиты, от которой проект будет безбожно лагать и крашить винду.
>который позволит тебе делать игры быстрее и качественнее.
Давай догадаюсь, ты еще на той стадии что не выпустил не одной игры, но дрочишь чистый код и идеальную архитектуру, верно?)
> потом когда столкнёшься с более-менее сложной фичой охуеешь и наговнокодишь хуиты
Пчелище, у меня уже десяток игр в стиме, и ниразу не было такого что фича не реализуема, всегда её кто-то делал или что-то подобное. Если бы я на момент вката по какой-то причине решил дрочить теорию, а не сразу лезть делать игры, то к этому времени наверное сидел бы да по тутору с ютуба делал хрень.
>от которой проект будет безбожно лагать и крашить винду.
Так тебе как разработчику и надо за этим следить, обучаться, понимать. Юнити предоставляет все средства для этого, бери да используй.
>>89449
Вот и вылезли местные гады, которые ньюфагов отправляют заниматься чем угодно кроме как делать игры.
>у меня уже десяток игр в стиме
А у меня 50 игр в стиме. Видишь как хуево разрабатывается когда теоретических знаний нет.
Как же проигрываю порой с таких. Аж с десяток игр. Так показывай, не?
Я уверен на 100% что там почти все если не все игры это говно уровня пет проектов какого-то джуна+. Ведь если бы там было чет реально годное, ты бы уже себя в грудь бил.
Вот и получается, что ты написал скорее всего кучу херни типа платформеров или статичных шутеров и очень сильно возгордился собой. Конечно, тебе делающему такое не нужно дрочить код. Ты же буквально делаешь то, что нормальные разрабы называют прототипом. По сути, говнодел которые собирает из говно ассетов очередной шлак которых в стиме 100%.
Мань, ты ради этого становился геймдевелопером?
>Вот и получается, что ты написал
Единственное что он написал - это пост о том что у него есть 10 игр. Если у человека реально есть хотя бы одна игра то он в этот раздел не зайдёт, тем более с целью кому-то что-то доказать.
>>89457
>А у меня 50 игр в стиме.
Чтоб выпустить около 50 игр в стиме тебе понадобится от 8 лет, и это минимум.
>>89462
Вы думаете я буду что-то доказывать людям у которых цель это пердолинг, написание чистого кода, чтение миллиона статей и гайдов как надо делать, или что угодно кроме как создавать игры?
У меня лишь цель чтоб ньюфаг который это прочтёт, задумался, особенно если у него никак не получается сделать игру, что возможно есть настоящий путь к его цели. Потому что я сам когда был таким.
Пытался делать игры далеко начиная не с юнити, но никак не получалось закончить, вечно где-то бросалось на пол пути. Потом занесло случайно на эту доску, и в одном из срачей я прочёл что один из анонов упорно доказывал что НАДО сделать игру, а не дрочить. И не поверишь, я реально сел, начал гуглить как куда, и уже через 4 месяца выложишь в стим. Да у неё было десяток ревью, и покупок на 200 бачей, но как первый опыт, это было земля и небо, по сравнению с копошением на месте.
И захожу на эту доску и пишу об этом лишь потому что уверен есть такие же как я, которым просто надо сказать ДЕЛАЙ, а не дрочи бесполезную хрень, тратя своё время, которое при этом еще и ограниченно.
>>89467
>сли у человека реально есть хотя бы одна игра то он в этот раздел не зайдёт
Бред чистой воды. Не надо думать что как только ты релизнешь игру, и даже заработаешь ты автоматически удалишь харкач из закладок и решишь всё свое время посвятить клепанию игр. Даже больше скажу, тебе еще больше лень может стать, т.к деньги капают, делать ничего не надо.
Я ньюфаг застрявший в сансаре пердолинга, покажи свои 10 игр, чтобы я преисполнился и пошёл наконец делать игру уже.
И сколько из них лицензионные?
>Эх если бы на собесах так можно было говорить
Время идёт, а гречневые ищут себе везде начальников...
Способные найти - ищут, остальные рассказывают про то что теория не нужна и возвращаться к источникам это норма))))))))
> Даже больше скажу, тебе еще больше лень может стать, т.к деньги капают, делать ничего не надо.
Эх... как же хочется, сеймы есть?
одна игра в стиме
кстати его у кого инфа, как влияет продолжение игры на продажи предыдущих частей?
До собеса возвращайся сколько надо пока не вызубришь типичные собесовые вопросы, хули ты как ньюфаг. Алсо, мне на одном собесе разрешили пользоваться гуглом, но запретили смотреть ответы на стаковерфлоу, потому что тимлид адекватный оказался, я тупо гуглил документацию и решал задачки прям при нём, он сказал по итогу малаца и нанял меня.
Я ходил на собесы целый год и там даже если я хорошо отвечал не брали (типа это не я придумал это они мне сами говорили что я молодец а потом не брали и игнорили), но я на сисадмина пытался. Что там с гейдевом я хз, можешь меня поспрашивать чего (я тебе не отвечу конечно но хотя бы знать буду).
Сам работаю "младшим программистом" в консалтинговой конторе, там на собесе спрашивали чисто про ООП, мол че такое полиморфизм инкапсуляция и был ли у меня опыт с REST API. У меня даже голосовуха осталась этого собеса где-то, наотвечал хуйню, но по итогу взяли за 30к горбатиться у них.
А с гейдевом как то получше идет, тут я хотя бы нагуглить могу то что мне нужно, и в итоге сделать задачу
> А с гейдевом как то получше идет, тут я хотя бы нагуглить могу то что мне нужно, и в итоге сделать задачу
Порой в ахуе сколько гениев тут сидят. Говорят что все можно нагуглить. И тут же в этом треде или предыдущем чувак спрашивал как можно реализовать пошаговый бой и есть ли для этого туторы. И о ужс, оказывается почти нихуя то и нет) А если и есть, то только крупицы инфы различного уровня.
Ну и как это помогает сделать задачу? Получается, анон с 10 играми буквально утверждает что лучше гуглить каждый чих, чем подсобраться и подучить программирование чтобы не чувствовать себя лошпедом не знающим как написать чет простое? Странные вы)
>как можно реализовать пошаговый бой и есть ли для этого туторы
Пчел, ты же сам понимаешь что пишешь бред. Ну кто тебе напишет скрипт с этим? Такая механика делается множеством скриптов, и их взаимодействием, плюс к этому идёт взаимодействие с менеджерами где хранятся типы и формулы для работы. Нельзя просто взять и даже тупо захуячить текстом как и что делать. Слишком зависит от внешних факторов и ведения автора.
>пошаговый бой
>что то простое
Ну, если анон который это спрашивал не шарит за декомпозицию задачи, то тут уж не мои проблемы. Я например тут спрашивал почему у меня null reference выскакивает там где он не должен выскакивать, и почему скрипт делает не то, в итоге сам допер и сам загуглил по отдельности проблемы. А заодно и понял, почему так нахуй
Какая декомпозиция, кек. Это ты тот анон который енам по строкам проверял и по имени объекта? Если да, то тебе вообще своем видение задачи нельзя тут писать. Ты ж зеленый как гуф.
Ну я хотя бы что-то делаю, а ты продолжай дальше всех критиковать и удивляться, почему тебя все на хуй шлют (хотя ты не удивляешься, все же быдло, а ты красавчик)
Опционально ссылки на ютуб
Вопрос по костной анимации:
Есть ли возможность в юнити в процессе анимации менять между собой спрайты частей тела?
>Есть ли возможность в юнити в процессе анимации менять между собой спрайты частей тела?
Какой вопрос, такой и ответ. Да, есть.
И че как? пригодилось?
Посмотри на Рутреккере , там есть какие то туториалы
Сделал пошаговый бой за одним компом и по сети через стим лобби, с разграничением фаз ходов и выбора целей, блокировками нажатий, сохранением параметров, чатом, внутриигровым диктором и т.п. но пока без ИИ посредством гугления отдельных задач и постепенного "накручивания" всего этого в одну систему - путем многократного переделывания и улучшения. Гайды особенно видеогайды практически бесполезны, т.к. там все в куче и зачастую 90% описываемого тебе просто не подходит, но тебе нужно вникать во все это ненужное, чтобы понять 10% нужного а оказывается в итоге что и эти 10% совсем не то , или просто неправильно реализовано в принципе -это проста трата времени, сил и нервов
мимолевыйразраб
>Попахивает магией
Пару дней занимался простым добавлением текста в других скриптах, сейчас пересобрал билд проверить шрифты - и тот прозрачный объект ,блеать, тоже заработал
До этого собирал билд раз 8 и именно тот объект прозрачный подвисал как деактивированный, хотя остальное проект не маленький все работало без проблем. Вообще дичь какая-то, не знаю что и думать. Билд не так собрался 8 раз подряд? Но хули его только в том месте вышибло, а не весь перекосячило?
>>>Дико извиняюсь за, вероятно, неуместный вопрос, однако любопытство распирает:
Насколько сложно на Unity создать классическую пошаговую боевку Как в миллиардах jrpg или каком-нибудь Battle Brothers?
Сложно. Для не программиста практически невозможно.
>Говорит код везде плохой, а плохо делать не хочет.
По ебалу ему дай и скажи что для старта пусть будет плохой, а хороший он пусть в свободное время дописывает если есть желание.
мимо менеджер
Туда ли ты зашел, лапшешиз?
Это мой план Б на случай если не удастся делать игры.
Тоже думал что буду делать ассеты и продавать за пару баксов, и хотяб немного кэша поднимать. Но очень сильно огорчу, там анрил что либо поднимать или продавать, одиночные покупки раз в неделю максимум. Возможно если иметь место где ты продвигаешь свой продукт по типу канала на ютубе, тогда и иесть смысл.
А если крупные паки?
Как раз делаю (да я уже писал) под мобайл
Логичнее было бы сделать хотя бы модульные, но как в таком случае делать лоды :/
Сделал анимацию, со сменой моделей. (при переходе от покоя к бегу меняются модели ног)
Все работает но есть проблема: при смене моделей поначалу включаются "беговые" ноги а потом отключаются"обычные" и в какое то мгновение у персонажа 4 ноги.
Подозреваю что проблема вот в этой хуйне(пик2) но я пока не умею с ней работать.
Подскажи как пофиксить
> со сменой моделей. (при переходе от покоя к бегу меняются модели ног)
Скелетка у моделей тоже чтоль меняется?
Портфель покажи. Если интересный, то сразу контакты кидай, подскочу, обкашляем вопросики.
Я бы посоветовал всю модель менять. Просто засинхронизировать по позам и переходам. Потому что ты ахуеешь потом от того как это все будет наслаиваться в дальнейшейм в проекте уж я то блин знаю, пытался реалтайм трансформацию из одного вида в другой захуярить. Пиздец был
Я второй день этим занимаюсь и не особо понимаю что значит засинхронизировать
Перепилить модель без лишних костей?
У тебя 2 модели есть. Разные. С разными костями и ногами, телом. По сути 2 разных объекта.
В нужный момент инстансишь новую модель, в нужный кадр её включаешь, старую выключаешь.
Игрок не замечает подмены все происходит в один кадр, если нужно можно как в Prototype еще партиклями насрать.
Просто скелетка штука очень капризная в юнити. И как восток - дело очень тонкое. В 99 процентов случаев проще воспринимать как отдельный объект в целом и заменять уже ими.
Нет, иди нахуй
В юнити.
В режиме записи в аниматоре включаешь и отключаешь какие то модели.
Я второй день этим занимаюсь, гайд только один видел на ютубе
>>89853
Нет нахуй. Хуевый вариант блять. Анимация анимацией анимацией погоняет. Выстрелить в ногу будет проще.
>>89839
> а есть гайд по такому?
Ну может что и есть. Я нихуя не нашел, сам осиливал.
>анимацию модели делал, а вот замену модели/ отключение включение частей, не осилил
1. Если замена моделей как замена моделей без костей - то в модели есть Skinned Mesh Renderer. Отключаешь одну, включаешь другую. Если нужно - модель дробишь, веса подгоняешь. Либо цельную часть тела/все тело заменяешь
2. Как заменять? У юнити в анимации есть event'ы. Очень хорошая штука. Настоятельно рекомендую разобраться. Не проёбываются и всегда срабатывают. В них прописываешь вызов скрипта, который и удет заменять одно на другое.
А что не так?
Максимум 15,5к трис на нулевом лоде
До 7,5к трис на втором лоде
800трис лол третьего уровня
Текстуры 4к, используются два стека (можно и в атлас, но будет выглядеть не очень хорошо)
Выглядит хорошо, но что-то мне подсказывает такое можно использовать только под пк, под мобилы, особенно текстуры надо ужимать раза в 3-4.
иду ща по видеокурсу на ют(товердефенц), дополнительно к зуму камеры, движению ее налево направо, хочу добавить ресет ее к начальному состоянию. то есть, заходишь в игру, хуевертишь камеру туда сюда, потом хочешь нажать на R и камера возвращается на старое положение. по сути, надо просто начальное положение ее в какой-нибудь вектор3 запихнуть, а потом по нажатию кнопки его подставить. но я блять уже заебался, как это реализовать? на пике скрипт камеры
ресет остался после моих попыток
В Start() пишешь
defaultPosition = transform.position;
defaultRotation = transform.rotation;
По нажатию кнопки
transform.position = defaultPosition;
transform.rotation = defaultRotation;
Так ты вектор сделай вне старта, ало, у тебя он создается в старте, а юзать хочешь в апдейте.
Vector3 defaultPosition;
Vector3 defaultRotation;
Start()
{
defaultPosition = camera.transform.position;
defaultRotation = camera.transform.rotation;
}
z ебучий даун
харош, всё заебись работает
я ротэйшн не использовал, но так вопрос чисто для общего развития:как в вектор3 ротейшн запихать?
Vector3 замени на Quaternion, проебался
Нихуя ты вывески присобачил на облицовочный кирпич, ещё и деформационных швов нету между зданиями, никто эту поддельную залупу даже покупать не станет
Так отбой, я долбоеб, переменная есть, а лист то не создан в нее лол. С сериалайзедом ток все равно не понял, но думаю разберусь.
всегда можно поставить 1024x1024
да и к тому же, можно отключить normal map и smoothmap, оставив только albedo
>Нихуя ты вывески присобачил на облицовочный кирпич
Брал из рефера, через google earth, видел подобное в том же Bronx-се
> ещё и деформационных швов нету между зданиями
не понял :/
Я понимаю, что он видимым становится. Вопрос был немного не в том. Получается, чтобы показать мне в инспекторе лист, который по факту не создан, а создана только переменная, он его сам создает, чтобы было что мне показать. Как-то так выходит.
Причем если лист сделать public, то эффект будет такой же.
Так просто уменьшение размера это не такая же вещь как разработка под мобилки. Ты пробывал со своими текстурами так сделать? И смотрятся они нормально?
Видимые в испекторе массивы и листы создаются автоматически.
Приватные (и те что не видно) нужно создавать самому.
Да, такое только в юнити встретить можно.
>Можно ли в PSB файл с частями тела "докидывать" еще какие то без надобности перепиливать заново персонажа ? Если да то как?
Хз актуально ли еще. Я делаю так: один PSB для персонажа, второй PSB для его разных вариаций, скинов. Все кости просто копипастятся при необходимости с одного файла на другой
Кто имел дело со стим апи. Есть пара вопросов.
1. Таблицы результатов/очков, реализуются просто подключением стима апи без сторонних расширений или арендования серверов? Всё у них и бесплатно? Так-же с производительностью и местом для хранения?
2. Стим облако позволяющее хранить сохранения, тоже за их счёт и без ограничения?
3. Локальная эмуляция от стима(для кооп игры), также бесплатно выступает в роли эмулятора сети? Как Хост+клиенты?
>Локальная эмуляция от стима(для кооп игры)
Там буквально (Если ты не простим мультиплеер говоришь) идет стриминг с экрана играющего и проброс управления.
ты тупой? или просто не можешь посмотреть документацию? они ничего не берут и всё предоставляют для этого
> Ты чего такой злой? Я спросил у тех кто это реализовал или использовал, фантазии безигорных про посмотри доки оставь при себе. Иди сри в движкосрач треде.
смешно это слышать от безигорного
одна игра в стиме
Зачем ты срёшь не по теме? Репорт получить хочешь за щитпост? Я уже написал, для вашего бреда специально сделали тред.
>Таблицы результатов/очков, реализуются просто подключением стима апи
не просто, надо будет немного поебаться, т.к. стим написан на C+, а не на C#
>Локальная эмуляция от стима(для кооп игры), также бесплатно выступает в роли эмулятора сети? Как Хост+клиенты?
есть реализация сетевой игры через стимлобби, через стороннюю оболочку стимпанч от создателя игры Rust. здесь тоже придется поебаться, особенно, если нет опыта работы с сетью
>т.к. стим написан на C+
У меня подключен апи стима, там на шарпах всё, удобно. Но реализацию того чего спросил не делал, из-за того что не знаю делает ли стим за меня всю работу или мне самому надо будет арендовать сервер и плать ежемесячно для этих дел. Игра небольшая и если трафик будет платный то хз будет ли покрытие.
Поэтому меня досихпор и интересует, если кто лично делал, как там дела обстоят. Про реализацию сети через сторонние сервисы комнаты я то знаю.
Он для любителей ООП, которым не нравится подход юнити - управлять зависимостями из редактора с помощью установки значений в паблик полях. С помощью зенджекта можно сделать внедрение зависимостей в коде в одном месте, как в их любимой джаве.
звучит годно, мне тоже кажется что из редактора перекидывать объекты в поля как-то тупо и быстрее через скрипты делать
>из редактора перекидывать объекты в поля
Ты же в курсе так почти никто не делает? Всё происходит в инициализации и передачей ссылок через год обьекты.
Так и скажи что не смог в это.
Ебало представили?
Если он такое спрашивает, то точно не сможет напрямую обращаться к ос, а готовых решений такого точно в паблике нету. Но юнити позволяет это реализовать, путём прямого запроса в апи длл винды.
Да под это есть 15 минутный туториал у обезьяны.
Пользовался кто то готовой системой инвентаря\итемов\крафта от Devion Games?
>>89599
Нашел косяк. Я сохраняю на жесткий диск ключ с переменной, по которой задается язык. Редактор брал свой ключ с заданным русским языком, а для сборки свой ключ (он хранится в отдельной папке) и он стоял на английском. И вот в английском варианте, не было ссылки на один текст, поэтому в сборке скрипт сразу при запуске сцены вис намертво - и старт и апдейт сразу отрубало. Собственно, меня смутило что в редакторе все норм, но я рад, что это мой промах, а не багуля движка
В гейдевелопинге как и во многом все познается в практике, надо просто начать, со временем сам поймешь где какие практики применяют и главное нахуя. Если будешь слишком рано запариваться на деталях как делать PRAVILNO, так в итоге и не начнешь нихуя.
Хочу сделать объект, который крутится на определённом расстоянии вокруг персонажа. Как предметы-мухи в айзеке, например. Подглядел в интернете пикрил, но он нормально работает только когда персонаж стоит на месте. Как заставить объект нормально вращаться вокруг движущегося персонажа?
делоешь вот так, делаешь объект дочерним игрока и вешаешь на него этот скрипт
Чтобы понять, зачем тебе нужны нестандартные подходы, тебе нужно вдоволь попользоваться стандартным инструментарием. Затем ты его будешь по частям выкидывать и заменять либо кастомным кодом, либо васянскими мокрописьками (хотя zenject я бы освоил сразу - DI довольно примитивный концепт и позволяет привести кодовую базу в относительный порядок сразу, разбросав всё по сервисам и менеджерам)
Я так пришёл в мир юнити из кровавого энтепрайза - прочитал в интернете, что корутины - говно ебаное, и есть няшный UniTask, где можно дрочить async/await прямо как в моём любимом крудоёбстве на asp.net'е, начал им активно пользоваться и соснул в итоге немытого от огромной кучи подводных камней.
У тебя там TextureImporter, добавь SpriteImporter или как-то так, запамятовал
>>90533
Нет, советую использовать "самодостаточные" штуки, типа IK/шейдеров/еще какое-то гавно которое включил и забыл.
Есть шанс, что к инвентарю и статам ты будешь постоянно возвращаться и разборки с чужим кодом займут время или возможно ты вообще захочешь все переписать. Сделать инвентарь со статами самому не так сложно на самом деле, а если первый проект - то даже полезно.
>>90660
>соснул в итоге немытого от огромной кучи подводных камней
Каких это? У меня уже 3 игры без камней работают на ура.
>хотя zenject я бы освоил сразу
)
Какой смысл от всего этого мусора соло индюку?
Для создания игра на юнити обычно анону не нужно вообще лишних плагинов и библиотек, с головой хватит того что юнити предлагает.
Не вижу не одной причине, кроме как на чужих галерах юзать стороннее тратя время и силы.
>прочитал в интернете, что корутины - говно ебаное, и есть няшный UniTask
Ты походу комменты на хабре читал, да?
Корутины это единственное что возможно сейчас использовать если работаешь с монобехами. Может поэтому ты и обосрался с подводными камнями.
Тем, что превращает код в абстрактную корпоративную парашу. В соло-проектах он не нужен.
Я еще на собесе скажу, что те кто пытается юзать MVC* в геймдеве где-то кроме UI полные дегенераты и долбаебы. И лучше им пойти обратно в энтерпрайз помойку от куда они и вышли.
>На собесе
>На собесе
>На собесе
Нахуя работать в геймдеве? С раскладывания жсонов по микросервисам гораздо больше выхлоп по деньгам.
У многих аккурат к тридцатнику заканчивается вся эта детская романтика про "хачу делать игры за многа деняк!", и приходит прагматичный расчёт, что на тебе, на твоих горящих глазах просто ездят кабанчики. У меня в конторе сидят пара бывших юнитидевов, и все их речи про коммерческий геймдев сводятся к "много ебали и мало платили". В итоге всю эту дошкольную романтику они сменили на хорошую зарплату, нормированный рабочий день, предсказуемость задач с гораздо более универсальным технологическим стеком.
В студии вы даже не сделаете свою игру мечты, только если не запилите свою с нуля или не пробьётесь на место какого-нибудь геймдиректора.
Двачую просвещённого, хочешь денег и собесы пиздуешь в другую отрасль.
Хочешь делать игры, тебе нахуй не нужны собесы, делаешь, но на зарплатку если овощь не надейся.
Обычно это все понимают когда съезжают от родителей и начинают платить коммуналку.
Есть множество способов и тулзов.
Для себя использую так, естественно после диздока - Террэйн, большие объекты, мелкие объекты, генерация аи меша. Всё это дело группируется, далее расставляются эффекты, звуки, триггеры, блокираторы пути.
Ты прямо террейном от юнити пользуешься? Или ассетом каким-то. А то стандартный это просто дерьмеще же вроде.
Стандартным, не знаю что у тебя за траблы с ним, все мои хотелки покрывает.
>гейдев это такая же айти отрасль как и остальные направления.
Пчел ты пхп или джаво макакой вкатишься за пару месяцев и начнёшь поднимать среднию по городу. В гейдев ты через пару лет только сможешь такое, и то не наверняка.
>ты пишешь один и тот же ебучий код
Ты это будешь делать либо на мобильных казуалках, и то что даже в ту парашу попасть тебе нужно принять ислам и продать душу, и по деньгам намного ниже и напряжнее чем в том же вебе.
>Будто гейдев внезапно олицетворение свободы и его можно воспринимать только так.
Так вылезай из под рабского крыла и делай соло, вот тебе и свобода. А если ты боишься ответственности и можешь делать только примитивные задачи которые тебе ставят другие, то это сугубо твоя проблема.
Ньюфаги не идут в геймдев чтоб разработать, для это есть сотня более простых и доходчивых областей.
Пчел, я 2 года работал в ебаном вебе на сраном жс. И толку мне от зп 160к, если то что я делаю вызывает во мне лютую депрессию.
И вот я спустя год учебы работаю за 80к делая ссаные ГК и меня не тошнит. Пусть это и ГК, но не тошнит же, понимаешь, пчел? А еще через год я буду получать те же деньги что и в вебе.
Если для тебя деньги это главное и ты готов окунаться в говно которое ненавидишь каждый день, то ты просто говноед и раб. Раб не потому что на дядю работаешь, а раб потому что работаешь на работе от которой не то что удовольствия не получаешь, но и от которой так же тошнит и ты ели-ели на нее сил берешь утром.
Ну а по поводу твоей свободы про соло проекты..
Я в эту хуйню не верю. Инди игры это буквально игра в лотерею.
Все равно что быть бомжом художником без денег, думая что вот-вот ты создашь шедевр который оценят. Какой с этого смысл? Думать что ты и есть тот выживший который наверняка стрельнет своей еба игрой которую ты напишешь в соло ага, да.
>Ньюфаги не идут в геймдев чтоб разработать
экспертное мнение, очевидно же.
> в треде одни безработные
> 200к
> соло-инди подсосы.
Нахуй иди просто. Давай лучше показывай свои 10 игр в стиме))00)
Прям представляю твоё лицо. Работаешь на дядю на галерах дрочя каждый день один и тот же код и получая рабские копейки, когда нормальные пчелики сами в соло делают игры не парясь.
У тебя в генах быть подневольным рабом не способным думать, просто смирись и не гори.129260
>делают игры не парясь
>нормальные пчелики
> получаешь за год своей разработки 500 долларов
> хватило на макароны с кетчупом.
> зато не раб
Твоей аудитории нет нигде
With (tank) {hp--; x=other.x; phe_active=true;} и так далее
В юнити это, как я понял, достигается только путем ссылки на скрипт объекта? Как то геморройно звучит
Позовите другого консультанта, нормального
https://docs.unity3d.com/ScriptReference/Events.UnityEvent.AddListener.html
мне кажется через такую штуку можно сделать.
Ты просто привык к говну. "Удобные фичи" типа tank.hp-- наверное прикольно дебажить. Но раз у тебя в принципе возникла мысль перекатиться в юнити то всё будет хорошо.
Ну уголовном кодексе очевидно, а так же постановлениях высших судов по интересующей статье + комментарии. У консультанта плюс вроде есть бесплатный триал. Без него доступен только кодекс.
Есть жи тред порноигр где такие вопросы более уместны.
А так читай https://stykrf.ru/242
В отличие от эротического изображения в порнографии внимание акцентируется на контактах половых органов.
Но все это херня. Потому что если будут проблемы, то эти вопросы будет решать привлеченный эксперт, который и напишет выводы, как правило эти выводы полностью совпадают с обвинением.
Прочитай про делегаты и полиморфизм в c#
А если не хочешь читать то: да, ты можешь использовать приватные поля даже в публичных статичных методах.
Как передал приватный метод? передается ссылка на этот метод, а "под капотом" передается Action (публичный класс) который ссылается на твой приватный метод.
Понял/принял. почитаю. спасибо.
1) ИИ преодолевает коллизию. У меня есть игровой объект, rigidbody + collision выставлено, задача у него это отбивать мяч. И этот ИИ просто игнорирует стену уровня, слегка за нее заступая, причем объект, за который я играю, с такими же настройками нормально себя ведет.
2) При запуске уровня у меня спавнится приветственное сообщение типа нажмите любую кнопку. Так вот если запустить первый раз, то сообщение не выведется (но ожидание инпута есть), а если выйти и перезайти то все норм
3) Как избавиться от бесконечного дублирования donotdestroyonload объектов? Я пробовал и через инстансы, и костылем через булеаны, в первом случае он перестает дублировать, но при перезаходе в уровень тупо null reference, а второй способ даже не сработал.
Прошу помощи, заранее спасибо
Да скрины не помогут, код тоже в принципе, мне просто нужно знать, из-за чего такое может порождаться, это баг юнити или можно что то настроить?
Вычислил через Collider.ClosestPoint(). Но может есть какой-то другой способ.
Vector3.Distance в помощь
Будешь страдать, петух, прогнешься как шлюшка и все выполнишь на ненавистном тебе софте
О, прям моя история, правда работаю уже почти 3 года.
Ну вот хз, я как то умудрился на текущей работке выйти в работу по 4 часа в день, потом ковыряю гейдев в соло. Но меня от веба не тошнит, так что повезло видимо.
Работать в гейдев принципиально не иду, либо сделаю что-то сам либо нахуй пойду. Нет ничего хуже чем реализовывать чужие творческие проекты вместо своих. Даже во фронте мне гораздо интереснее какую-нибудь свою либу компонентов ковырять чем очередную говнотаску делать, но там мне в целом похуй, так как фромошлепство оно и в Африке формошлепство.
^ я этот еблоид ес че.
Кароче юники рассказываю историю. Я вот недавно доебался с плюсами и начал ковырять анрил и понял что:
- Никакой нахуй инфы нормальной по плюсам в уе нет, 90% информационного пространства засрано блюпринтами
- Сами плюсы какие то хуевые, с ебаными макросами говна и прочей хуетой, встроили сборщик мусора и еще кучу хуйни, нахуя тогда вообще плюсы
- Хуже доки в жизни я не видел. Этим еблоидам бы vue.js доку глянуть, они бы охуели, или референс как на mdn
В общем планирую месяцок провести на юнити, даже петушарп учить не буду, надеюсь навыков плюсов и тайпскрипта хватит.
Вопросики собственно, может мне и не стоит начинать:
- Насколько на юнити можно расслабится и ТУПО СИДЕТЬ КОДИТЬ а не оперировать какой-то абстрактной хуйней вроде БП?
- В шапке написано что реалистик графон тяжко делается. Собственно по этому я выбрал UE изначально. Там бесплатный свэг каждый месяц, метахуманы и мегасканы, есть тут что подобное? Анонс про Ziva видел, но это когда еще будет. Хочу прототипировать и потом половину ассетов готовых юзать. Ослабляет требования то что игору планирую с видом сверху. Но скорее всего моделить я буду учиться сам и с нуля, полагаю в юни мне будет гораздо сложнее все сделать красиво?
Сам офк кодер, много К в сек, делать буду исключительно в соло, мб немного помощи запрошу у знакомого моделлера.
-
Все должно работать, покажи как ты подписываешься на эвент, или, если в инспекторе, скрин инспектора инпут филда.
И на всякий случай уточню, ты же знаешь, что OnEndEdit вызывается по клику энтер? если ты другого не настроил
>ТУПО СИДЕТЬ КОДИТЬ
Есть ООП, СОЛИД и прочая лабуда, которая полезна и поможет красиво кодить, но в целом можно и без всего этого сам же потом в говнокоде разбираться будешь
>реалистик графон тяжко делается
Отличие от анрила просто в том, что там такие вещи по-большей части из коробки поэтому почти любая игра на анриле узнается с первого взгляда и выглядят они все очень похоже В юнити есть все те же возможности, просто их нужно настраивать самому. Пишешь\качаешь пару шейдеров, настраиваешь пост-процессинг и вот тебе красивая картинка
Мне еще непонятно, почему пустое поле появилось в эвенте, где я выбираю функцию. Если в него что-то написать, то это воспринимается как инпут и выдается дебагом.
а если делать не через инспектор, то надо получать ссылку на импут фиелд, выбирать нужный эвент, приделывать к нему аддлистенер и аргументом в него пихать мою функцию?
Я проверял, в дебаг вставлял напрямую стринговое значение, не переменную, и он выводилось в консоль. т.е. эвент у меня срабатывает, только аргумент почему-то не передает.
Честно хз, попробуй через лисенер в коде добавить
Разобрался. Сначала выбрал то что красным выделено, а надо было верхнее.
Информации ноль, половина персонажей пидарасы и жирные тян. Никому не советую.
Зачем? Лучше выучу на платном для элиты что-нибудь еще. И буду без конкуренции рубить бабки
Ну можешь полистать, слишком все обобщенно без конкретики, на уровне разбора интерфейса и то что такая хуита есть. Никакой глубины, я думал мне там за азы шейдеров и рендера пояснят, в итоге показав лишь простейшие примеры.
Во втором пасвее тоже довольно базово всё. Я надеялся в третьем что-то глубже покажут, эх.
Основной акцент в том, что нет никаких классов логики - только классы компонентов. Никаких наблюдателей, координаторов, и прочих.
Каждый компонент просто делает свою работу, об общей картине он ничего не знает, а ее и нет. Но, суть в том, что компоненты при взаимодействии с друг другом будут создавать нужный гейм-процесс. Это как создать компоненты "волк", "заяц", "нора", и при запуске эти компоненты становятся живыми обособленными сущностями. Логика будет настраиваться в компонентах. Типа, у волка можно указать, что цель - компонент заяц, а нора - пускает только зайцев. Да логика тут сложная часть, но по сути я как бы создаю мини ai, которые взаимодействуют друг с другом.
Попробуй хули.
Вот пример такого в процессе:
Ты хочешь сделать игру, где чел ходит и собирает камни. Соберёт все - выиграл.
Вот как бы это было бы:
Открываешь пустое окно. Добавляешь компонент "3d объект". В нем указываешь его меш, его материал. Называешь его "Камень". Ставишь галочку "это подбирается". (В другом окне он появляется на террайне, там ты можешь расположить его куда хочешь.) Создаёшь несколько таких камней ещё.
Потом добавляешь компонент "инвентарь".
Потом добавляешь компонент "коллекция" который соединяешь с "инвентарь". В "коллекцию" перетаскиваешь все камни. Коллекция будет генерировать событие "собрано", когда в инвентаре будут все предметы, которые не указал. Ну а по этому событию можно показать поздравительное окно.
Потом добавляешь компонент "персонаж". Его соединяешь с "инвентарь". Тоже указываешь меш. По умолчанию в него уже будет встроена механика интерактивности, типа "нажми е, чтобы что-то взять, включить, и т.п.". - она будет пополнять компонент "инвентарь".
И все. Никакого кода. Дело на 2 минуты. Куча компонентов на твой вкус. Некоторые компоненты - это сборка других компонентов, которые можно расщепить. А теперь расскажите, как долго уйдёт это написать с нуля.
> А теперь расскажите, как долго уйдёт это написать с нуля.
зочем? корпорации сами всё сделают, а ты сиди не рыпайся сучара ебаная
А сейчас как ты делаешь? Звучит как типичный подход, которому прямо на сайте юнитеков обучают.
Звучит хорошо если ты делаешь неоригинальный кал. Вот что мне делать если я делаю рубильню на мечах, но управления мечом, который я задумал, нет ни в одном из известных рубилен?
хз, я юнити пару недель ковыряю, уже 3 обновы были для 2020 билда )
>Звучит хорошо если ты делаешь неоригинальный кал.
если ты делаешь неоригинальй кал, из которых состоят 95% всех игр в магазинах, но при этом имеют миллионы закачек
fix
>управления мечом, который я задумал, нет ни в одном из известных рубилен?
управление это все лишь анимация, не думаю, что будет так сложно. в идеале просто добавляешь ее к персонажу в список анимаций, а в качестве триггера добавляешь комбинацию нужных кнопок
.
>Вот сколько раз за десятки лет был написан код передвижения? А собирательство предметов? 1000000 раз. А если бы это был встроенный в юнити компонент, или какой-то библиотекой, написанной специальными людьми, то не было бы никакого велосипеда.
Да, и именно поэтому код будет за людей писать Github Copilot и аналоги. Я даже больше скажу - профессия программиста умрёт через 20-30 лет и большую часть кода, за исключением пару-тройки областей, будет писать машина. Программист - это, фактически, оператор телеграфного ключа из 20 века.
Уже сейчас Copilot по текстовому описанию может набросать тебе работоспособный код средней руки, пройдёт ещё 5-10 лет - и он сможет спокойно написать программу, микросервис или игру.
https://twitter.com/github/status/1409883156333879300?s=20&t=u90QKdm5jwOuOOasi14fag
Вопреки расхожему мнению, что первыми нахуй пройдут водители и сфера обслуживания, первыми пройдут нахуй именно программисты и вся их обслуга - тестеры, менеджеры, девопсы. Останутся только инфраструктурщики-железячники да гибрид архитектора и бизнес-аналитика.
Советую прочитать вот эту статью:
https://engineeringideas.substack.com/p/programming-becomes-obsolete-quickly
Программисты сами сделали всё, чтобы их порешала машина - выложили огромное количество кода в общий доступ как исходный материал для дип-лёрнинга, сделали инструменты верфикации кода в виде автотестов, CI/CD и прочего.
В 2050 никаких программистов не будет, кроме вымирающих динозавров, поэтому всем кодерам я советую задуматься, чем вы будете заниматься через 20 лет и как бы подольше протянуть до пенсии.
> профессия программиста умрёт через 20-30 лет
вот ты мне скажи, ты еблан? какими фактами ты оперируешь называя эти числа? уже очень давно технологии начали развиваться по экспоненте и я тебе анус ставлю, что копилот и любой другой софт можно будет уже использовать во всех мыслимых и немыслимых задачах через 1-3 года
1. Копайлот ещё даже из беты не вышел. К концу этого десятилетия это будет всё ещё плагин в IDE, который будет удачно решать некоторые рутинные задачи - вот понадобилось тебе распарсить ответ с какого-нибудь сервиса или набросать по фасту работу через protobuf-grpc и ты многократным прожатием таба описал класс для работы с ним. Потом спустя месяц у тебя падает прод, ты читаешь доку и понимаешь, что копилот накалякал какой-то хуиты, пизженной из репозитория какого-то васька с 3 звездами на гитхабе и матерясь, правишь вывод нейросетки.
2. Текущий deep learning-подход достиг своего предела в GPT-3 и других подобных моделях, для следующего качественного скачка нужно что-то другое. Китайцы увеличили число параметров, но вывод едва ли стал лучше. Нужен новый подход, похоже, это станет имитация работы нейронов на железном уровне.
>…пытаться построить интеллектуальные машины путём масштабирования языковых моделей — всё равно что строить высотные самолёты для полёта на Луну. Вы можете побить рекорды высоты, но полёт на Луну потребует совершенно другого подхода.
3. Машина всё ещё не умеет думать и придумывать код - в практическом смысле это выражается в том, что код всё ещё должен верифицировать человек, а именно что новый код и новые задачи машина решить не сможет. В программировании задачу можно решить как хуево (не оптимально по времени и памяти), так и хорошо. Новые задачи дип лернинг решать не умеет - он умеет только комбинировать уже придуманное человеком до этого. Вот, например, машина нагенерировала код уровня яндере дева - пустишь такое в прод? Если уволить программиста, который мог бы прочесть этот код,
https://twitter.com/Wunkolo/status/1410704859733528577
4. Человеческий фактор, инерция людей. Для массового adoption'а технологии нужно от 3 до 5 лет. Начнётся это так - сперва евангелисты крупных корпораций начнут петь на конференциях разрабов, как они с помощью нового инструмента успешно заменили пару отделов индусов, потом технологию начнут подхватывать стартапы и прочие компании второго эшелона. Сколько там потребовалось людям, чтобы массово контейнеризацию в куберах и CI/CD освоить? Лет 6-8? Ну вот столько же будут осваивать генеративные нейросетки. Всё это будет сопровождаться массовыми увольнениями и наборами программистов
5. Копилот порой дословно воспроизводит код из репозиториев, защищенных анальными швабодными лицензиями - кто с этим разбираться будет?
Я думаю, что большую часть этих проблем можно решить, и займет это как раз лет 20. В ближайшие 10 лет точно ничего не изменится, но в будущем, я думаю, что формошлепство и большая часть геймдева канет в лету - буквально любой порридж сможет купить/нагенерить себе ассетов, описать на естественном языке свою киррильскую игру мечты и кое-как её собрать в работающую игру. Возросшая вычислительная мощь позволит класть хуй на оптимизацию.
1. Копайлот ещё даже из беты не вышел. К концу этого десятилетия это будет всё ещё плагин в IDE, который будет удачно решать некоторые рутинные задачи - вот понадобилось тебе распарсить ответ с какого-нибудь сервиса или набросать по фасту работу через protobuf-grpc и ты многократным прожатием таба описал класс для работы с ним. Потом спустя месяц у тебя падает прод, ты читаешь доку и понимаешь, что копилот накалякал какой-то хуиты, пизженной из репозитория какого-то васька с 3 звездами на гитхабе и матерясь, правишь вывод нейросетки.
2. Текущий deep learning-подход достиг своего предела в GPT-3 и других подобных моделях, для следующего качественного скачка нужно что-то другое. Китайцы увеличили число параметров, но вывод едва ли стал лучше. Нужен новый подход, похоже, это станет имитация работы нейронов на железном уровне.
>…пытаться построить интеллектуальные машины путём масштабирования языковых моделей — всё равно что строить высотные самолёты для полёта на Луну. Вы можете побить рекорды высоты, но полёт на Луну потребует совершенно другого подхода.
3. Машина всё ещё не умеет думать и придумывать код - в практическом смысле это выражается в том, что код всё ещё должен верифицировать человек, а именно что новый код и новые задачи машина решить не сможет. В программировании задачу можно решить как хуево (не оптимально по времени и памяти), так и хорошо. Новые задачи дип лернинг решать не умеет - он умеет только комбинировать уже придуманное человеком до этого. Вот, например, машина нагенерировала код уровня яндере дева - пустишь такое в прод? Если уволить программиста, который мог бы прочесть этот код,
https://twitter.com/Wunkolo/status/1410704859733528577
4. Человеческий фактор, инерция людей. Для массового adoption'а технологии нужно от 3 до 5 лет. Начнётся это так - сперва евангелисты крупных корпораций начнут петь на конференциях разрабов, как они с помощью нового инструмента успешно заменили пару отделов индусов, потом технологию начнут подхватывать стартапы и прочие компании второго эшелона. Сколько там потребовалось людям, чтобы массово контейнеризацию в куберах и CI/CD освоить? Лет 6-8? Ну вот столько же будут осваивать генеративные нейросетки. Всё это будет сопровождаться массовыми увольнениями и наборами программистов
5. Копилот порой дословно воспроизводит код из репозиториев, защищенных анальными швабодными лицензиями - кто с этим разбираться будет?
Я думаю, что большую часть этих проблем можно решить, и займет это как раз лет 20. В ближайшие 10 лет точно ничего не изменится, но в будущем, я думаю, что формошлепство и большая часть геймдева канет в лету - буквально любой порридж сможет купить/нагенерить себе ассетов, описать на естественном языке свою киррильскую игру мечты и кое-как её собрать в работающую игру. Возросшая вычислительная мощь позволит класть хуй на оптимизацию.
Петушина, спок, ты пидар
>управление это все лишь анимация, не думаю, что будет так сложно. в идеале просто добавляешь ее к персонажу в список анимаций, а в качестве триггера добавляешь комбинацию нужных кнопок
Не, я хочу чтобы анимация риггилась на положение и направление мышки, а не тупо по кнопкам анимацию запускать. Хочу чтобы ты буквально водил мышкой чтобы мечом махать.
Везде пишут, что GetCompanent в Update плохо. Как тогда избежать этого, если нужно взять нестатичную переменную из другого скрипта?
В гiлос.
Нужно что бы через определенное время проигрывался звук из массива
Вроде бы такая конструкция всегда работала.
А в чём проебался то в итоге?
Такую хуйню может ляпнуть только человек, не видевший что такое программирование.
>Уже сейчас Copilot по текстовому описанию может набросать тебе работоспособный код средней руки, пройдёт ещё 5-10 лет - и он сможет спокойно написать программу, микросервис или игру.
А описание ему нужно будет давать четкое и подробное?
Ты в курсе что апдейт запускается каждый фрейм? Ты корутин каждый фрейм запускаешь, подумай почему это плохо.
Но как следить, какие задания игрок сделал и как вообще реализовать сами задания я никак не могу придумать
https://github.com/sinai-dev/UnityExplorer
любую игру на юнити можно вскрыть и выебать во все дыры даже il2cpp, я немного посмотрел и обычно подобные дллки грузят в игру через мелон лоадер или beepinex и можно проверять директорию на наличие левых файлов и закрывать игру, а вот как быть если дллку загрузили иным способом? обычно выделяют память и создают новый поток через VirtualAllocEx и CreateRemoteThread, как-то можно изнутри игры пробежаться по всей памяти и найти аномалии?
безигорный, спокидзе
Чет сложно, бепикс скачать, плагин скачать, мелон лоудер скачать, потом это все в папках разложить.
У меня где-то тула была с одной кнопкой "extract" и без этой ебли все доставалось
>>91363
В настройках проекта, Mono будет работать на mono (вау), il2cpp создаст плюсовый код (работать быстрее не будет, пока не начнешь использовать бурст или джобы какие-нибудь, а из минусов trim может начать удалять generic методы и конструкторы)
>>91362
В комплекте с URP пакетом идет или probuilder-ом
Нихуя, то есть он еще и ебучим медиумом будет?
Шутка — это фраза или небольшой текст юмористического содержания. Она может быть в различных формах, таких, как вопрос/ответ или короткая байка. Для достижения своей юмористической цели шутка может использовать иронию, сарказм, игру слов и другие методы. Шутка, как правило, имеет концовку (кульминацию), которая заканчивает повествование и делает его смешным.
Да.
Понял, прикольно. А что у тебя за игра что тебе так важно чтобы школьники таймер не шатали?
Двачую, делай рандом рендж, чтобы усложнить школьникам жизнь.
Поставь ему look at как у луча, который смотрит в небо - он тоже будет смотреть в небо
Этим псевдокодом можно описать как игровой процесс, так и внутреннюю работу компонентов.
Возможно, нейросети будущего будут генерировать игры именно по псевдокоду?
Собс-на, как я пришел к этому:
Когда-то я просто стал ебашить свою игру, лишь бы не остаться очередной безыгорной чмоней и хоть что-то иметь, пусть и всратое по исполнению. Я давно придумал сюжет, задания и геймплей своей игры, а также я хорошо знаю Unity и C#. Сначала реализовал UI, потом движение игрока, далее некоторые игровые механики. Первый столбняк схватил, когда стал реализовывать паузу. Time.timeScale = 0 оказалось недостаточно, и, не особо заморачиваясь, добавил в некоторые места if (isPaused) ... Это работало, но я уже тогда стал чуять пиздец. Переписал потом все же с учетом реализации паузы, стало норм. Но потом случились следующие курьезы, и код в итоге скатился в сраное говно и писать уже стало почти невозможно. Вот я и подумал, что с этим мне поможет составление схемы, в которой я учту все возможные нюансы, и только потом начну писать реальный код, чтобы не переписывать.
Блок схемы для кого придумали?
Тебе надо в архитектуру и расширяемость, а не блок-схема или псевдокод в ворде.
Блок схема то конечно хорошо, но какие ты связи будешь выстраивать, если понимания нихуя нет.
Ебануть корутину или, вот что я нашёл в интернете, использовать .Lerp?
848x416, 1:40
А хотя похуй. Вот тут все скрипты
https://github.com/OUTS1D3R047/Pong/tree/master/Assets/Scripts
Версия не совсем новая, но думаю понимание будет. Не сомневаюсь что говнокод, но главное работает (хотя с багами)
Да там интуитивно понятно, какие комментарии. Неужели не понятно например что ball.cs отвечает за поведение мяча а textUI за вывод UI? К тому же я по директориям скрипты раскидал
Это конечно заебись, но меня больше интересует именно специфика по юньке. В частности хотелось бы где-то ознакомиться с примерами использования архитектуры на основе MVC и/или ECS для юнити.
Какая специфика тебе нужна, клоун? Юнити по-твоему какой-то необычный язык программирования использует?
Выше же книжку по паттернам кидали.
Что ты имеешь ввиду под плавно? Тебя цикл в котором ты отнимаешь по N хп не устраивает?
Конкретно цикл не устраивает, мне нужно, чтобы пока кнопка нажата по чуть-чуть отнималось хп.
Вот что я сделал.
Кстати, скажите пожалуйста, почему этот код крашает мне ОС.
void Update()
{
while(Input.GetButton("Fire1"))
{
//Кнопка нажата, корутина постоянно запускается
if(Shooting_tag==false){
Shooting_tag = true;
StartCoroutine(shooting_in_bottles());
}
else
{
//Кнопка отпущена, даже включ корутина отключается.
StopCoroutine(shooting_in_bottles());
}
}
}
private IEnumerator shooting_in_bottles()
{
Debug.Log("Cor_starts");
RaycastHit hit;
if(Physics.Raycast(inv_obj.transform.position, -Vector3.forward, out hit, distance))
{
Debug.Log(hit.transform.tag);
if(hit.transform.tag == "Bottle")
{
Debug.Log("1");
}
else
{
Debug.Log("2");
}
}
yield return new WaitForSeconds(0.8f);
Shooting_tag = false;
Debug.Log("Cor_stops");
}
Конкретно цикл не устраивает, мне нужно, чтобы пока кнопка нажата по чуть-чуть отнималось хп.
Вот что я сделал.
Кстати, скажите пожалуйста, почему этот код крашает мне ОС.
void Update()
{
while(Input.GetButton("Fire1"))
{
//Кнопка нажата, корутина постоянно запускается
if(Shooting_tag==false){
Shooting_tag = true;
StartCoroutine(shooting_in_bottles());
}
else
{
//Кнопка отпущена, даже включ корутина отключается.
StopCoroutine(shooting_in_bottles());
}
}
}
private IEnumerator shooting_in_bottles()
{
Debug.Log("Cor_starts");
RaycastHit hit;
if(Physics.Raycast(inv_obj.transform.position, -Vector3.forward, out hit, distance))
{
Debug.Log(hit.transform.tag);
if(hit.transform.tag == "Bottle")
{
Debug.Log("1");
}
else
{
Debug.Log("2");
}
}
yield return new WaitForSeconds(0.8f);
Shooting_tag = false;
Debug.Log("Cor_stops");
}
Че то мне кажется тебе рано в корутины лезть
>запускает корутин каждый кадр когда кнопка нажата
>скажите пожалуйста, почему этот код крашает мне ОС.
Пиздец, я смотрю запускать корутины в апдейте это местный мем походу.
>Конкретно цикл не устраивает, мне нужно, чтобы пока кнопка нажата по чуть-чуть отнималось хп.
Вот ты говоришь цикл тебя не устраивает, но сам запускаешь корутины ЦИКЛОМ В АПДЕЙТЕ, где логика? Вместо запуска корутинов просто сразу отнимай хп, я ебал в рот блять, тупо переделай свой ебаный корутин в апдейт.
Пиздец просто, чего у вас так руки чешутся юзать корутины где не надо?
Во-первых, спасибо за ответ. Во-вторых, не понимаю. Я же создал переменную тэг, перед очередным запуском корутины он проверяет запущены ли другие... Так кажется до меня немного допёрло, корутина просто не отключается. Да?
> Где не надо
Я гуглил, на юнити форуме написано, если хочешь отнимать хп постепенно, используй корутины или Math.Lerp. Так как корутины у меня трудно идут, я выбрал их.
То вопрос задать нормально не могут, то ехал корутин через апдейт. Мемная доска.
Смотри, корутин это по сути цикл, апдейт это тоже цикл, запускать кучу циклов в цикле без четкого осознания того что ты делаешь это верный путь крашнуть движок. Апдейт гарантированно запускается каждый ёбаный кадр. КАЖДЫЙ. ЁБАНЫЙ. КАДР. Поэтому хорошенько подумай прежде чем запускать какой-либо цикл внутри апдейта, да и вообще что-либо внутри апдейта, спрашивай себя: а справится ли мой движок с этим каждый ёбаный кадр?
Корутин работает также как апдейт, но в отличии от апдейта его можно приостановить помощи команды yield, которая остановит его на один кадр или несколько если юзать с waitforseconds или как там, или можно остановить полностью при помощи StopCoroutine.
Анон выше правильно сказал что для твоих нужд хватит 3 строчек в апдейте, или если хочешь можешь вынести это в отдельный метод чтобы чистенько было.
> SpeedTree integration with Shader Graph
В общем вопрос снимается, тупка отступила.
IL2CPP даст пососать за щеку. Модельки тоже есть методы защиты, кстать.
Я решил вопрос так
>enemyPrefab.GetComponent<EnemyX>().speed = waveCount;
То есть сперва получаешь доступ к игровому обьекту, в данном случае enemyPrefab, а потом геткомпонентном вытаскиваешь скрипт, и из него нужный метод или значение и ебёшь его в рот.
1. Не использовать Update() (и остальные похожие методы) ни для чего, кроме ловли инпута игрока. А что вместо них использовать-то, ёпту?
2. Не использовать Resources.Load и прочее. А что вместо него использовать-то, ёпту?
>А что вместо них использовать-то, ёпту?
А что тебе надо ловить каждый кадр кроме инпута блять?
>Не использовать Resources.Load и прочее. А что вместо него использовать-то, ёпту?
Инспектор
Ну типа бахнул базовый террайн и кубик на нем. Хочу чтобы кубик двигался в точку клика мышкой.
Да, луч. Нагуглил как надо. А в гамаке есть моусе.х и моусе.у. а тут как бы приходится иметь дело с 3д. С одной стороны не нравится, что решение полностью не мое и свое я бы сейчас такое не написал, даже если бы знал куда копать. С другой стороны даже лернинг юнити говорит, что надо гуглить. Хз карочи
Я начал делать так - основная сцена одна, кнопки одни и те же. Но в зависимости от выбранной песни в рантайме назначаю им разные разные звуки.
Или же нужно сразу просто в инспекторе все звуки сложить в коллекцию в каком-то объекте? Или вообще разные сцены с конкретными кнопками с уже назначенными звуками?
Вроде бы напрашивается вариант с заргузкой нужных звуков и присвоением их кнопкам в рантайме. Но чет читаю и там как будто сложно все. Нужно Asset Bundles юзать или Addressable. Умаоляю, подскажите, как вообще принято это делать в Unity, я только учусь.
Ну по идее в гамаке такая же метода как с лучом, только за тебя уже всё сделали, потому что там эти координаты нужны постоянно, а в юнити это частный случай из множества других.
Вообще в юнити хорошей практикой для поинт-энд-клик систем считается сделать пасфайндер из невидимого компонента, который ты расстилаешь на поверхностях, куда персонаж сможет ходить, заодно сразу проводя расчёт поиска оптимального пути. Есть бесплатные готовые решения, я видел и пользовался таким в одной из обучалок юнитеков.
Не ебу, но у меня есть опыт разработки в вебе, и я тебе так скажу: сделай то что первое в голову приходит. Если что потом просто рефакторингом займёшься. Или нет. Но так или иначе ты что-то сделаешь и получишь попыт.
>А в гамаке есть моусе.х и моусе.у.
Это супер неправильное решение, друг. Именно поэтому гмак и заглатывает хуй и не станет нормальным движком. Расти на голову выше.
Потому что тут буквально кроется полное говно гамака.
Да ладно тебе ругаться, гамак прикольный. И мануал там хороший, что для начинающих важно. В юнити без скилов каких-то в скриптинг апи еще поди разберись.
Я не спорю, братан. Я сам с гм5 в 2006 году начал. Но блять, у меня часть друзей на нём нахуй и остались и банально не выросли, оставшись тупыми дегенератами, неспособными даже в базовый ООП.
Всё, можете не отвечать.
В чём прикол? Типа если вылить в стим тонну говна то она через какое-то время принесёт прибыль?
>Типа если вылить в стим тонну говна то она через какое-то время принесёт прибыль?
Потому что стим теперь позволяет засирать себя. Полным говном, главное чтоб хоть как-то работало. Полная свобода.
Я бы спросил но я не уверен что им не кажется что они выкладывают шедевры, и в таком случае я рискую их оскорбить.
Ну то есть у тебя там суперкласс из нестандартного неймспейса, сам суперкласс не гуглится и ты мне еще какие-то претензии предьявляешь? Вопросы по твоей шизе я так понимаю можно считать закрытыми?
Сам ты нестандартный, вполне стандартный, тебе даже вижуал предлагает альт ентер нажать
Ну русский язык достаточно разнообразный, чтобы придумать нечто отличное от "пацаны, а вы нахуя говно это хуярите?" и достаточно обтекаемое, чтобы получить ответ на нужный вопрос.
Ок, мастер-кузнец слов русских, покажи мне как я бы мог задать вопрос, чтобы получить нужный ответ и никого не оскорбить?
Если хочешь можешь за меня деньги зарабатывать и присылать их мне на счёт.
Может юнитеки только недавно добавили эту хуйню, какая версия у тебя?
Ну тут несколько странностей. Например файл, указанный в туториале, я его нахожу по указанному пути и он не PNG, а TIF. Вот конкретно он в инспекторе и тут такая же залупа лол. Или я совсем долбоеб?
Спасибо.)))
Господа добавьте в шапку рекомендацию для ньфагов использовать книгу Разработка игр на Unity 2018 за 24 часа Авторы: Майк Гейг · 2021
Для меня она стала просто настольной библией почти все аспекты движка показаны и разобраны.
В отличие от богомерзкого Юнити в действии, где автор просто усложняет код, ради кода(не берите его чтобы не наткнутся на менеджер для менеджеров и т.п.)
Есть скрипт где камера следует за игроком. В скрипт добавлена булевая переменная следовать\не следовать. Оно все работает
Есть геймобжект при касании которого булевая переменная должна меняться и камера должна переставать следовать за игроком. Оно не работает. Чому? Вроде бы такая система всегда работала
знать бы еще какая тут строчка 13, а какая 21.
GameObject.Find использовать хуёвая практика, начинать не стоит. Если тебе просто объект с камерой найти надо, можно Camera.main.gameObject ёбнуть, он по тегу MainCamera находит.
>GameObject.Find использовать хуёвая практика, начинать не стоит.
А чем плохо?
>>93105
Я не он, но по идее еще можно перетаскивать в инспектор как публичную переменную. Но поиск по тегу ничем не не лучше GameObject.Find, причём я больше скажу, если уникальное имя предмету ты задать можешь, то развешивать всем пердметам уникальные теги нет, поэтому если ты ищешь какой-то конкретный обьект, то поиск по тегу по идее даже хуже.
Делаю простенький платформер. Есть некие интерактивные объекты которые активируются\деактивируются кликом мышки.
Сейчас задумал что бы активировать предметы можно было в определенном радиусе от персонажа. Как это проще сделать?
Есть варианты навесить на предметы триггеры определенного радиуса и проверять находится ли игрок в них либо навесить его на персонажа и проверять находится ли предмет в радиусе.
Какой способ проще и может быть есть способ лучше?
И то и другое вариант, просто смотря что тебе нужно. При варианте с триггером вокруг персонажа ты не сможешь сделать триггеры разного размера для разных предметов, зато он будет всего один. Еще можно программно проверять расстояние, но это кал-калыч, сразу говорю.
>Еще можно программно проверять расстояние, но это кал-калыч, сразу говорю.
С херали?
Я всегда пищу с этих мамкиных девелоперов которые навешают тригеров на объект и радуются.
Ну да это просто, но что делать когда у тебя поведение объекта зависит от степени приближения к нему? Ну давай расскажи как можно менять размер тригера программно или ты серьёзно будешь юзать несколько тригеров?
>>93200
А вообще взрослые мальчики используют райкастинг и не ебут мозг ни себе ни людям. Но если для тебя сложно, то просто програмно следи за расстоянием до цели и создавай нужные условия.
Возможно лучшим будет второй вариант.
Тогда еще вопрос. Как сделать проверку на предмет?
OnCollisionStay()
if(предмет) doSomething();
?
По тегу?
Я просто не хочу воодушевлять людей здесь лезть в апдейт без надобности, тут уже были любители засунуть туда корутины.
Каст лучей будет примерно такой же по оптимизации как триггер, зато проще в исполнении. Если ему понадобится менять поведение от степени приближения, то тогда да, только программно.
Блядь, при старте у твоего предмета запускается измеритель расстояния, если твой герой пересекает черту определённой условием то срабатывает то что ты хотел. Поиск осуществлять можно по имени, тегу или напрямую в редакторе(что хорошо для производительности, но ужасно неудобно если у тебя не один персонаж)
Пчел ну не поленись почитай книгу Разработка игр на Unity 2018 за 24 часа Авторы: Майк Гейг · 2021, я который нихера не смыслю в движке и то понимаю, как делать такие элементарные вещи.
Да я тогда слегка подохерел, когда мне товарищи из треда для моего карликового проекта советовали корутины использовать.
Но раз уж пошло, мне вот сейчас просто из любопытсва интересно можно ли реализовать анимацию плавной прозрачности, исчезновения и появления без корутинов. В документации ничего не нашёл в книгах напрямую указывают, что обычном апдейте никакой плавного исчезновения не будет.
Можно, и даже с корутинами, но тебе надо убедиться что у тебя запускается только 1 корутина для исчезновения за раз и была проверка запущена ли корутина сейчас или нет, то есть нужна стейт-машина. Опять же корутина по сути тот же апдейт, но который можно запаузить и остановить, поэтому может тебе и апдейта хватит и корутина необязательна.
зачем? ты конченый?
А еще можно пройти дарк совс, нажимая кнопки палочками вставленными в анус и уретру. Думаю тебе стоит так разрабатывать свою игру
Стремительные темпы развития.
Да что же все такие злые последние пару дней дней. Магнитная буря что ли на вас мудаков действует
И я тут задумался. А как сделать-то, чтобы скорость движения мыши на рабочем столе операционной системы, (как это настроил пользователь), соотвествовала вращению камеры в игре? И как это должно выглядеть. Я думаю, выглядеть это должно так, как на гифках: курсор должен двигаться с той же скоростью, как и объекты в камере. То есть, курсор прилипает к объектам. Если это происходит, значит, мы не исказили пользовательскую чувствительность/скорость мыши, и ему не надо будет залазить в настройки.
На обоих гифках это один и тот же запущенный сеанс, на второй я лишь отошел подальше.
> как публичную переменную только для того чтоб в инспекторе была
Если ты на юнити устраиваться куда-то будешь - тебя обоссут всем отделом за такое. Изучи уже [Serialize Field] и не будь уёбком.
>>93105
Поиск объектов через геймобджект файнд - хуёвая практика по 2 причинам.
Незначительная: Оптимизация. - геймобджект пробегается ПО ВСЕМ объектам в сцене и проверяет их имя. А если у тебя их 3000? Прикинь как такая вообще полуненужная хуета подвесит систему
Значительная: Тотальный обсёр с точки зрения архитектуры. А вдруг ты случайно геймобджект переименуешь? Или у тебя будет 2 таких геймобджекта? Все уже частично покатится впизду. Юзай принцип инкапсуляции ООП (скрипт вася, знает петю, а петя знает влада и обратившись к коле может добраться до вообще любого нужного чувака). Не лучшее решенее, но оно реально снижает обсёры. И не стесняйся юзать испектор и заранее все навешивать.
>Но раз уж пошло, мне вот сейчас просто из любопытсва интересно можно ли реализовать анимацию плавной прозрачности, исчезновения и появления без корутинов.
Можно блять вообще без программирования, лул. Юзай аниматор и эвенты юнитевские
дада, я ебнутый и скрестил жабу с гадюкой пикселяч и скелетку
Да, гугли animation rigging
Уже не помню, что то о несовместимости . Эта IK отчего то в устаревших висит
А какой двиг может?
Могут, но имхо возможно реально имеет смысл об этом волноваться только после того как всё уляжется. Возможно потом РФ будет как Северная Корея и тебе не до разработки игр будет.
1280x720, 0:07
А раньше что надо было делать?
>>93753
Не дает запустить без лицензии, т.е. без хаба.
Тебе нужна 2д ИК'шка. Не 3д. ИК для 2д спрайтов. Хочешь - сам эту ик-шку напиши, там нет ничего сложного.
https://www.youtube.com/watch?v=k4LkNtp9_wU&t=475s
Прокликай гайды. Тут и ИК есть
>Уже можно бегать по собесам?
Если более-менее что-то приличное, то изи. Вкатываешься в ГК там самый низкий порог. Спустя полгода перекатываешься во что-то приличное. На старте нужно толкь понимание ООП и SOLID паттерна
спасибо, гляну
Иностранный паблищ + банки не затроннутые санкциями. Пока что. На сегодняшний день. Что будет завтра - все может поменяться.
Подождите вы месяцок, самые тяжелые санкции быстро снимут, их вводят для торга
Что такое ГК? Я только про группу компаний знаю. А приличное, ну хз, в моем (((портфолио))) сейчас аналог пикрила и пара расширений для Visual Studio (не путай с VSC). Хуй знает, хватит этого или нет при наличии опыта разработчика в трудовой
Я ебу че в паке было? Ищи там же.
ГиперКазуал. Стандартная мобильная дрисня. На лютых галерах один хуй 40к получать будешь Джуном. И рост в течение года. Буквально заебашь пару раннеров, вкури в юнити аниматор, да гуёвый канвас раздуплись и норм. Работу найдешь
Ща открою старую систему, погоди. Не вздумай ток гуглить, там ебический пиздец, у юнити есть все готовое.
>>93949
Ебаш юнити эвентами и буквально через канвас, как если бы ты прикручивал кнопки. С 3д модельками теперь такая приколюха тоже прокает.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class MovableObj : MonoBehaviour, IBeginDragHandler,IDragHandler,IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
}
public void OnEndDrag(PointerEventData eventData)
{
}
void IDragHandler.OnDrag(PointerEventData eventData)
{
Debug.Log("DragLoop");
}
}
>>93949
Ебаш юнити эвентами и буквально через канвас, как если бы ты прикручивал кнопки. С 3д модельками теперь такая приколюха тоже прокает.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class MovableObj : MonoBehaviour, IBeginDragHandler,IDragHandler,IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
}
public void OnEndDrag(PointerEventData eventData)
{
}
void IDragHandler.OnDrag(PointerEventData eventData)
{
Debug.Log("DragLoop");
}
}
Могу тебе ссылку на проект скинуть, сбилдишь, увидишь как работает, если хочешь. Только кек, в самом приложении после билда скрипт засчитывания гола отваливается, хотя на компе все норм
Я хочу еще кликер сделать и спейсшутер. И потом искать РАБоту в гейдеве. а насчет 40к, так я на текущей 30 получаю, так что это еще хорошо видимо...
>>93987
>>93988
Спасибо за отклик, сделал через тач, только теперь два стула - если менять через position то коллизия не срабатывает, а если через велосити, то он начинает вести себя как ебнутый.
>40к, так я на текущей 30 получаю, так что это еще хорошо видимо...
Это стартовая ЗП во множестве контор для буквально зелёных джунов макак у нас. Если хоть немного показывает мозгов и вывозишь - она растёт. Я сам за год вырос с 50к стартовых до 140к.
ты вырос с 50. У меня вообще перспектив по ходу нет. Погугли про Microsoft Dynamics AX (это просто майкрософтовский 1ASS). Парадокс в том что я в решении своих задач даже загуглить нихуя не могу тк все очень специфично.
Да я бы рад, только хз как. Опять же, есть план - сделать хотя бы 3 игры. Вот, одну сделал, и та с багами. Смотрю вакансии, а там везде от мидла и выше, и вопросы такие что я ебал, типа что такое квантерионы и подобная ересь. Эх, за что я такой не такой
Такой вопрос, после удаления объекта, в скрипте которого есть событие, от этого события отписка происходит или надо отписываться вручную?
И вот ещё вопрос.
Пример. У меня 3 скрипта:
Менеджер событий
Противник
И ещё один скрипт, для частиц, на том же противнике.
Менеджер событий на сцене сразу, а вот противник генерируется позже. Если я подписался в менеджере на события противника в Start(), то он ведь не подпишется на противника?
В документации нипанятна, а ещё я видосов 5-7 на эту тему посмотрел и всё равно, немножко не понял.
А что за тестирование?
Ну вот я пытаюсь это сделать, там проблема в том, что в документации... Короче, я не знаю, как узнать количество подписчиков. В документации был какой-то метод, но он не работает для всех событий Вообще хуй знает, для чего он применяется. "GetPersistentEventCount" , я гуглил правда хуёво, но в итоге забил.
Причём, мне кажется, мои вопросы скорее связаны с непониманием, как оно под капотом работает. Надо будет CLR почитать.
1380x1016, 0:18
Почему у меня в трех вариантах три разные анимации?
У тебя трабл с винтовкой и обработкой анимации движком кривоватой. Не твоя проблема, а Юнити. Добавь просто для кости с винтовкой больше фреймов, чтоб не проёбывалось. Буквально поинсерти, чтоб оно не объебывалось с предугадыванием и все будет ок.
> Unity Animation Rigging
Я так догадываюсь - сырое говно. Делай скелетку в блендере/максе, а потом уже навешивай ИК и все остальное в Юнити.
Загрузи любую модель с костями. Посмотри как там иерархия. Нормальную модель.
> Менеджер событий
> в менеджере на события противника
ты долбаеб? Менеджер событий для пидоров, во-первых, во-вторых, если он есть, то он должен содержать события, а не подписываться на них, твоя задача передать противнику менеджер при создании и пусть это он подписывается-описывается.
По поводу описки, пойми простую вещь, событие - это делегат, подписка - это добавление указателя на метод к делегату. Таким образом, если сам делегат исчезнет, то исчезнут и указатели, но если исчезнут методы, то ты получишь указатель на несуществующий метод (нулреф), если ты точно знаешь, что делегат уничтожается первым, тогда можешь не отписываться, хотя это моветон.
Так, я понял, что делать анимации в юнити не самое лучшее решение даже по началу. Сделал модельку в блендере и там же ее анимировал. В юнити с ней происходят странное — в редакторе модель повернута в сторону Z, как и положено, вроде бы. Однако при запуске игры, модель поворачивается на 180 градусов. Возможно дело в том, что в блендере модель лицевой стороной была по Y, но в гайдах было сказано, что лучше при экспорте проекта в юнити задать лицевую ось Z, это я и сделал. В чем может быть причина?
Второй момент: сделал регдолл, чтобы во время анимации коллайдеры следовали за моделью. Все работает, коллайдеры есть, они следуют. Некоторые коллайдеры на конечностях неправильного размера, я пытаюсь их отредактировать, но возможности поворота коллайдера по осям почему-то нет. Хотя в тех же гайдах есть, там вертят как хотят. Да и сами коллайдеры, если посмотреть четвертый скрин изначально располагаются на несколько градусов в стороне от позиции модели. Меш модели тоже почему-то повернут. Почему такое может быть?
Вы запостили слишком много файлов
https://www.raywenderlich.com/14494028-introduction-to-modding-unity-games-with-addressables
Если игра будет интересной, народ и без этих костылей в жопе прикрутит и моддинг и мультиплеер. А если через IL2CPP прогонять не будешь - еще и спасибо скажет.
Сап ютитач, изучаю летопись еблана от ЮНИТИ в ДЕЙСТВИИ
Дошёл до системы сообщений и
> Создайте сценарий с именем Messenger и скопируйте в него одноимённый скрипт со страницы 404 и далее весь учебник строится на этой системе сообщений.
Я позже конечно нашёл этот скрип, то он категорически отказывается добавлять события которые я пытаюсь объявлять.
И внимание вопрос, так ли нужна эта система сообщений если изначально в юнити не предусмотрено ничего подобного?
Так ли плохо привязывать жёстко ссылки на события внутри скриптов?
Зачем засорять код этой лапшой с делегатами?
Почему среди моддеров будто нарочно сидит толпа топовых разрабов с кучей свободного времени, которые ждут пока какой-нибудь вася выпустит кривую но популярную игру, чтобы потом прилюдно унизить его, прикрутив к игре моддинг, мультиплеер и еще патч, который исправит его говноподелие и добавив кучу фичей, которые оригинальный разраб не смог или не догадался?
Почему они просто свою игру не сделают? Зачем им вот так унижать?
Кто нибудь может сказать почему я не могу подписать на событие?
private int _score;
void Avake()
{
Messenger.AddListener(GameEvent.ENEMY_HIT, OnEnemyHit);
}
void OnDestroy()
{
Messenger.RemoveListener(GameEvent.ENEMY_HIT, OnEnemyHit);
}
void Start()
{
_score = 0;
scoreLabel.text = _score.ToString();
windowSettings.Close();//закрывает всплывающие окна в момент начала игры
}
private void OnEnemyHit()
{
_score += 1;
scoreLabel.text = _score.ToString();
}
Компилято ошибки не находит, но когда стреляю по мобу выскакивает сообщение что подписак не найденно, поэтому удалять нечего.
Может я с синтаксисом обосрался?
В случае с float всё работает
public const float baseSpeed = 3.0f;//базовая скорость регулируемая ползунком
void Awake()
{
Messenger<float>.AddListener(GameEvent.SPEED_CHANGED, OnSpeedChanged);
}
private void OnDestroy()
{
Messenger<float>.RemoveListener(GameEvent.SPEED_CHANGED, OnSpeedChanged);
}
private void OnSpeedChanged(float value)
{
speed = baseSpeed * value;//метод объявлённый в подписчике для союбытия SPEED_CHANGED
}
Кто нибудь может сказать почему я не могу подписать на событие?
private int _score;
void Avake()
{
Messenger.AddListener(GameEvent.ENEMY_HIT, OnEnemyHit);
}
void OnDestroy()
{
Messenger.RemoveListener(GameEvent.ENEMY_HIT, OnEnemyHit);
}
void Start()
{
_score = 0;
scoreLabel.text = _score.ToString();
windowSettings.Close();//закрывает всплывающие окна в момент начала игры
}
private void OnEnemyHit()
{
_score += 1;
scoreLabel.text = _score.ToString();
}
Компилято ошибки не находит, но когда стреляю по мобу выскакивает сообщение что подписак не найденно, поэтому удалять нечего.
Может я с синтаксисом обосрался?
В случае с float всё работает
public const float baseSpeed = 3.0f;//базовая скорость регулируемая ползунком
void Awake()
{
Messenger<float>.AddListener(GameEvent.SPEED_CHANGED, OnSpeedChanged);
}
private void OnDestroy()
{
Messenger<float>.RemoveListener(GameEvent.SPEED_CHANGED, OnSpeedChanged);
}
private void OnSpeedChanged(float value)
{
speed = baseSpeed * value;//метод объявлённый в подписчике для союбытия SPEED_CHANGED
}
>Почему они просто свою игру не сделают?
Потому что работаем на галерах и не можем в творчество. А отдушина нахуй нужна.
Спасибо.
Изменять существующее всегда было проще чем создавать новое.
public class HealthBar : MonoBehaviour
{
public Slider slider;
bool isFighting;
public EnemyLogic showHealthbar;
void Start()
{
slider.gameObject.SetActive(false);
}
public void Update()
{
if (showHealthbar.playerInSightRange)
{
isFighting = true;
}
if (isFighting)
{
slider.gameObject.SetActive(true);
}
}
Тут я сделал бул на начало боя, который должен быть тру, если другая булевая переменная с другого скрипта будет тру:
public class EnemyLogic : MonoBehaviour
public bool playerInSightRange;
public void Update()
{
playerInSightRange = Physics.CheckSphere(transform.position, sightRange, whatIsPlayer);
Большую часть кода я упустил, оставил главное, на мой взгляд.
В общем понятно, что как только я оказываюсь в радиусе противника, он меняет playerInSightRange на тру в скрипте EnemyLogic, isFighting ловит тру из этого скрипта и тоже становится тру в HealthBar скрипте, включает хелсбар. Выкл я еще не делал, пока интересует вкл.
Вопрос почему не срабатывает тру на isFighting, если я попал в зону видимости противника? Наверное я неправильно написал обращение к переменной из другого скрипта, как правильно?
public class HealthBar : MonoBehaviour
{
public Slider slider;
bool isFighting;
public EnemyLogic showHealthbar;
void Start()
{
slider.gameObject.SetActive(false);
}
public void Update()
{
if (showHealthbar.playerInSightRange)
{
isFighting = true;
}
if (isFighting)
{
slider.gameObject.SetActive(true);
}
}
Тут я сделал бул на начало боя, который должен быть тру, если другая булевая переменная с другого скрипта будет тру:
public class EnemyLogic : MonoBehaviour
public bool playerInSightRange;
public void Update()
{
playerInSightRange = Physics.CheckSphere(transform.position, sightRange, whatIsPlayer);
Большую часть кода я упустил, оставил главное, на мой взгляд.
В общем понятно, что как только я оказываюсь в радиусе противника, он меняет playerInSightRange на тру в скрипте EnemyLogic, isFighting ловит тру из этого скрипта и тоже становится тру в HealthBar скрипте, включает хелсбар. Выкл я еще не делал, пока интересует вкл.
Вопрос почему не срабатывает тру на isFighting, если я попал в зону видимости противника? Наверное я неправильно написал обращение к переменной из другого скрипта, как правильно?
И тут проблема. Допустим, платформа не до конца поднялась, но я хочу ее отпустить с текущей позиции. В итоге она сначала моментально поднимается наверх, и только оттуда начинает спускаться. Можно ли ее спустить именно с текущей позиции, чтобы не было этих рывков?
Да, я в курсе, что проще вручную сделать в Update. Но мне интересно, можно ли такое добиться с использованием анимации?
Че за пластик?
Можно, но отдельными костылями через пустой геймобджект по аналогии с динамической анимацией у персонажей с IK. Секса там будет у тебя много если не никогда не делал, и намного проще и быстрее юзать тот вариант который уже знаешь.
> паблик поля
> физика в апдейте
> жесткая связанность
> компоненты и говнокод
> @ говорит ему про стейт-машину
лол
>>95202
если это основное, то ставь Debug.Log(playerInSightRange) раз уж про точки останова не слышал и смотри выдает ли true при пересечении сферы игроком, может в маске накосячил или ещё где
>паблик поля
Как что-то плохое. И вообще я как увидел костыли с иф-конструкциями вместо стейт-машины сразу пост накатал. От стейт-машины там хуже не станет, и того гляди уровень погромизма поднимет пока изучать её будет.
Кстати, ты уволен. Кстати, пошел на хуй
Сорян, но я по 3 абзацам на код не гадаю, хз что ты там делаешь, что у тебя кто-то ссылается на несуществующий объект, хотя я тебе сказал, что если делегат будет уничтожен первым - тот, кто и является держателем ссылок - то все ок, иначе нужно отписаться
> Как что-то плохое
если это не ецс, а ты не мамкин инди-разраб, то да, что-то плохое
> костыли с иф-конструкциями
принятие решений в апдейте - это не костыли, это говнокод
> От стейт-машины там хуже не станет
он, с таким уровнем, слово паттерны через год услышит, какая там на хуй машина?
Ок, что плохого в паблик поле если я его юзаю исключительно чтобы в инспекторе закидывать туда геймобьект?
блядь, зачем мне тебе что-то объяснять, ты даже не джун, а если где и работаешь, то случайно туда попал, раз не понимаешь, что к пабликам любой вася имеет доступ, а тем более настолько не уважаешь свое время, что готов заниматься драг энд дропом?
Ты на вопрос не ответил. Ну имеет доступ любой вася и че? И драг энд дроп это у юнити стандарт, как и паблик поля для него. А ты походу каргокультист, у которого инкапсуляция ради инкапсуляции, без вникания нужно это в данном случае или нет.
драг энд дроп у юнити - это интерфейсная фича для ГД, никак не для разработчиков, покажи хоть одно место, где это применяется на уровне движка. Смысл в том, что я в коде пишу 1 строчкой что мне надо, где и когда, а не как уебан потом сижу и вспоминаю какой я там компонент хотел накинуть. Паблик поля имеют место только для сериализации, иначе это долбоебистика, ибо дело не в инкапсуляции, а в безопасности данных и связанности. Похуй, что все твои сервисы на пабликах не имеют смысла из-за простоты взлома, но и так же при работе в команде никто не будет разбираться можно ли твои поля юзать, раз есть доступ, то можно, а потому при последующих изменениях весь проект полетит в пизду, поэтому я и говорю, ты не джун даже, раз банальных вещей не понимаешь, твой уровень - пилить проект мечты на мамкины деньги
>>95447
чекай паттерн цепочка обязанностей, мне кажется, реализация через него
Я ставил дебаг, почему-то не было тру во втором скрипте HealthBar, даже когда в оригинале был тру EnemyLogic. Посмотрел дальше по интеренету как можно обратиться к скриптам из другого скрипта, попробовал впихнуть оба на один префаб — сработало. Не очень понял почему не работало изначально. Ну и да, со стейт-машиной я пока пытаюсь разобраться, потому что первый раз вообще про нее слышу. А пока костыли и говнокод насколько позволяют руки для практики
Ну вот значит то, что ты скинул - далеко не все, что нужно было. Где-то ты значит поле showHealthbar переопределяешь, если ты его вообще до этого как-то передавал в скрипт, дело не в нахождении на одном объекте, это вообще не связано никак
Если через any state сделать?
Продолжаю пилить игру но столкнулся с проблемой
Нужно реализовать прицеливание по курсору. Сделал по гайду на ютубе то то что получилось "не дружит" с включенным аниматором, даже после того как анимацию прицеливания сделал "пустой".
Какой посоветуешь способ решить проблему?
вопрос снят
>при работе в команде никто не будет разбираться можно ли твои поля юзать, раз есть доступ, то можно, а потому при последующих изменениях весь проект полетит в пизду
Ты заебал жопой вилять, тимлид недоделанный. Конкретный случай мне приведи когда паблик поле для перекиыдвания туда драг-н-дропом геймобьекта вызывает последующий каскадный резонанс, в ходе которого проект идёт по пизде. От тебя только общие фразы и переходы на личности пока без конкретики. Ощущение что ты тут зеркалишь на меня своё положение.
https://www.reddit.com/r/technology/comments/tey0du/withlovefromamericatxt_appearing_on_your_desktop/
вот пидоры ебаные, короче советую всем системный язык поменять на английский хотя на гитхабе, пока всё не стихнет
Пофиксили?
Так я не понял, он удалял проекты, показывал сердечки или создавал на рабочем столе текстовик с лозунгами о прекращении военной операции?
Конкретно то что по ссылке создавал вроде только текстовик. Вот например в утилите для vuejs https://github.com/vuejs/vue-cli/issues/7054 одна из зависимостей ставила сердечки. В node_modules мире принято на любую однострочную хуйню ставить зависимость, так что это еще много где всплывет.
Олень тут ты, потому что сидишь и доказываешь что паблик поля являются исключительным злом, и при этом толком ответить не можешь почему, а прижатый к стенке сливаешься. А факт в том что абсолютно любая фича может сыграть злую шутку, если пользоваться ей бездумно, но твоё бездумное следование догмам это просто другая крайность, восторженный джун ты наш.
О, мамкин сеньор доказывает, что инкапсуляция нинужна, запасаюсь попкорном и буду тихо рофлить
мимодругойанон без игор и без имени
дополню, что сокрытие – это следствие инкапсуляции, а то понабежит ещё дэбилов
Я сливаюсь потому что ты долбаеб, который читает текст как ему удобно
> паблик поля в компоненте
> ПЛОХА?
> если это не ецс, а ты не мамкин инди-разраб (читай: проект для себя), то да, что-то плохое
> ДАКАЖИ
> к пабликам любой вася имеет доступ
> ИЧОТАКОВА
> простота взлома + жесткая связанность
> ПРИВИДИ КОНКРЕТНЫЙ ПРИМЕР. У МЕНЯ НИТАК. СЛИЛСЯ. ЛООХ
Какой, блядь, тебе конкретный пример? Ты сам то о публичных полях в целом, то о том, что у тебя только они для ГО, приведи мне конкретный пример кода на пабликах, я тебе конкретно его разъебу, иначе иди гуляй, пидораха
Третий анон, тоже выскажу очень важное мнение, что драгндропать в падлик поля залупа и неудобно.
>приведи мне конкретный пример кода на пабликах
Я тебе конкретно сказал - чтобы драгндропать геймкомпонент. Тебе написать его? Пожалуйста:
public GameObject mamkuEbal;
А теперь сочини мне сценарий, при котором это приведёт к каскадному резонансу. Я тебе полностью развязываю руки и ты можешь насочинять какие угодно корнеркейсы, постарайся не выставить себя еще бОльшим дауном чем сейчас.
вот тебе пример:
в твою mamkuEbal подсунули спидозную иглу, и теперь тебе осталось жить пару лет, ведь ты нихуя не смог протестировать перед тем, как юзать это поле, достаточно каскадно срезанировало, ебанашка?
public class Shape : MonoBehaviour
{
protected Color color;
private void Start()
{
color = GetComponent<Renderer>().material.color;
}
void OnMouseUp()
{
TaskOnClick();
}
public virtual void TaskOnClick()
{
Debug.Log("Mouse click on Shape");
}
}
Есть его дитё:
public class Cyllinder : Shape
{
void Start()
{
Debug.Log(color);
}
public override void TaskOnClick()
{
Debug.Log("Mouse click on Cyllinder");
Debug.Log(color);
}
}
Ну так вот, если у дитя будет красный цвет, то если я уберу метод Старт, то я увижу после клика на нём что цвет красный. Если же я оставлю этот метод, то он покажет что цвет по нулям, то есть черный. Обьясните что за хуйня? Я пока обошёл это костылём, но на будущее интересно.
public class Shape : MonoBehaviour
{
protected Color color;
private void Start()
{
color = GetComponent<Renderer>().material.color;
}
void OnMouseUp()
{
TaskOnClick();
}
public virtual void TaskOnClick()
{
Debug.Log("Mouse click on Shape");
}
}
Есть его дитё:
public class Cyllinder : Shape
{
void Start()
{
Debug.Log(color);
}
public override void TaskOnClick()
{
Debug.Log("Mouse click on Cyllinder");
Debug.Log(color);
}
}
Ну так вот, если у дитя будет красный цвет, то если я уберу метод Старт, то я увижу после клика на нём что цвет красный. Если же я оставлю этот метод, то он покажет что цвет по нулям, то есть черный. Обьясните что за хуйня? Я пока обошёл это костылём, но на будущее интересно.
Ок, всё, сообразил. Дитё оверрайдит метод старт родителя и никогда не получает цвет.
когда ты обращаешься к материалу, юнити не дает тебе существующий, а инстанцирует новый, который имеет дефолтные значения
а, бля, может не правильно помню, просто как-то тесты писал на проверку цвета и нужно было в плей-моде их писать и пропускать кадр, иначе юнити ругалась, что материала не существует
Есть GameObject в виде ружжа. Ружжо становится активным когда персонаж берет его в руки, стреляет и становится неактивным когда персонаж убирает его. На ружже висит дочерний объект ShellPoint по координатам которого генерятся гильзы в момент выстрела.
Однако юнити кидает NullReferenceException при попытке обратится к ШеллПойнту , который как и ружъе в данный момент активен.
Проблемы не возникает если ружье включено с самого начала
Что я делаю нет так?
Проблему решил.
Вообще это хорошая примета-ебаться с какой то проблемой пару часов, спросить на дваче и тут же ее решить после этого.
Но все равно спасибо. Держи котика
Я не в курсе о большей части аспектов в юнити.
Ружжо было выключено по умолчанию в иерархии и включалось через аниматор в начале анимации доставания ружжа. Таким макаром попытка доступа к нему выдает ошибку, даже если в момент запроса(хотя может проеб как раз в этом) ружжо включено.
Пофиксил включив его в иерархии и выключая через аниматор на прочих анимациях где оно не используется.
Пытаюсь сделать так, чтобы объекты как бы примагничивались к главному объекту.
В OnTriggerEnter добавляю AddForce к объектам, но они медленно уползают не в ту сторону, почему оно так? Я пробовал заменить на AddForceToPosition тоже самое, повернуть через RotateTowards, ну и через MoveTowards всё одно.
А ещё такой вопрос. А почему объект Vector3 состоит из трёх точек?
Конечно, у меня в шараге с линалом было всё очень плохо, но ведь... вектор нельзя же задать тремя точками, да?
Заранее спасибо за ответы.
Мой говнокод:
void OnTriggerEnter(Collider collision)
{
Debug.Log("ITS WARKING");
Debug.Log("MagnetCoordts"+magnet.transform.position);
Debug.Log("collis"+collision.transform.position);
Vector3 mag = magnet.transform.position;
Vector3 final_mag = new Vector3(mag.x,mag.y,0);
//if (collision.GetType() == typeof(BoxCollider))
//{
//Vector3 magnet;
//Vector3 enemy;
//private Vector3 final;
//final.MoveTowards(collision.transform.position, magnet.transform.position,10f);
//collision.gameObject.GetComponent<Rigidbody>().AddForce(/collision.transform.position5//Vector3.MoveTowards(magnet.transform.position, collision.transform.position,10f),/this.gameObject.transform.localPosition(-1)/,ForceMode.Impulse/);
//collision.attachedRigidbody.AddForceAtPosition(Vector3.MoveTowards(collision.transform.position, magnet.transform.position,10f),/magnet.transform.position/ForceMode.Acceleration);
collision.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.RotateTowards(Vector3.MoveTowards(final_mag,final_mag,10f),magnet.transform.position,1,1)/magnet.transform.localPosition/);
// }
}
Пытаюсь сделать так, чтобы объекты как бы примагничивались к главному объекту.
В OnTriggerEnter добавляю AddForce к объектам, но они медленно уползают не в ту сторону, почему оно так? Я пробовал заменить на AddForceToPosition тоже самое, повернуть через RotateTowards, ну и через MoveTowards всё одно.
А ещё такой вопрос. А почему объект Vector3 состоит из трёх точек?
Конечно, у меня в шараге с линалом было всё очень плохо, но ведь... вектор нельзя же задать тремя точками, да?
Заранее спасибо за ответы.
Мой говнокод:
void OnTriggerEnter(Collider collision)
{
Debug.Log("ITS WARKING");
Debug.Log("MagnetCoordts"+magnet.transform.position);
Debug.Log("collis"+collision.transform.position);
Vector3 mag = magnet.transform.position;
Vector3 final_mag = new Vector3(mag.x,mag.y,0);
//if (collision.GetType() == typeof(BoxCollider))
//{
//Vector3 magnet;
//Vector3 enemy;
//private Vector3 final;
//final.MoveTowards(collision.transform.position, magnet.transform.position,10f);
//collision.gameObject.GetComponent<Rigidbody>().AddForce(/collision.transform.position5//Vector3.MoveTowards(magnet.transform.position, collision.transform.position,10f),/this.gameObject.transform.localPosition(-1)/,ForceMode.Impulse/);
//collision.attachedRigidbody.AddForceAtPosition(Vector3.MoveTowards(collision.transform.position, magnet.transform.position,10f),/magnet.transform.position/ForceMode.Acceleration);
collision.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.RotateTowards(Vector3.MoveTowards(final_mag,final_mag,10f),magnet.transform.position,1,1)/magnet.transform.localPosition/);
// }
}
Спасибо за ответ.
Я не хотел тебя оскорбить или что-то вроде того, анончик сверху спрашивал,- а почему не "протестируешь" и поймёшь, как оно работает, вот я и протестировал.
А если удалять вот так вот делегаты, это память сильно не засрёт? И засрёт ли это память меньше, если перед удалением делегата от него отписаться?
Если интересно про тот код, там я инстансил кучу противников, которые друг на друга подписывались и после смерти одного событие посылалось на всех, включая убитого, вот и нулл референс.
У тебя какая-то хуйня тут: .AddForce(Vector3.RotateTowards(Vector3.MoveTowards
ты вектор силы, который направлен к твоему объекту, разворачиваешь на угол, на который нужно развернуть тело, чтобы его форвард был обращен к цели. Тебе нужно разделить, сперва body.rotation =..., а потом AddForce
А по поводу векторов могу посоветовать "Игровой движок. Программирование и внутреннее устройство | Грегори Джейсон", всё не надо читать, можешь даже тупо только 5 "Глава 5. 3D-математика для игр" - что такое скаляры, какие бывают системы координат и прочее
Спасибо.
Перезапуск юнити не помог
>анезапно перестали быть видны партикли
>пропердолился 2 часа пробуая разные варианты из гугла
>в итоге проблему решил простой перезапуск
Мда, знакомство с юнити началось заебись.
>Мда, знакомство с юнити началось заебись.
Да, еще хапнешь горюшка, будешь умолять о пощаде, но юнити будет продолжать ебать
Я так три дня ебался с неработающими анимациями, обиделся и забил на два дня, потом запустил юнити снова и все работало. Нихуя с прошлого раза не поменялось, но все работало как надо
>как
сука, вы хоть что-то сами умеете искать?
Описание с доков
>Представляет генератор псевдослучайных чисел, то есть алгоритм, который генерирует последовательность чисел, отвечающую определенным статистическим критериям случайности.
Юзай семя и при каждом обращении его меняй, будет тебе счастье
>>95948
У меня бывало ломался даже не юнити, а компилятор, код тупо не работал так, как должен, помогала только пересборка проекта. Так что советую почаще ломать и набраться опыта в исправлении на ранних этапах, иначе чревато забросить почти завершенный проект
При клике по элементу у меня делается PropertyField с этим элементом. Все работает, вот только когда в инспекторе раскрываю какой-нибудь элемент - фпс пиздец падает, вплоть до того что инспектором невозможно пользоваться почти.
Даже когда там всего элементов 10.
Причем если список обычный, из одного типа, помеченный SerializeField, то все идеально работает даже если я сотню объектов туда закину, то есть проблема именно когда я из инспектора пытаюсь обращаться к полю, которое сериализовано по ссылке.
Возможно ли это пофиксить?
Мне по сути просто нужно, чтобы был некий список объектов разных типов, и для каждого типа я мог свои параметры настраивать, вот как в разных нод эдиторах есть разные ноды с разными параметрами - вот мне типа того надо, но намного проще в плане визуала, может есть еще какие-то варианты как это сделать?(без безумия вроде создания в скрипте скрытых скриптабл обжектов)
> при каждом обращении меняй
Не помогает, я просто спавню сразу несколько разных противников и проблема, видимо, в том, что псевдослучайные числа забиндены на миллисекунды или типа того... Хотя это не так, я вроде гуглил и в Юнити какой-то другой метод используется Если кто-нибудь знает - просветите, это Линейно-Конгруэнтный метод?.
Короче, при спавне получаются волны одинаковых противников, с низкой вероятностью появления.
бля вот я дебил слепошарий, там же из-за ифа
В сцене их не видно.
Есть в природе книга с best practices разработки игр на юнити?
Не дебильные туториалы "создаем эрпоге за 10 уроков" после которых у тебя на руках кривой, косой примитивный, но "законченный продукт" из ассетов с диска. А книжка, которая учит делать правильно и отучает делать неправильно, знакомит со стандартами и тонкостями. Как книги майерса для плюсовиков, только для геймдизайна в разрезе юнити.
В коде 0 ссылок на unity. Просто сама игра на юньке
А как по твоему производится генерация? Берётся куча обьектов, из них строятся циклы с вероятностями, и далее идут циклы которые генерят это дело в шаблоны или в клетки.
То что ты хочешь чтоб красиво и мало, это либо не генерация, либо условная генерация из уже готовых шаблонов по типу выбора готовой конструкции.
>А как по твоему производится генерация?
Я про красивый код скорее. Понятное дело, что всё в итоге сводится к многократному проходу по циклам с System.Random.Next + coef1 + coef2 + coef3. Но можно ли это как-то красиво обставить, чтобы глаза не вытекали при виде тонны циклов в цикле.
Ладно, согласен, вопрос говна.
Всё что мне приходит на ум, и то чтобы лично я сделал для себя еслибы была цель сделать красиво, то спрятал бы большинство нужных функций куда нибудь в жопу, и на виду оставил бы грубо говоря коофиценты для ввода рандома. Т.е получилась бы одна функция из которой уже вызывались бы десятки других с нужными коэффициентами. Но это чисто чтоб психологически было легче, суть остаётся таже.
В зависимости от задачи может подойти какой-нибудь алгоритм, который может реализовываться либо как набор циклов, либо, с использованием спец. структур данных, он может быть и похитрее.
Можешь обьяснить что должен делать алгоритм?
>Можешь обьяснить что должен делать алгоритм?
Могу. Есть массив bool[,] определяющий квартиру, где true - это значения, которые являются частью квартиры, а false - пустые места ну или места другой квартиры - не суть. Все ячейки true располагаются так, что находятся как минимум рядом с одной другой ячейкой нет изолированных ячеек сверху, снизу, справа, слева эта генерация уже готова и очень мне нравится.
Нужно поделить квартиру на комнаты, так чтобы все ячейки каждой отдельной комнаты были рядом друг с другом.
Я выдумал два способа:
1. Делить массив сеткой вот этот почти готов кста например - на три области по горизонтали и на две по вертикали. Получаем 6 комнат. И затем в несколько проходов убирать недостатки по типу пустых комнат. Если комнат меньше - делить ещё раз, если больше - объединять наименьшие соседние.
2. Пройтись как по графу вот этот толком не готов.
Покажи, пожалуйста, какой-нибудь кусок кода с Random.Next.
А почему ты, кстати, используешь шарповский рандом?
> А почему ты, кстати, используешь шарповский рандом?
Я его не использую. Использую юньковский
> Покажи, пожалуйста, какой-нибудь кусок кода с Random.Next.
https://codeshare.io/nzrV63 - генерация этажа/квартиры
Анон, прошу, никогда больше не спойлероёбствуй так, читать такое просто пиздец неудобно. Ну и вопрос чем тебя обыкновенный сортировочный алгоритм не устроил?
Спасибо.
Если я тебя правильно понял, то ты просто берёшь массив с булевыми значениями и сортируешь?
>Если я тебя правильно понял
Не уверен в том, как ты меня понял поэтому просто покажу на примере:
у нас есть bool[,] обозначающий общий план квартиры
{ true, true, false, true }
{ true, false, false, true }
{ true, true, false, true }
{ true, true, true, true }
нужно превратить в int?[,] обозначающий план квартиры с делением на комнаты
{ 0, 0, _, 2 }
{ 0, _, _, 2 }
{ 1, 1, _, 2 }
{ 1, 1, 1, 2 }
а вот такого - быть не должно
{ 1, 0, _, 2 }
{ 0, _, _, 1 }
{ 1, 1, _, 1 }
{ 0, 0, 1, 2 }
бамп
Перекат
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
https://2ch.hk/gd/res/796855.html#796855 (М)
Ок, в твоём алгоритме false заменяется на пустое значение? Или ты для примера так сделал? И у тебя там комнаты 1 и 2 соединяются, как понять где начинается одна комната и заканчивается другая?
Вообще теперь с пояснением больше похоже на алгоритм Union-Find.
> Ок, в твоём алгоритме false заменяется на пустое значение?
вообще массив имеет такую форму (bool isQuad, int? numberOfRoom)
> И у тебя там комнаты 1 и 2 соединяются
Там все комнаты напрямую или косвенно соединяются. Это одна квартира.
> как понять где начинается одна комната и заканчивается другая?
В смысле как понять в каких местах делить помещение на комнаты? В этом и есть моя цель. Я пытаюсь составить уже составил один почти рабочий алгоритм деления территории на комнаты.
>В смысле как понять в каких местах делить помещение на комнаты? В этом и есть моя цель.
Не, ты не понял. Ты же сперва задумываешь логику, а потом алгоритм пишешь(надеюсь)? По какой логике строить алгоритм деления большой связанной области на комнаты?
{ 0, 0, _, 2 }
{ 0, _, _, 2 }
{ 1, 1, _, 2 }
{ 1, 1, 1, 2 }
Вот тут как ты понял где комната 1, а где комната 2? Или где комната 1, а где комната 0?
Это копия, сохраненная 20 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.