Настройка деформации игрока

Поделиться
HTML-код
  • Опубликовано: 10 ноя 2024

Комментарии • 139

  • @jackiebaileys3110
    @jackiebaileys3110 Год назад +66

    Не знаю, писали тут или нет, но на всякий случай:
    Если шейдеры не отображаются или они розовые, то вы скорее всего не в проекте 3D URP. Чтобы исправить проблему, нужно догрузить пакеты URP и выставить одну настройку.
    Как скачать: заходим в Window/Package Manager/выбираем вверху Unity Registry, находим внизу строчку пакеты Universal RP и качаем. Там гиг вроде с чем-то.
    Как выставить настройку: создаём в Ассетах простую папку и называем её URP Settings(можете назвать как угодно), затем нажимаем на папку правой кнопкой мыши, Create, Rendering, URP Asset(with Universal Renderer).
    В папке создадутся два файлика.
    Идём в Edit/ Project Settings/Graphics. В самой верхней строчке Scriptable Render Pipeline Settings будет пусто, нажимаем справа на кружок и выбираем файлик New Universal Render Pipeline…блаблабла. Готово. Шейдеры должны стать адекватными. Если же ещё нет, то выберите их и жмакните по ним Edit/ Rendering /Materials /Convert All Built-In Materials to URP.

    • @Art_Logic
      @Art_Logic Год назад

      Благодарю за инфу, коммент в топ выводите, жмите лайк) Все стало розовым после правда.

    • @euginj7410
      @euginj7410 Год назад

      Спасибо за подсказку, дополнительно может помочь, если выше не сработало, двойным кликом по файлику, например Push, если он розовым идет, откройте шейдер. У меня при первом входе, в названии на вкладке, была звездочка, якобы я его отредактировал, ничего не меняем, правой кнопкой по вкладке, с названием шейдера, жмем и выбираем Close tab или закрыть вкладку. Должно предложить Save или просто закрыть. Я нажал Save и шейдер наконец применился. Походу система дораспознала после всех бубнов. (возможно, понадобится что-то отредактировать, в таком случае, меняйте такое значение, которое можно быстро вернуть, при повторном редактировании)

    • @nikolayjiganin7638
      @nikolayjiganin7638 Год назад +3

      Подскажите, делаю все по инструкции, работает, но пропадают все остальные материалы, что в этом случаи делать?

    • @ОстапГарцуев
      @ОстапГарцуев Год назад +2

      @@nikolayjiganin7638 Кучу времени отдал, но нашел. Нужно сменить рендер материалов на Universal Render Pipeline / Lit. Если не дает - создать новые материалы, они будут уже нормально отображаться.

    • @romaiacovlev3364
      @romaiacovlev3364 Год назад

      Я делал всё по твоей инструкции и шейдер заработал, это хорошо, но только освещение пропало, всё стало чёрным кроме объектов у которых были материалы. Это как исправить?

  • @jackiebaileys3110
    @jackiebaileys3110 Год назад +8

    Если у кого-то, как у меня, персонаж не деформировался в момент прохождения ворот, посмотрите не висит ли у вас в Player`e в ColliderCenter на Capsule лишний Rigidbody. Долго с этим возился. Посмотрел урок Ильи "Физика в Unity - 2. Collider" на его канале и сходу обнаружил у себя лишний Rigidbody. В предыдущем уроке "Программирование сбора монет", когда создаём ColliderCenter и Capsule, он про это говорит и НЕ вешает лишний Rigidbody на Capsule. Я хз откуда он в этом случае у меня взялся, но после удаления всё заработало.

    • @LenaRobertovna
      @LenaRobertovna Год назад

      спасибо, тоже мучилась!

    • @Михаил-з2н9п
      @Михаил-з2н9п Год назад +1

      у меня та же проблема, но лишних Rigidbody нет

    • @Amazing-AI
      @Amazing-AI 7 месяцев назад

      Спасибо тебе большое❤! После удаления сразу заработало!)

  • @Alex_Forest
    @Alex_Forest 4 месяца назад

    Очень хороший подробный урок. Я внес небольшую поправку в свой проект. Когда рос мой персонаж, камера оставалась внизу и персонаж не помещался в кадр. Я использовал в качестве Target для камеры голову персонажа из иерархии и метод Vector3.Lerp для плавного сближения камеры.

    • @yagamesdev
      @yagamesdev  3 месяца назад

      Здравствуйте. Спасибо, что поделились советом по разработке 🙂 Рады, что видео-урок вам понравился.

  • @Sergey-dg4bl
    @Sergey-dg4bl Месяц назад

    Вроде получилось всё, но у меня есть отличие.
    В моменте столкновения с воротами width персонаж расширялся, а с воротами height - не срабатывал.
    Изменил в скрипте else if на просто if и всё заработало как надо.
    Не могу понять почему у вас сработало, а у меня только так.
    Вот ваш вариант скрипта, где у меня срабатывали только изменения по ширине:
    private void OnTriggerEnter(Collider other) // Метод обнаружения столкновения.
    {
    PlayerModifire playerModifire = other.attachedRigidbody.GetComponent(); // Создаём переменную.
    if (playerModifire) // Если столкновение с объектом, на котором есть компонент с названием PlayerModifier не равно 0, то есть проверяем есть ли он.
    {
    if (deformationType == DeformationType.Width) // Если деформация по типу ширины.
    playerModifire.AddWidth(value); // Деформация по ширине произойдёт исходя из значений на воротах.
    }
    else if (deformationType == DeformationType.Height) // в противном случае, если тип деформации по высоте.
    {
    playerModifire.AddHeight(value); // Деформация по высоте произойдёт исходя из значений на воротах.
    }
    }
    а если вот так, то и по высота тоже заработала:
    private void OnTriggerEnter(Collider other) // Метод обнаружения столкновения.
    {
    PlayerModifire playerModifire = other.attachedRigidbody.GetComponent(); // Создаём переменную ,чтобы не писать длинный код, а просто использовать переменную для проверки компонента на объекте.
    if (playerModifire) // Если столкновение с бъектом, на котором есть компонент с названием PlayerModifier не равно 0, то есть проверяем есть ли он.
    {
    if (deformationType == DeformationType.Width) // Если деформацию по типу ширины.
    playerModifire.AddWidth(value); // Деформация по ширине произойдёт исходя из начений на воротах.
    }
    if (deformationType == DeformationType.Height) // в противном случае, если тип деформации по высоте.
    {
    playerModifire.AddHeight(value); // Деформация по высоте произойдёт исходя из значений на воротах.
    }
    }

  • @diversity4676
    @diversity4676 Год назад +1

    Ребяяяятааа!!!
    Уже прочитал все ваши комменты ,и все попробовал
    Но все равно есть проблема
    1. При создание материала создаётся только розовый цвет и потом никак не меняется
    2.когда перекидываю на персонажа и изменяю его,то человечек остаётся прежнем но появляется аура изменения
    Она то есть просто прозрачная с границей
    Все перепробовал ,кроме установки новой версии ,если ее ставлю ,проект не открывается

    • @yagamesdev
      @yagamesdev  Год назад +1

      Здравствуйте. В этом случае рекомендуем установить новую версию Unity. А также создать проект заново и загрузить ассет нового проекта из прошлой папки.

    • @toxicbyte
      @toxicbyte 10 месяцев назад

      Материал создается кликая правой кнопкой по шейдеру, а не по пустому полю.

  • @ДенисСаранин-м1и
    @ДенисСаранин-м1и 27 дней назад

    Ожидание: сквозные отверстия, различные мутации конечностей
    Реальность: scale x2

    • @Diamond_Kill
      @Diamond_Kill 24 дня назад

      Отверстия, мутации и прочее делаются шейдерами

  • @i.c.a.m.y.s.7042
    @i.c.a.m.y.s.7042 Год назад +3

    так и не понял почему у вас работает код, когда висит на родителе. У меня получилось только так other.GetComponentInParent если other.GetComponent , то возвращает null. минут 15 не понимал почему не работает.

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Метод «GetComponent» получает компонент от любого объекта, а «GetComponentInParent» - от родительского. Поэтому конфликт может возникнуть, если компонент «RigidBody» применяется на нескольких объектах. В этом случае необходимо использовать «attachedrigidbody» в коде для определения нужного компонента, а также удалить лишний компонент.

  • @kroshka_vseznayka_tv
    @kroshka_vseznayka_tv 9 месяцев назад +1

    Подскажите....я для этой игры использую вместо человечка - динозавра. У него при ходьбе анимируется шея и голова. Он какбы покачивает и махает головой в процессе ходьбы. Вопрос в следующем: вместо деформации роста, я хотела увеличивать размер шеи от туловища до головы и использовать соответственно 2 его кости (joint). Как итог: не получается это сделать вашим способом через transform. position. Визуальный эфект получается только при использовании local.Scale, но увеличение размера головы- это не совсем то, что мне было надо ))) Хотела бы уточнить , связано ли такое явление с тем, что на нужных мне костях динозавра уже итак есть анимация fbx? Или всё-таки есть способ увеличить высоту шеи? Заранее спасибо 🙏

    • @Defis_22
      @Defis_22 4 месяца назад +2

      Разобралась???)))

    • @kroshka_vseznayka_tv
      @kroshka_vseznayka_tv 4 месяца назад +1

      @@Defis_22 Не нашла нигде ответ 😔, пришлось отказаться от первоначальной идеи, чтоб не тормозить этим обучение))) Игру по этому курсу уже опубликовала как есть и учусь дальше....🙂
      Но буду очень рада, если вы проясните мой вопрос, чтоб не было пробелов в этой теме ...

    • @Defis_22
      @Defis_22 4 месяца назад +1

      @@kroshka_vseznayka_tv Не смогу прояснить... А куда опубликовала?! На Яндекс Игры? А авторские права?

    • @kroshka_vseznayka_tv
      @kroshka_vseznayka_tv 4 месяца назад +1

      @@Defis_22 Да, на Яндексе. Материалов с чужими авторскими правами я не использовала, а о своих пока не думала, т.к. игра первая...и не блещет супер механиками. Так сказать опытный образец ) Из авторских прав пока только с плагиатом разобралась. В общем, самой за всем следить надо и сообщать в Яндекс о нарушениях своих прав.

    • @Defis_22
      @Defis_22 4 месяца назад +1

      @@kroshka_vseznayka_tv Классно, молодец! Доход наверно перестал капать за столько времени?

  • @coyotewld
    @coyotewld 2 года назад +5

    Что-то мне не понятно про масштабирование коллайдера. Мы прибавляем к Scale(множителю!) ту же величину, что и к координате кости. Это ведь не одно и то же. Как это корректно может работать? У меня коллайдер увеличивается значительно быстрее чем персонаж.

    • @coyotewld
      @coyotewld 2 года назад +2

      Вопрос снят, сделал высоту и scale капсулы в 1, чтобы только scale коллайдера отвечал за высоту.

    • @avalonex2971
      @avalonex2971 2 года назад

      @@coyotewld можешь помочь мне .та-же проблема

    • @coyotewld
      @coyotewld 2 года назад +1

      @@avalonex2971 комп не под рукой, иду по приборам. У тебя сейчас должно быть что-то типа: на сцене есть Игрок, в нем Коллайдер, в нем Капсула. В настройках Капсулы установи Scale Y и Height равными 1. В настройках Коллайдера подгони его высот под высоту игрока с помощью Scale Y Коллайдера. Последнюю величину используй в скрипте при добавлении к ней _высота * _мультиплаерВысоты. Надеюсь понятно.

    • @shurga9836
      @shurga9836 Год назад

      Та же проблема возникла. Пересмотрел "Программирование сбора монет", понял что ошибся на стадии создания коллайдераю

    • @naggets-kotiki
      @naggets-kotiki Год назад

      Тоже возникла та же проблема. Пересмотрел "Программирование сбора монет", понял что ошибся на стадии создания коллайдера

  • @ILLiris_96
    @ILLiris_96 3 месяца назад

    Здравствуйте. Я взяла другого персонажа, у которого много материалов (т.е. у него есть цветная одежда). Теперь у меня не получается сделать его толстым в ширину полностью. Делаются шире только штаны, потому что они являются главным материалом у Player.
    _Рендер.material.SetFloat("_PushValue", _Ширина * _ИзменениеШирины)
    Эта строчка выбирает только главный материал у Player для изменения ширины. Как мне прописать в коде, чтобы и остальные материалы, лежащие на Player, тоже меняли значение PushValue???????????

    • @yagamesdev
      @yagamesdev  3 месяца назад

      Здравствуйте. В этом случае нужно заменить все материалы на подобные тому, что были у Player'а из туториала.
      Чтобы для каждого из материалов изменить значение, можно взять их из нашего GameObject и пройтись циклом по ним:
      GetComponent().materials.Length.

  • @felix_ed
    @felix_ed Год назад +1

    Прописываю скрипт на увеличение ширины, запускаю: показатели меняются, а сам персонаж не меняется. Как быть?

  • @VVVRRR-vy5vh
    @VVVRRR-vy5vh 7 месяцев назад

    Здравствуйте, возможно я нечего не понимаю, но почему мы изменяем только толщину объекта персонажа, а размер капсулы (которая отвечает за взаимодействие с триггерами (_colliderTransform) и высоту которой мы меняли вместе с высотой персонажа) мы не меняем?

    • @yagamesdev
      @yagamesdev  7 месяцев назад

      Здравствуйте. Дело в том, что если изменить капсулу или персонажа, к которым привязан коллайдер, то значения размеров триггера также будут автоматически переработаны.

  • @Yes.Im.Mr.Anderson
    @Yes.Im.Mr.Anderson Год назад +2

    17 минута вызвала у меня вопрос: Как так у вас получается тестировать изменение высоты персонажа по нажатию клавиши, если в коде она еще не несет за собой этот функционал, а изменение происходит каждый кадр в update? Магия не иначе!

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. В Update происходит проверка при нажатии клавиши «H». При положительном значении вызывается метод «AddHeight», который увеличивает высоту персонажа.

    • @DevPlayGame
      @DevPlayGame 24 дня назад

      Тот же вопрос ибо я запускаю игру и человек начинает каждый отрезок времени вырастать на 2 метра то есть летит вверх без стопов.

  • @alexgrov7096
    @alexgrov7096 Год назад +2

    Здраствуйте,списал скрипт при нажатии на W не толстеет персонаж,показатель Widht в скрипте меняется а в шейдере"_PushValue" нет.Где я допустил ошибку?

    • @alexgrov7096
      @alexgrov7096 Год назад

      нашел ошибку :\

    • @moony3613
      @moony3613 Год назад

      А что у тебя было?

    • @alexgrov7096
      @alexgrov7096 Год назад

      @@moony3613 допустил ошибку в коде

    • @moony3613
      @moony3613 Год назад

      @@alexgrov7096 понятно, а у тебя не было проблемы с тем, что персонаж не деформируется при прохождении через ворота?

    • @alexgrov7096
      @alexgrov7096 Год назад

      @@moony3613 нет,больше никаких проблем я не встречал

  • @shok5731
    @shok5731 8 месяцев назад

    Здравствуйте, а если я сделал изменение высоты коллайдера персонажа не через обычное присваивание, а через оператор присваивания с сложением, то производительность от этого станет чуть хуже или разницы нет?

    • @yagamesdev
      @yagamesdev  8 месяцев назад

      Здравствуйте. Создание новых векторов - это весьма трудоёмкая задача. Поэтому реализация, которую вы описываете, действительно может улучшить производительность. Дополнительно рекомендуем обратить внимание на тред на форуме Unity, который посвящён оптимизации векторов. Он доступен по ссылке: clck.ru/396iYk.
      Отметим, что данные из него необходимо проверять с помощью профайлера, чтобы убедиться в их актуальности.

  • @axbox
    @axbox Год назад +2

    Кто подскажет - поменял проект с 3D на 3D URP и тени стали нечеткие, как будто пиксельные...как исправить?)

    • @yagamesdev
      @yagamesdev  Год назад +1

      Здравствуйте. Чтобы настроить качество графики, необходимо нажать «Edit» - «Project Settings» - «Quality» и выбрать пункт «Render Pipeline Asset». Тогда откроются настройки визуализации. Среди них можно установить «Shadows» и «Cascade Count», например, на 2 или 3 - это сделает тени более чёткими.

  • @FixingDrake
    @FixingDrake 5 месяцев назад

    Здравствуйте, не получается привязать материал к шейдеру и шейдер вообще не открывается.

    • @yagamesdev
      @yagamesdev  4 месяца назад

      Здравствуйте. Рекомендуем убедиться, что у вас установлен пакет «Shader Graph», с помощью которого шейдер работает в видео.

  • @ВикторИванов-т6ч3ъ
    @ВикторИванов-т6ч3ъ 9 месяцев назад

    Не знаю, что сделал не так, но когда в функции Update повторил вычисления offsetY и задал _topSpine.position, у меня при каждом Update увеличивается до бесконечности. На видосе только после нажатия кнопки. Может я что то не понимаю? Вычисления так же до if как и на видосе

    • @yagamesdev
      @yagamesdev  9 месяцев назад

      Здравствуйте. Такое может происходить, если в строчке с «offsetY» вы прописали «float offsetY += …» вместо «float offsetY = …».
      Если дело не в этом, можно точечно определить причину с помощью «Debug.Log(“Увеличиваем высоту“)» в функции «“AddHeight()». Это поможет понять, вызывается ли «AddHeight» на постоянной основе или причина в другой строчке кода.
      Также отметим, что если обнаружить и устранить причину не получится - в описании видеоурока можно найти ссылку на готовый проект и сверить код.

  • @engenik7430
    @engenik7430 Год назад

    Здравствуйте, у меня возник вопрос, почему высоту мы высчитываем в Update? Не правильней ли было сделать, чтобы высота считалась как и ширина в методе, который увеличивает значение _height? Но самая большая проблема в том, что почему-то при переносе строчек из Update в AddHeight у меня перестает адекватно меняться высота(он начинает делать смещение по игрику не в глобальных координатах, а в локальных). Из-за этого смещение получается вверх и в сторону камеры. Долго пытался это пофиксить или разобраться почему именно так это работает, но так и не нашел ответа

    • @yagamesdev
      @yagamesdev  Год назад +1

      Здравствуйте. Обновление высоты можно действительно перенести в отдельный метод. Расскажем подробнее, как это сделать:
      1. Для начала нужно прописать Update:
      void Update()
      {
      if (Input.GetKeyDown(KeyCode.W))
      {
      AddWidth(20);
      }
      if (Input.GetKeyDown(KeyCode.H))
      {
      AddHeight(20);
      }
      }
      2. Далее добавьте метод для изменения высоты:
      void UpdateHeight()
      {
      float offsetY = _height * _heightMultiplier + 0.17f;
      _topSpine.position = _bottomSpine.position + new Vector3(0, offsetY, 0);
      _colliderTransform.localScale = new Vector3(1, 1.84f + _height * _heightMultiplier, 1);
      }
      3. Изменять значение можно с помощью методов SetHeight и AddHeight:
      public void AddHeight(int value)
      {
      _height += value;
      UpdateHeight();
      if (value > 0)
      {
      _increaseSound.Play();
      }
      }

      public void SetHeight(int value)
      {
      _height = value;
      UpdateHeight();
      }

  • @WOLFRAM_EDITS
    @WOLFRAM_EDITS Год назад +3

    Все равно не деформируется персонаж когда проходит через ворота

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Деформация может не происходить по нескольким причинам:
      1. Если Rigidbody находится ещё на одном объекте Player, который является дочерним. Тогда вызов через attachedRigidBody возвращает Rigidbody, который используется для коллайдера. В этом случае необходимо проверить, к какому объекту привязан Rigidbody.
      2. Триггер срабатывает некорректно. Нужно проверить имя объекта, к которому обращается attachedRigidBody, с помощью кода:
      Debug.Log(other.attachedRigidbody.gameObject.name);
      3. Имеются неточности в скрипте изменения высоты. Рекомендуем просмотреть видео и повторить все шаги.

  • @ОскарСамойлов
    @ОскарСамойлов Год назад +1

    Здравствуйте. А если я взял другого персонажа, потратил несколько часов на раскраску его развёрток, вручную(.
    Теперь, чтобы работало со всеми объектами, нужно массив рендеров составлять или каждый отдельно перемножать?
    Я сделал 6 шейдер графов и на каждый повесил материал.

    • @ЛевКитаев-й8ц
      @ЛевКитаев-й8ц Год назад

      Тоже самое(((

    • @chvakson5630
      @chvakson5630 Год назад

      +
      Пришлось возвращаться к модельке как в уроке.

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Если правильно вас поняли, можно создать новый материал - сделать копию старого. Затем для нового персонажа заменить старый на новый.

  • @livanmaster279
    @livanmaster279 Год назад

    Я добавил другую модель из scetchfab, загрузил ей скелкт в миксамо и повесил новые анимации, все работает, но перестал двигаться трансформ точек спайн, даже когда в режиме сцены все меняю - возвращается обратно. Из за чего это?

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Зайдите в объект с игроком и посмотрите, меняется ли его позиция? Если значения остаются прежними, то откройте скрипт «PlayerMove» и проверьте код на соответствие следующему:
      void Update()
      {
      if (Input.GetMouseButtonDown(0))
      {
      _oldMousePositionX = Input.mousePosition.x;
      _animator.SetBool("Run", true);
      }
      if (Input.GetMouseButton(0))
      {
      Vector3 newPosition = transform.position + transform.forward * Time.deltaTime * _speed;
      newPosition.x = Mathf.Clamp(newPosition.x, -2.5f, 2.5f);
      transform.position = newPosition;
      float deltaX = Input.mousePosition.x - _oldMousePositionX;
      _oldMousePositionX = Input.mousePosition.x;
      _eulerY += deltaX;
      _eulerY = Mathf.Clamp(_eulerY, -70f, 70f);
      transform.eulerAngles = new Vector3(0, _eulerY, 0);
      }
      if (Input.GetMouseButtonUp(0))
      {
      _animator.SetBool("Run", false);
      }
      }

  • @ЛУКИТ
    @ЛУКИТ 11 месяцев назад +1

    23:30 начал что то жестить) Как начинающему вообще непонятно

  • @glainmods5623
    @glainmods5623 Год назад

    Что делать,если нет пункта push value

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Чтобы пункт «Push Value» появился в Unity, нужно установить бесплатный пакет «Shader Graph» в «Package Manager».

  • @cherniymedved
    @cherniymedved 2 года назад +1

    Почему не работают шейдеры? они отображаются как неизвестный файл, а когда создаешь материал на основе шейдера создается дефолтный материал без "свойства шейдеров"

    • @radmirbaktybaev7745
      @radmirbaktybaev7745 2 года назад +1

      Скорее всего проект создал в 3D, а не 3D (URP). Из за этого у тебя не установился шейдер эдитор и соответствующий рендер.
      Надо будет тебе проект переконвертировать в 3d (urp).
      В чате выкладывали инфу, как все это сделать.

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Проект может не распознавать шейдеры, если версия Unity не совпадает с версией автора программы. Рекомендуем установить версию Unity 2022.1.12f1 и заново загрузить шейдеры - это должно помочь.

    • @МаксЛавров-э3в
      @МаксЛавров-э3в 5 месяцев назад

      ​@@yagamesdevнельзя как-то иначе это сделать ведь говорилось что можно использованить версии unity начиная с 2019

  • @джумайсынба-и6х
    @джумайсынба-и6х Год назад

    когда я создаю или переношу проект на 3д URP в консоли выскакивают ошибки CS0103 и CS0246. Как фиксить?

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Рекомендуем задать вопрос в нашем чате по Unity: t.me/yagamesunity Возможно, что кто-то из разработчиков уже сталкивался с подобным и подскажет решение.

  • @SmotryshyiSverhu
    @SmotryshyiSverhu Год назад +1

    Буду рад, если кто-то подскажет. У меня другой персонаж, естественно, если я буду накладывать материал созданный на основе шейдера, то мой персонаж станет жёлтый. Как я могу сделать так, чтобы в инспектор этого материала также были бы Base Map, Normal Map и т.п., для того чтобы я мог положить текстуру на персонажа. Пытался шаманить в нодах шейдера, так ничего и не смог изменить. Если кто-то это решил, подскажите пожалуйста.

    • @yagamesdev
      @yagamesdev  Год назад +1

      Здравствуйте. Для этого нужно внести правки в шейдер Push. Расскажем подробнее.
      Для изменения Base Map и Normal Map создайте 2 текстуры в данном шейдере и нод Sample Texture 2D. После поле Texture(T2) объедините с текстурой Base Map, а поле RGBA(4) с выходным нодом Fragment - Base Color(3). Тот же алгоритм действий нужно повторить с Normal Map. В этом случае вместо Base Color(3) нужно использовать Normal (Tangent Space)(3).

    • @SmotryshyiSverhu
      @SmotryshyiSverhu 11 месяцев назад

      @@yagamesdev огромное спасибо, что отвечаете и поддерживаете до сих пор!

    • @soonlightt
      @soonlightt 8 дней назад

      @@yagamesdev Огромное спасибо, не сразу понял что да как, но как разобрался - стало все ясно! Помогли очень

  • @РоманКачок
    @РоманКачок Год назад

    Что делать если я не могу устоновить Universal RP в готовый проект.

    • @yagamesdev
      @yagamesdev  Год назад +1

      Роман, здравствуйте. Рекомендуем создать новый проект на Universal RP и загрузить в него все материалы из старого. Это должно помочь.

  • @ser3515
    @ser3515 Год назад

    А что делать если игровой объект стал просто розовым
    можно как то сделать чтобы вернуть цвет отбратно

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Чтобы исправить отображение цвета, рекомендуем установить новую версию Unity. А также создать проект заново и загрузить ассет нового проекта из прошлой папки.

  • @МихаилТарасов-е1я
    @МихаилТарасов-е1я 2 года назад +6

    Мне кажется, что для enum'ов лучше switch использовать.

    • @kruservinsar1075
      @kruservinsar1075 10 месяцев назад

      удобнее использовать перечисления, т.к там хотя-бы легко ориентироваться в коде чем в том же самом switch

  • @nealeks
    @nealeks Год назад +1

    У меня не деформируется персонаж после входа в ворота

    • @jackiebaileys3110
      @jackiebaileys3110 Год назад +3

      У меня тоже :/

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Рекомендуем на ворота добавить коллайдер, далее через него настроить изменения характеристик. Также повторите все шаги из видео: clck.ru/34aPcn

  • @maximogurtsov7855
    @maximogurtsov7855 2 года назад

    При импортировании шейдеров сразу же вылазит ошибка:
    ArgumentException: JSON parse error: The document root must not follow by other values.
    Подскажите в чем проблема?

    • @Вадим-н1н7в
      @Вадим-н1н7в Год назад

      Привет, решил как-то эту проблему?

    • @yagamesdev
      @yagamesdev  Год назад

      Максим, здравствуйте. Такое бывает, когда в файле шейдера или его метаданных присутствуют некорректные материалы, которые не соответствуют JSON-синтаксису. Чтобы убрать это уведомление, рекомендуем сделать следующее:
      1. Проверьте, имеет ли файл шейдера расширение .shader и соответствует ли он требованиям Unity для такого формата.
      2. Уберите сторонние файлы или метаданные из папки с шейдерами.
      3. Перепишите файл шейдера с помощью текстового редактора. Это нужно, чтобы убедиться в том, что все символы и данные соответствуют JSON-синтаксису и отсутствуют ненужные пробелы или дополнительные значения.
      4. Если ошибка продолжает воспроизводиться - может быть повреждён файл шейдера. Перезапустите Unity или переустановите шейдеры и используйте обновленные файлы.

  • @unity3dsimplesolutions309
    @unity3dsimplesolutions309 2 года назад +3

    Игрок не деформируется проходя через ворота

    • @WOLFRAM_EDITS
      @WOLFRAM_EDITS Год назад +3

      то же самое

    • @dead7278
      @dead7278 Год назад

      Не забудьте поставить на объект Player материал Push, и у вас должно заработать.

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Необходимо добавить коллайдер на ворота и через него настроить изменения характеристик. Дополнительно рекомендуем повторить все шаги из видео: clck.ru/34aPcn

  • @tippitoppi1743
    @tippitoppi1743 2 года назад +1

    Почему не TryGetComponent?

    • @Geralld
      @Geralld 2 года назад

      тоже об этом подумал:
      private void OnTriggerEnter(Collider other)
      {
      if (other.attachedRigidbody.TryGetComponent(out PlayerModifier playerModifier))
      {
      if (_deformationType == DeformationType.Height)
      {
      playerModifier.AddHeight(_value);
      }
      else if (_deformationType == DeformationType.Width)
      {
      playerModifier.AddWidth(_value);
      }
      }
      }

    • @EccentricGames
      @EccentricGames 2 года назад

      @@Geralld ну можно и так) вообще все по разному можно)
      Ну например мой подход позволяет использовать переменную playerModifier за пределами if-а.
      Иногда это нужно.
      Но вообще TryGetComponent именно тут больше подходит. Хотя без разницы почти.

    • @yagamesdev
      @yagamesdev  2 года назад

      Здравствуйте. Да, можно использовать «TryGetComponent».

  • @ibi-san
    @ibi-san 2 года назад +2

    А где ссылка на скачивание шейдеров?

    • @poshlhumorrr
      @poshlhumorrr 2 года назад

      В следующем уроке.

    • @ibi-san
      @ibi-san 2 года назад +1

      @@poshlhumorrr в следующем уроке сборка проекта после всех изменений в этом уроке. А хотелось бы именно шейдеры, как было в приложениях к предыдущим урокам(

    • @Geralld
      @Geralld 2 года назад

      Подстава. Пришлось перейти на следующий урок и скачать весь проект. А потом вытянуть папку с шейдерами ...

    • @ibi-san
      @ibi-san 2 года назад

      @@Geralld заливай на обменник 😀

    • @poshlhumorrr
      @poshlhumorrr 2 года назад

      @@ibi-san Да с этим согласен, в первых уроках было удобнее, но лично для меня не составило труда скачать архив и взять от туда только то что нужно.

  • @egrsolo237
    @egrsolo237 Год назад

    почему-то модель игрока рассыпается на полигоны когда у материала увеличивается параметр PushValue(((( может кто знает причину уже несколько часов мучаюсь

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Такое бывает, когда установка Unity прошла некорректно. Рекомендуем скачать версию 2021.1.11, которая используется в видеокурсе. Найти её можно по ссылке: clck.ru/34Xjfj

  • @MDE-cq9fj
    @MDE-cq9fj Год назад +1

    Я потерял папку с скриптами, все скрипты исчезли

  • @odmv
    @odmv 2 года назад +2

    У меня у одного шейдеры выглядят не так же? Собственно так же как и не работает? Просто розовый материал.

    • @fayevalentine6070
      @fayevalentine6070 2 года назад

      Такая же проблема

    • @odmv
      @odmv 2 года назад

      @@fayevalentine6070 Проблема в том, что создал просто 3D проект, без URP, советую создать новый, с URP и в него перенести ассеты, ну или по новой собрать

    • @ЮлияАнтонова-х4д
      @ЮлияАнтонова-х4д 2 года назад

      @@odmv А без URP не выйдет? У меня UNITY со всем не хочет создавать проект такого типа, все время ошибку пишет(

    • @odmv
      @odmv 2 года назад

      @@ЮлияАнтонова-х4д если хотите использовать шейдер, чтобы персонаж толстел, то нет, не выйдет, видимо.
      Может быть как то можно в пустой проект импортировать юрп, но я пересоздал проект просто

    • @yagamesdev
      @yagamesdev  2 года назад +1

      Александр, здравствуйте. Проект должен быть создан из шаблона URP: ruclips.net/video/nB2uymAe68I/видео.html
      Также рекомендуем использовать версию Unity не старше 2021 года.

  • @niktih6289
    @niktih6289 2 года назад

    У меня возникала такая ошибка при изменинии растояниями между спиной1 и спиной2
    "error CS0104: 'Vector3' is an ambiguous reference between 'UnityEngine.Vector3' and 'System.Numerics.Vector3' "
    Я заменил Vector3(0,2,0) на UnityEngine.Vector3(0,2,0) и все заработало.
    ПОчему так?
    Может кому-то поможет мой коментарий.

    • @Geralld
      @Geralld 2 года назад +1

      Класс Vector3 встречается в нескольких пространствах имен (namespace) и компилятор не знает какой из них использовать. Поэтому тут либо отрубаешь ненужный неймспейс (в самом верху удалить/закомментировать строчку using System.Numerics;), либо если он нужен сделать как ты: указать более конкретное расположение класса через указание его нейспейса.

  • @realfaustin3515
    @realfaustin3515 2 года назад

    Отсутствует ссылка на скачивание шейдеров

    • @yagamesdev
      @yagamesdev  2 года назад

      Здравствуйте. Добавили в описание под видео. Посмотрите, пожалуйста.

  • @igorcoolman
    @igorcoolman Год назад

    The .meta file Assets/Shaders/Push 2.shadergraph.meta does not have a valid GUID and its corresponding Asset file will be ignored. If this file is not malformed, please add a GUID, or delete the .meta file and it will be recreated correctly

  • @ArsFanis
    @ArsFanis Год назад

    У меня при нажатии на Play, в видео это 16.42 минута, в данном этапе рост персонажа резко улетает ввысь на бесконечность... Делаю как у него... Подскажите пожалуйста, у кого такая же ситуация была?

    • @ArsFanis
      @ArsFanis Год назад

      А нет, всё норм. Местами оказывается перепутал Top и Bottom, когда в инспектор перекидывал ссылки

  • @karenkostanyan279
    @karenkostanyan279 2 года назад

    то что вы помните что высота 1.84м это очень хорошо, а как нам это посмотреть ?

    • @АндрейКиселев-я6ж
      @АндрейКиселев-я6ж 2 года назад

      В 13ом уроке когда настраивали высоту коллайдера по scale Y в инспекторе выставляли эту величину. От туда и значение.