Очень круто Можно было еще рассказать про мега полезные кнопки прямо в инспекторе. Если, например, у объекта есть много компонентов, которые он должен получить через GetComponent, то вместо того, чтобы делать это каждый раз при старте, можно было бы привязать этот метод к кнопке и вызывать только один раз в редакторе
Для решения двух последней проблемы можно использовать OnValidate, более удобный и не захламляет Update, при этом его можно целиком обернуть в предифайн UNITY_EDITOR. docs.unity3d.com/ScriptReference/MonoBehaviour.OnValidate.html
> при этом его можно целиком обернуть в предифайн UNITY_EDITOR А есть смысл оборачивать? Он же в любом случае будет вызываться только при изменении параметров в инспекторе
@@awesomegamedev Особого смысла действительно нет, но вы просто не потащите этот кусок кода в билд, и получить визуальное выделение куска кода, что в некоторых случаях может быть удобным.
@@romankazarinov5261 > но вы просто не потащите этот кусок кода в билд Это хорошо. Вопрос тогда, не выкинет ли Unity все подобные (исполняющиеся только в редакторе) методы автоматически?
В последнем примере для проверки полей инспектора вместо связки атрибута Execute Always и метода Update следует использовать метод OnValidate. Это обработчик событий, который реагирует на любые изменения в инспекторе компонента.
Одно могу сказать точно. Кейс с рельсами очень даже актуальная тема. Для пущей убедительности, еще бы прикрутиьь возможность модифицировать положение создаваемых обьеков по сплайну, что бы можно было спавнить не только ровные полосы обьектов, но и зацикливать или, на худой конец, спавнить в виде кривой
Ага, туда можно наворачивать уже всякие сплайны, чередование разных префабов, можно их размер по bounds получать, уже зависит от того какие модельки и чего хочется добиться
Ролик довольно старый, но вместо атрибута executeAlways можно использовать метод onValidate, вынести логику изменения в отдельный метод и вызывать его из OnValidate и из Update. Так будет вызываться только необходимое и отпадает надобность проверять включена ли игра или нет
8:44 - 15:03 - ровно на эту тему (как обновлять объект в зависимости от параметров, без запуска игры/play-mode) сделал вчера видео (правда на английском языке): ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-KCDYdQUufhs.html Я не использую ExecuteAlways, а определяю свой инспектор, который отлавливает изменения и просит объект "адаптироваться". ExecuteAlways подойдёт, где объекты простые и можно просто на каждом кадре даже во время игры подстраиваться под свойства (как в методе Update на 9:24). Если же объекты более сложные, то подстраивать их на каждом кадре не вариант и лучше отлавливать изменения. Для этого нужно либо: 1) Хранить предыдущий набор параметров (т.е. продублировать для каждого параметра ещё одно private поле, которое будет хранить предыдущее значение), и в Update сравнивать каждый параметр с его предыдущим значением, либо 2) Переопределить инспектор и отлавливать все изменения парой строчек, как я делаю в видео
Можно больше роликов про случайную генерацию мира, включая реки, деревья, горы, было бы хорошо сразу про 2д и 3д мир, например как в майнкрафте или террарии. Есть много видео на английском, но хотелось бы на русском от тебя посмотреть и разбор послушать.
OnValidate похоже реально тема. Сделал буквально вчера видео на аналогичную тему (адаптация объектов под изменение параметров), но использовал кастомный инспектор (без ExecuteAlways). OnValidate будет ещё проще. С другой стороны, у кастомного инспектора больше гибкости. Добавить кнопку "Recreate", как я делал, с помощью просто OnValidate уже не выйдет.
Так, ну вот рельсами и цветами может лучше использовать функцию onValidate? Я вот допустим часто юзаю эту штуку. Например для недавнего джема от дтф я под конец понял что кое-где я таки успеваю прикрутить звуки. Но вот для даже полудесятка префабов добавлять аудиоСорс было в лом (тем более там такая мешанина была с префабами так как спешил, тут мой косяк), то я просто добавил аудиосор как поле и проверял в валидате не нулл ли он и если нулл, создавал тут же и прикреплял. Потом только оставалось нужные клипы всем добавлять. Да можно было добавить как варик РекваерКомпонент, но тут в одной функции написал быстро, все добавилось и удалил) А так спасибо за ролик. про контекстное меню прям на префабе не знал. Полезно )
Да, для цветов точно лучше onvalidate У меня есть ещё сакральное знание про то как сделать авто-модификацию префабов или сцен, недавно потратил дня два чтобы разобраться как это правильно сделать. Чтобы например кнопка в верхнем меню, по нажатию скрипт проходит по всем префабам в папке levels, и везде например автоматом расставляет коллайдеры на объектах на определённом слое, или заменяет старую версию скрипта на новую. Или вот аудиосорсы накидвыает на объекты по каким-то правилам. Думаю про это тоже как-нибудь отдельное видео сделаю, не знаю насколько оно будет полезно
@@EmeraldPowder да, делал нечто такое. Из возможных косяков еще кстати надо проверять не вариант ли это префаба. Ошибок критических вроде не дает при сохранении изменений, но в консоль выводит красным что напрягает) + у себя я еще менял значения полей скрипта, а они были приватными и сериалайзнутыми. Если интересно и для будущего ролика могу скинуть.
@@EmeraldPowder github.com/AlexStraga87/FillMaskEditor Если интересно глянуть. Я как весь день потратил пока докопался до всего Надеюсь онятно будет ил куда копать если понадобится.
Классное видео!) Тоже недавно записывал видос, как можно одной кнопкой заменить весь UI текст на TextMeshPro с сохранением всех параметров и закинуть их в список
Пожалуйста сделайте гайд по спавнингу префабов в эдиторе. (У меня есть игра где я пытаюсь сделать маленький редактор карт). Я хочу выбирать префабы их спаунить на "полу, - карте" там где кликну мышкой, но делать это еще на этапе редакотра. Спасибо!
Я его использовал, но потом однажды часа два искал из-за чего при каждом изменении в ассетах реимпортятся все уровни в проекте, и это было как раз из-за OnValidate. С тех пор обиделся и не использую его)
@@EmeraldPowder Я его за редким исключением обрамляю таким же #if UNITY_EDITOR. Просто вставлять куски едитор кода в рантайм очень мешает читабельности. Лично меня жутко раздражает. К тому же в рантайме тебе сцену не надо настраивать, а там лишние проверки на isPlaying. В любом случае именно в данных задачах, мне более приемлемым кажется OnValidate, но, может, это вкусовщина. А ExecuteAlways я использую именно так, как называется этот атрибут. Возьмем какой-нибудь UI элемент, который должен одинаково отрабатывать, что в рантайме, что в редакторе, вот тогда да. И, по-моему, ты ошибаешься на счет "сообщений", которые работают в редакторе. Там отрабатывает только Awake, Update и еще пару функций (точно не помню).
@@MrSvennko Да, по идее конечно OnValidate лучше тут подходит. Наверное если нет кучи префабов левелов, в каждом из которых куча скриптов с OnValidate, как у меня было, то нормально работает Сообщения точно знаю что работают Awake,Start,Update,LateUpdate. А всякие CollisionEnter, OnEnabled и Destroyed мне кажется лучше в любом случае не использовать в едитор-коде
Делать скрипт, который прижимает объект к поверхности - пффф Сделать срипт, который спаунит префаб по клику мыши и сразу прижимает к поверхности + возможность поворота вдоль нормали - секс
@@ДРезо да не, многие игры могут иметь однотипоную механику, а недооценненные наоборот иметь кучу разных нововведений. Однако это крайний случай, поэтому я предлагаю именно выделять механики, вне зависимости от популярности
День добрый, не могу нигде найти как сделать вращение объекта при помощи мыши, например при подборе предмета необходимо рассмотреть его с разных сторон. Если не трудно сделайте пожалуйста видео.
А можно ли сделать скрипт, в который можно было бы перетаскивать не monobehaviour скрипты? Чтобы их поля были видны в инспекторе. Например, чтобы собирать из заготовок нового персонажа, а не создавать отдельный скрипт для каждого нового персонажа. Мне кажется если добавлять на объект очень много monobehaviour компонентов, это как то скажется на производительности.
В юнити вообще везде где можно перетаскивать, можно перетаскивать только объекты которые наследуются от UnityEngine.Object. Помимо MonoBehaviour это ещё ScriptableObject - возможно это то что нужно
Здравствуйте, в моей игре открытый мир, несколько авто на сцене и персонаж, который может садиться в эти авто. Из-за того, что на сцене несколько авто (контроллер Realistic Car Controller), fps проседает. Как мне оптимизировать этот процесс, чтобы fps, сильно не проседал?
Вот нашёл только когда выложил видео и увидел в комментах что оно уже есть) Не уверен когда его добавили, но когда я первый раз писал этот скрипт то точно ещё не было, и почему-то эта кнопка даже сейчас особо не гуглится
покажи, как интегрировать игру на unity (webdl) в VK, с добавлением новых игроков в базу и получением оных при входе в игру... это сейчас вобще не найти... везде старые нерабочие коды
Привет! Я не занимаюсь геймдевом, но уже пару дней вынашиваю одну мысль. Возможно ли теоретически создать игру в стиле bullet hell, но наоборот, т.е. игрок должен своими пулями убить себя, а "враги" пытаются его остановить. Если возможно, то насколько это сложно в плане кода (например для новичка)?
Привет, теоритически конечно возможно. Именно технических сложностей тут нет, но я бы советовал для первых нескольких проектов не выбирать то что ещё никто не делал, чтобы было проще гуглить непонятные вещи и принимать решения, а потом уже браться за что-то своё
Ребят, кто может помочь? Я новичок в программировании и начал изучать С#. Компилятором выбрал райдер. Инфу в интернете найти не могу. Но у меня постоянно(почти) когда нажимаю на код включается инсерт. Не получается нормально что-то удалить или поставить вместо выделенного из-за инсерта(ну там прямоугольник белый мерцает на строке). И не получается копировать, вырезать и вставить с помощью горячих клавиш. В контекстном меню написано к примеру Ctrl + c, но когда пытаюсь копировать через клавиши , ничего не работает , но через контекстное меню работает. Кто может ,помогите пж.
Брооо... У меня есть для тебя особый квест который ты на вряд ли сможешь выполнить. Закину 1000 если выполнишь... Замути систему магии рун как в Arx Fatalis на Unity
для тех кто не хочет учиться скриптингу специально разработаны блюпринты на анриле, а так тебя научить кодить можешь только ты сам, а помочь в этом могут обучающие видео или специальная литература.
хотел поделиться нашей игрой, тк когда-то по твоим видео начинал осваивать юнити, а теперь во всю работаю на нем спустя год) ldjam.com/events/ludum-dare/47/pre-call
Все эти задачи, которые я предоставил как примеры, возникали у меня в процессе работы, и я долго гуглил как правильнее их решить. И решил собрать в видео, чтобы зрителям пришлось меньше гуглить, ну и чтобы знали что это возможно А вообще по хорошему берутся из документации, но там не так хорошо эта часть юнити описана чтобы понять, только если вспомнить что уже знаешь
Самому хочется больше такого контента, но обычно на такие видосы очень много времени нужно тратить, так что получаеется не так часто. Кстати если есть идеи каких-то интересных тем-идей для таких видео, обязательно закидывайте в комменты
Вроде как плагины-расширения иногда иконкой пазла обозначают. На видео со смайликами вроде всё-таки чаще кликают, по моим наблюдениям, так что стараюсь подбирать какой-нибудь подходящий :)
Привет. Факторию не так просто создать со всеми нюансами, а так на мобилки есть похожая Mindustry, она вроде даже сначала была на телефонах а потом и в стиме вышла
Ничего не идеально встало с поворотами. Вся эта мишура с тригонометрией очень условная. Понимаю, что хочется докзаать, что все другие кто не учил её дураки, но так не работает. Люди просто упрощают всё, чтобы не тратить время на выверение сраных формул, без которых вполне можно обойтись тут)))