Управление персонажем в Unity 2021

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025
  • Привет! В этом видео я покажу как сделать управление персонажем для 2.5D игры. Мы добавим персонажа с помощью mixamo и найдем для него анимации бега и idle. Надеюсь видео будет вам полезно!
    unity управление персонажем

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

  • @Nextovoy
    @Nextovoy 2 года назад +28

    Парень, да у тебя талант объяснять и с дикцией всё чётко! Respect!

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

    Спасибо!!!!, Спасибо. Никогда, ничего не получалось и тут я нашёл этот тутор, я не могу передать словами эту радость

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

    Спасибо тебе огромное! Я новичок и не особо разбираюсь в юнити, а большинство уроков по созданию чего-либо просто говорят делать что-то, не поясняя зачем, но ты реально объяснил мне всё, спасибо!

  • @dantedevil444
    @dantedevil444 3 года назад +19

    Дружище, ты крут! Знай это! Медленно, подробно, доступно и по делу! Thank you!

  • @Tulopex
    @Tulopex 10 месяцев назад +1

    Мужик ты лучший просто! Благодаря тебе я начал свой большой проект, который я хочу выпустить на платформу по типу стим или вк плей, огромное тебе спасибо! Твоё имя увековечится в игре!

  • @lizgrint7296
    @lizgrint7296 3 года назад +28

    господи...не описать какое ОГРОМНОЕ СПАСИБО!!!! 🤍🤍🤍 все так понятно и доходчиво, для абсолютного новичка просто идеально! лайк, подписка, плюсы в карму))

  • @code.Walton
    @code.Walton 2 года назад +2

    Спасибо, чувак! Я наклацал какую-то херню, что у меня Input Manager перестал работать, пытался решить эту проблему всеми способами(я тогда не знал в чём проблема) и смотрел кучу видео. А твоё помогло найти поломку. Спасибо, что объяснил как работает управление и Input Manager!

  • @soulwind7577
    @soulwind7577 3 года назад +6

    Спасибо, очень хорошо объяснил, особенно про Input Manager

  • @Валераа1
    @Валераа1 3 года назад +3

    Я не знаю кто ты, но ты лучший)
    ( inside и little nightmares 2 мои любимые игры)

  • @l1gon848
    @l1gon848 2 года назад +28

    Рассказываю у кого проблема в том, что человек бежит и всё время возвращается назад. Когда качаете анимацию нужно поставить галочку In Place и всё, проблема решена)

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

      Спасибо тебе большое

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

      У меня вообще анимации не работают

    • @Mr.Super0chek
      @Mr.Super0chek 8 месяцев назад

      У меня такая же проблема, но такой галочки нет

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

      @@Mr.Super0chek есть на сайте посмотри справа снизу

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

      @@Mr.Super0chek эта галочка на сайте миксамо, прямо перед скачиванием на панельке справа анимации, где параметры

  • @АртемНиколаевич-о7п

    Превосходная серия роликов.
    Спасибо за труд.

  • @KAMOLSHODMONBEKOV
    @KAMOLSHODMONBEKOV 3 года назад +1

    Бро ты просто топ. Можеш сделать видео про добавлени машины и их управления

  • @ЧебоненкоГлеб
    @ЧебоненкоГлеб 2 года назад +32

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class PlayerController : MonoBehaviour
    {
    private Animator animator;
    private Rigidbody rigidbody;
    public float rotationspeed = 10f;
    public float speed = 2f;
    void Start()
    {
    animator = GetComponent();
    rigidbody = GetComponent();
    }
    void Update()
    {
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");
    Vector3 directionVector = new Vector3(v, 0, h);
    transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 10);
    animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1).magnitude);
    rigidbody.velocity = Vector3.ClampMagnitude(directionVector, 1) * speed;


    }
    }

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

      лудший

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

      спс помог очень

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

      у меня почему то Ridigbody не работает, всё перепробовал оно не пашет

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

      Бог мне помог

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

      Герои не Носят Плащи

  • @МинМин-п5ш
    @МинМин-п5ш 3 года назад +7

    Вау я думал ты позже начнёшь делать этот курс. Спасибо большое♥️

    • @Maximple
      @Maximple  3 года назад +7

      Мне такое видео сделать не очень сложно, а полезно многим. Спасибо за идею тебе❤

    • @МинМин-п5ш
      @МинМин-п5ш 3 года назад +2

      @@Maximple это тебе спасибо за уроки😊

    • @МинМин-п5ш
      @МинМин-п5ш 3 года назад +1

      @@Maximple ой я от радости забыл лайк поставить,сразу за unity сел. Ничего щас исправлю👌

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

      @@МинМин-п5ш 😄

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

      @@EvilZommbie если что, для создания игр на Unity обязательно знать C#)

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

    Полезное видео спасибо, жду анимации прижка!

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

    Полность согласен. Очень понятно и круто рассказано👍👍👍

  • @ЕкатеринаМартынова-у8ь
    @ЕкатеринаМартынова-у8ь 10 месяцев назад +3

    как сделать так что бы когда от первого лица играешь то камера вращалась вместе с персонажем с помощью мыши

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

    немного придерусь, переменные лучше обьявлять снчала, чем в самом методе, rb Velocity можно вынести в метод FixedUpdate, переменные лучше называть конкретней, для именований использовать PascalKeys и camalKeys (для локальных переменных)

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

      Придрался, и то неправильно. Фулл передвижение надо в FixedUpdate

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

    Большое спасибо. Красавчик!!!

  • @Алексей-й7ъ9ш
    @Алексей-й7ъ9ш 9 месяцев назад +1

    А как можно сделать 3д сражение, битву, пускай не очень яркую и красочную, допустим для истории

  • @buginin
    @buginin 3 года назад +1

    На моменте скрипта(где ставили скорость и после того пробывали как он ходит, первый раз) жётым снизом parameter speed dont not exit

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

    круто, очень круто, но в проекте вышла ошибка: The type or namespace name 'RigidBody' could not be found (are you missing a using directive or an assembly reference?). Вот код:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class control : MonoBehaviour
    {
    private Animator anm; //animator
    private RigidBody rigidBody;
    public float speed = 2f;
    // Start is called before the first frame update
    void Start()
    {
    animator -= GetComponent();
    rigidBody = GetComponent();
    }
    // Update is called once per frame
    void Update()
    {
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");
    Vector3 dirVector = new Vector3(v, 0, h);
    animator.SetFloat("speed", Vector3.ClampMagnitude(dirVector, 1).magnitude);
    rigidBody.velocity = Vector3.ClampMagnitude(dirVector, 1) * speed;
    }
    }

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

      у меня такая же, нашёл решение проблемы?

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

      @@eyeshxrt да, нужно писать не RigidBody, а Rigidbody. Вот так все легко

  • @ShadowVoice_NoName_
    @ShadowVoice_NoName_ 3 года назад +3

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

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

    Бро, порекомендуй какие-нибудь курсы по шарпу? Нашел itproger, bro code и Сакутина. Какой лучше выбрать? Или книги какие-то купить?

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

      На вб или в каком нибудь книжном магазине покупаешь книгу c# для unity, хорошая книга от автора - Ларкович

  • @РасимАхмедшин
    @РасимАхмедшин 3 года назад +4

    Проблема в то что персонаж начинает крутиться на месте после того как немного побегает. Как исправить? Скрипт точь в точь написал

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

    Очень крутое видео! Благодарю!

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

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

  • @stalker_flyaga
    @stalker_flyaga 22 дня назад

    ЛУЧШИЙ ГАЙД!!!!!!!!!!!!!!!

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

    Что делать если когда я ставлю в source ставлю своего персонажа у меня выскакивает ошибка и я не могу поменять в animation имя анимации

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

    Очень четко супер, но я дошел только до скрипта и при просмотре игры игрок делает анимированное движение на месте и потом куда-то улетает в верх🤣 и вот что показывает консоль типа предупреждение!
    Доступен пакет редактора Visual Studio версии 2.0.11, мы настоятельно рекомендуем вам выполнить обновление из диспетчера пакетов Unity для лучшей интеграции с Visual Studio UnityEngine.Debug: LogWarning (object) Microsoft.Unity.VisualStudio.Editor.VisualStudioIntegration: HandleListRequestCompletion ()
    Разве это влияет на такое поведение? КТО ПОДСКАЖЕТ ГДЕ вообще обновить ДО ЭТОЙ ВЕРСИИ!?

    • @Maximple
      @Maximple  3 года назад

      Привет! Я тебе сейчас скину комент человека у которого была такая же проблема: Персонаж после запуска взлетает в воздух с первой анимацией. Пока не знаю с чем это связанно, кто знает помогите.
      Maximple
      Тебе надо убрать галочку с Apply rootmotion и все должно стать ок)
      Forever Metal
      @Maximple Убрал, персонаж исчезает. Мельком увидел что он вверх перемещается очень быстро.
      Maximple
      @Forever Metal Тогда я думаю ты в скрипте умножаешь координату Y на speed каждый кадр. Попробуй убрать умножение на speed и если сработает, то в этом проблема.
      Ему вроде помогло)

    • @oldborodach
      @oldborodach 3 года назад

      @@Maximple посмотрю оке спс, четкие видосы не останавливайся готов спонсировать канал! И еще а где можно с тобой поговорить или показать скрины если что?!

    • @Maximple
      @Maximple  3 года назад +1

      ​@@oldborodach Спасибо! Ты можешь со мной связаться через Discord и поддержать канал можно через Donationalerts. Ссылки на Discord и Donationalert у меня в шапке канала если что.

    • @oldborodach
      @oldborodach 3 года назад

      Все же доделал я его, но в чем причина этой ошибки кто подскажет?
      Assets \ Scripts \ NinjaController.cs (8,23): предупреждение CS0108: «NinjaController.rigidbody» скрывает унаследованный член «Component.rigidbody». Используйте новое ключевое слово, если предполагалось скрытие.
      Как исправить!

    • @Maximple
      @Maximple  3 года назад +1

      @@oldborodach Мне кажется это всего лишь предупреждение, что значит его исправлять нет необходимости. Вроде это значит что тебе нужно поменять название переменно rigidbody на что то еще ( rb, playerRigidbody или на что то похожее)

  • @noykenn6985
    @noykenn6985 3 года назад +3

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

    • @masterpirates1497
      @masterpirates1497 3 года назад +3

      Тот же результат,бро. Все в точности по настройкам и написанию скрипта автора, но ни фига не работает.

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

    17:10 Можно просто написать .normalized или что-то такое после вектора

  • @OMG3Dmax
    @OMG3Dmax 3 года назад

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

  • @Max.gamedev
    @Max.gamedev 2 года назад

    привет дружище, хотел бы поинтресоваться, есть возможность ли 2.5 под андроид?Я имею ввиду кнопки добавить ? Просто интересно.

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

    спасибо за видео, все прекрасно работает!

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

    Крутяк

  • @ДавидЧернецкий
    @ДавидЧернецкий 2 года назад +1

    Подскажите мне в чем может быть проблема Я делал всё как в видио но мой персонаж не двигается он ходит во все направления как нужно но нет анимации бега он просто скользит

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

      у меня он тоже скользит но и ходет тоже

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

    Все круто, за исключением того что если мы добавляем механику прыжка, то персонаж очень медленно опускается к земле. Что не очень хорошо для любой игры.. от массы RB это не зависит.. Можно играться с гравитацией, но это тоже не очень хорошо, потом будут вылазить костыли.. Есть какое то решение проблемы падения персонажа при прыжке? Подскажи пожалуйста

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

    Блин а у меня ошибку выдает когда применяешь к анимациям Humanoid и Apply нажимаешь. Модели из Maya, может не так сохранил? Хотя анимации в окошке справа проигрываются.

  • @некроз
    @некроз 2 года назад +1

    Привет, в чем проблема? Нажимаю на "W" персонаж идёт, ну потом обратно возвращается(когда анимка проиграла)

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

    не могу создать переменную speed, плюсик не clickable, анимация не смешивается, персонаж просто стоит
    как я понял, для новых версий юнити гайд уже не актуален, одна неточность в версии ломает все, а искать эту неточность новичку нереально долго

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

      скачал старую версию, теперь уже плюсик clickable, анимация работает, все хорошо
      я так и не понял в чем разница))

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

    Надеюсь автор не забросил канал, если это так, не могли бы подсказать как сделать скрипт хождения для Third Person Controller'а, заранее спасибо)

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

      Лови))
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class PlayerController : MonoBehaviour
      {
      private Animator animator;
      private Rigidbody rigidbody;
      public float speed = 2f;
      public float rotationspeed = 10f;
      void Start()
      {
      animator = GetComponent();
      rigidbody = GetComponent();
      }
      void Update()
      {
      rigidbody.angularVelocity = Vector3.zero;
      float horizontal = Input.GetAxisRaw("Horizontal");
      float vertical = Input.GetAxisRaw("Vertical");
      Vector3 directionVector = new Vector3(horizontal, 0f, vertical).normalized;
      transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 10);
      animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1).magnitude);
      rigidbody.velocity = Vector3.ClampMagnitude(directionVector, 1) * speed;
      }

      }

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

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

  • @gamerebus-8429
    @gamerebus-8429 3 года назад +1

    спасибо! но можешь показать на капсуле?

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

    Здраствуйте! Меня интересует такой вопрос как можно сделать настройки управления персонажем чтобы можно было настраивать клавиши на клавиатуре или на мишке, чтобы можно было в настройках перефирию менять на (джойстик,руль,клавиатура,мышка,руль) по своему и. Т. Д . Подскажите пожайлуста

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

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class Move : MonoBehaviour {
      public int speed = 5;
      public GameObject Player;//здесь ми указываем персонажа как игровой Object;

      void Start()
      {
      Player = (GameObject)this.gameObject; //тут присваиваем персонажа к игровому Object или как-то так.
      }
      // Ах да вместо player надо ставить имя твоего перса которое записано в Unity;
      void Update()
      {
      if (Input.GetKey(KeyCode.W))
      {
      Player.transform.position += Player.transform.forward * speed * Time.deltaTime;
      }
      if (Input.GetKey(KeyCode.S))
      {
      Player.transform.position -= Player.transform.forward * speed * Time.deltaTime;
      }
      if (Input.GetKey(KeyCode.D))
      {
      Player.transform.position += Player.transform.right * speed * Time.deltaTime;
      }
      if (Input.GetKey(KeyCode.A))
      {
      Player.transform.position -= Player.transform.right * speed * Time.deltaTime;//персонаж плавно двигается на W,S,D,A;
      } //всё легко и просто, как борщ(всё как Вы и просили)
      }
      }

  • @casinoanime8520
    @casinoanime8520 3 года назад +14

    Единственное нормальное видео на тему. У всех обрубки, часто ваще неправильные и через заднюю калитку (например без rigidbody)... Чтоб вы понимали, перед этим я пробовал 4 разных урока на тему управления персонажем 3D в unity = ни один не работал как надо, с правильным смешением анимаций ит.д. === Я ОТ АВТОРА В ВОСТОРГЕ!

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

      Спасибо большое за комментарий! Очень приятно слышать❤

    • @casinoanime8520
      @casinoanime8520 3 года назад +1

      @@Maximple совет на будущее от зрителей = не нужно показывать в уроке переписывание 100 раз кода = снимай урок по готовому коду с объяснением куда что и зачем вставил, что натянул и как оно работает пошагово

    • @casinoanime8520
      @casinoanime8520 3 года назад +1

      я кста уже норм продвинулся ))) в голове появился каркас как оно все работает в игре
      сейчас перехожу к врагам, атакам, смертям и патрулированию платформ и т.п. (в рамках одной сцены) ==== будет что-то непонятно, напишу вопросы
      частицы, респавны, смена сцен, катсцены, главное меню, донаты, Admob, работа с Google play и т.п. === пока еще темный лес )))) хочу сделать тело игры и поднять все эстетики механик и оформления
      ... делать все в одиночку долго = программирую скрипты пока левой ногой, рисую в 3D через жопу и т.д.

    • @Maximple
      @Maximple  3 года назад +1

      @@casinoanime8520 Спасибо за совет) Я с тобой согласен это бы и вправду сократило видео.

    • @casinoanime8520
      @casinoanime8520 3 года назад

      @@Maximple дело не в том чтобы видео короче ))) зрители сидят с ручками, ставят урок на паузу и переписывают в тетрадки скрипты.... а потом правят написанное....

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

    transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 10);
    if(directionVector.magnitude > Mathf.Abs(0.1f))
    Все ровно разворачивается при полной остановке

    • @Maximple
      @Maximple  3 года назад +1

      Привет! Тебе надо написать:
      if(directionVector.magnitude > Mathf.Abs(0.1f)){
      transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 10);
      }
      Это строка значит что если наша длина вектора движения (которая зависит от того нажимаем ли мы на клавиши движения) больше чем 0.1 - что просто маленькая величина вектора, то мы хотим поворачивать персонажа в направлении этого вектора (в направление движения). По логике должно работать) Скопируй и вставь как я написал выше👍 Напиши если получится/ не получится

    • @funtazygg
      @funtazygg 3 года назад

      Нет не помогло

    • @Maximple
      @Maximple  3 года назад +1

      @@funtazygg Тогда скопируй мне весь скрипт и я постараюсь сказать что не так (если хочешь)

    • @funtazygg
      @funtazygg 3 года назад +1

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class PlayerController : MonoBehaviour
      {
      private Animator animator;
      private Rigidbody rigidbody;
      public float rotationspeed = 10f;
      public float speed = 2f;
      // Start is called before the first frame update
      void Start()
      {
      animator = GetComponent();
      rigidbody = GetComponent();
      }
      // Update is called once per frame
      void Update()
      {
      float h = Input.GetAxis("Horizontal");
      float v = Input.GetAxis("Vertical");
      Vector3 directionVector = new Vector3(-v, 0, h);
      transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 15);
      if (directionVector.magnitude > Mathf.Abs(0.1f))
      {
      transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 15);
      }
      animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1).magnitude);
      rigidbody.velocity = Vector3.ClampMagnitude(directionVector,1) * speed;
      }
      }

    • @Maximple
      @Maximple  3 года назад

      @@funtazygg Я нашел ошибку) Над if (directionVector.magnitude > Mathf.Abs(0.1f)) удали transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 15);
      У тебя просто эта строка написана до и в if, а должна была быть только в if👍

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

    подскажите пожалуйста, я прописываю в скрипе speed 5;, и ничего не меняется, он все такой же медленный

  • @kamazz2006
    @kamazz2006 6 месяцев назад

    У меня нету вкладки Project Settings, да и в целом никаких вкладок, кроме Inspector, когда выделяю скрипт Player_Controller

  • @alisherzhambirbay6833
    @alisherzhambirbay6833 3 года назад +3

    Ура вышел наконец

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

    Хотел бы задать вопрос:
    После установки управления, как показано в видео, можно ли потом его перестроить под джойстик для телефона?

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

    Подскажите пожалуйста, код один и тот же. Но, если я нажимаю кнопки для поворота, работает только один раз, а когда хочу пойти вперед, поворачивается в другую сторону и только тогда он идёт

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

    я лично рекомендую фбкс для юнити выбирать.

  • @Nikitos-play01
    @Nikitos-play01 12 дней назад

    А можно написать код через другое приложение?

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

    Помогите пожалуйста после написания скрипта появляется ошибка All compiler errors have to be fixed before you canister playmode!

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

      исправь все ошибки

  • @dmitrya-si5js5uk5o
    @dmitrya-si5js5uk5o 2 года назад

    У меня персонаж не двигается, не увеличивается, нельзя менять capsule collider.
    А ещё не отображается extract collider и extract material
    А ещё когда ему закидываю текстурку, то при запуске игры он исчезает.

  • @ДаринаРаспопова-к4б

    помогите пожалуйста, сделала все так же, но когда персонаж останавливается, начинает крутиться

  • @Pokemon4ik2178
    @Pokemon4ik2178 11 месяцев назад +1

    А почему у меня персонаж летает? Все правильно сделал вродьбы

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

    Проблема: персонажа постоянно разворачивает в изначальную позицию вдоль оси y. Долго тыкал в настройки idle анимации но так и не нашел в чем дело

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

      заморозь поворот по Y

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

      @@ilya_rusin да, я уже в unreal перешёл, кстати, офигенный движок.

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

      ​@maycksel_official Так готовое это лучше. Лично меня в юньке бесят под каждые проекты писать контроллеров

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

    а как повесить камеру сзади , если просто ее кинуть на объект , то это выглядит каряво и кнопки...

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

    исходник:
    using UnityEngine;
    public class Moved : MonoBehaviour
    {
    private Animator animator;
    public float speedFPS=2f;
    public float RotationSpeed=10f;
    private Rigidbody rb;
    // Start is called before the first frame update
    void Awake() {
    rb=GetComponent();
    animator=GetComponent();
    }
    void Movment(){
    float h=Input.GetAxis("Horizontal");
    float v=Input.GetAxis("Vertical");
    Vector3 move=new Vector3(h,0,v);
    if(move.magnitude>Mathf.Abs(0.05f))
    transform.rotation=Quaternion.Lerp(transform.rotation,Quaternion.LookRotation(move),RotationSpeed*Time.deltaTime);
    animator.SetFloat("Speed",Vector3.ClampMagnitude(move,1).magnitude);
    rb.velocity=Vector3.ClampMagnitude(move,1)*speedFPS;
    }
    // Update is called once per frame
    void Update()
    {
    Movment();
    }
    }

  • @Айдар-ъ1т
    @Айдар-ъ1т 2 года назад +1

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

    • @0pex812
      @0pex812 2 года назад +2

      у меня тоже фигня, анимация есть. А движения нету

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

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

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

    А как сделать чтобы когда идёшь в бок была другая анимация

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

    у меня проблема помогите где анимации когда они гуманойд все нормально но ставлю персонажа на аватар то гуманойд меняется на генетик

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

    че делать если при открытие скрипта выходит пустота в visual studio. то есть никого кода нету

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

    что делать если нажимаю на скрипт 2 раза у меня нужно открыть его где то, где его открывать?

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

    @Maximple Здравствуйте, а как сделать так чтобы когда шёл назад скорость был ограниченным?

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

    У меня не производится анимация бега, что делать?

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

    персонаж начинает лететь вверх, а если заморозить ось Y, то после пары шагов останавливается и может только крутиться, что делать? P.S. вот код
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class PlayerController : MonoBehaviour
    {
    private Animator animator;
    private Rigidbody rigidbody;
    public float rotationspeed = 10f;
    public float speed = 2f;
    // Start is called before the first frame update
    void Start()
    {
    animator = GetComponent();
    rigidbody = GetComponent();
    }
    // Update is called once per frame
    void Update()
    {
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");
    Vector3 directionVector = new Vector3(h, 0, v);
    if (directionVector.magnitude > Mathf.Abs(0.1f))
    {
    transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 15);
    }
    animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1).magnitude);
    rigidbody.velocity = Vector3.ClampMagnitude(directionVector,1) * speed;
    }
    }

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

      и как исправил?

  • @СтаниславАрбуз_01

    Привет, подскажи пожалуйста почему камера стоит на месте, а не двигается за игроком?

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

      надо перетащить камеру в игрока

  • @ДанилРыжков-и5ф
    @ДанилРыжков-и5ф Год назад

    Почему в один момент в видео вдруг всё стало совершено непонятно

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

    Какой смысл оборачивать константное значение в abs? Оно ж и так константное. Или 0.1 может резко стать -0.1?

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

      Это я ошибся, смысла оборачивать константное число в Mathf.Abs нету :)

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

    Не могу поставить скрипт на персонажа выдаёт чтото типа нету сценария или не сходятся названия что далать?

  • @555555girl
    @555555girl 2 года назад

    ребят я новикий в unity , я установил последнию версию но когда даю на компонетны уменя нету RigidBody что делать где эго найти скожите поижалуйста

  • @prodslembit
    @prodslembit 3 года назад +3

    спасибо помог!!!

  • @xp0nat
    @xp0nat 3 года назад

    интересно, почему уже второе видео по списку не показывает как делать управление мышкой?)) а показывает вообще какие то там анимации, хотя в названии видео - управление)

    • @xp0nat
      @xp0nat 3 года назад

      @ali gad видимо у тебя аутизм, раз такие вопросы задаешь))

    • @xp0nat
      @xp0nat 3 года назад

      @ali gad по моему в моем вопросе уже есть ответ. К тому же ты конечно вовремя пишешь, я писал это 3 месяца назад. В вопросе что я написал? Где управление, если автор показывает только анимации. Есть разница между управлением и анимациями? Тебе самому интересно это? Писать ответ комменту который написали 3 месяца назад? Мне кажется моя реакция как раз самая подходящая была. В данном случае.

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

    2:36 о какой Вале идёт речь?))

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

    Помогите пожалуйста, персонаж ходит боком почему-то (( как объяснить Unity где у него перед?
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class movement : MonoBehaviour
    {
    private Rigidbody rb;
    public float speed = 2f;
    public float rotationSpeed = 10f;
    void Start ()
    {
    rb = GetComponent();
    }
    void Update ()
    {
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");
    Vector3 directionVector = new Vector3(v, 0, -h);
    if (directionVector.magnitude > Mathf.Abs(0.1f))
    {
    transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * rotationSpeed);
    }
    rb.velocity = Vector3.ClampMagnitude(directionVector,1) * speed;
    }
    }

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

      разобрался, модель в Blender повернул и забыл применить)

  • @Клибумбум
    @Клибумбум 2 года назад

    У меня проблема....
    если я напишу rigidbody GetComponent();, то мне выдаст ошибку, что двуточие не нужно, а когда уберу его, то будет ошибка, и скажут, что оно нужно.

  • @Гыы-л9б
    @Гыы-л9б 2 года назад

    Люди, помогите пожалуйста. У меня почему-то не запускается эта игра (ну в этом месте где сама игра делается). Просто я впервые игру делаю на Юнити. Ответьте почему так пожалуйста!

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

    большое спасибо жду с прыжком

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

    Слушай, а что если extract texture нельзя нажать?

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

    как сделать что бы он бегал на месте

  • @valera_kardan
    @valera_kardan 3 года назад

    Остановка слишком резкая нужен плавный переход

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

    я не знаю почему,но он не меняет анимацию на бег и не поворачивается(он передвигается)

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

      Нашёл в чём ошибка? У меня сейчас тоже самое

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

      Сам без понятия,вроде все правильно делал,перепроверил 2 раза и все ещё эта проблема

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

      @@matrrroskinstudio Ошибка была в том, что у автора "speed" написано с маленькой буквы. Попробуй написать с большой в:
      animator.SetFloat("Speed", Vector3.ClampMagnitude(directionVector,1).magnitude);
      Сработать должно

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

    С помощью чего открывать папку контроль персонажа?

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

      Ты решил эту проблему? Если да, то подскажи пожалуйста как решить

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

    Кайф!!!

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

    как же ты хорош

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

    Ну, что?! Эмм. Ты просто супер!!

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

    а что делать если аватар не выбран помоги пж я не могу его выбрать

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

    У меня всегда выскакивает ошибка когда я пытаюсь положить скрипт на объект и мне очень обидно 😢

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

      Проверь что совпадают названия скрипта и класса внутри скрипта. Например public class PlayerController: MonoBehaviour, значит скрипт должен называтся PlayerController

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

      @@Maximple Я проверял все совпадает. Вероятно я неправильно написал скрипт :(

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

      Залетай на мой канал, там выходят уроки по Юнити для начинающих

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

      @@mityasha11 гляну

  • @_kreativon
    @_kreativon 3 года назад

    Почему у меня пишется Please sign in to download

  • @love_chocolate
    @love_chocolate 3 года назад

    Спасибо за видео! А что делать если при соприкосновении с другими объектами мой персонаж начинает кружится на месте? ( прямо как в интерстеллар) )

    • @Maximple
      @Maximple  3 года назад

      Привет, я вроде в следующем видео по этой серии это исправлял. Если нет, то просто напиши у себя в Update следующее:
      rigidbody.angularVelocity = Vector3.zero;
      я только не помню назвал ли я свою переменную rigidbody в том скрипте

    • @love_chocolate
      @love_chocolate 3 года назад

      @@Maximple Спасибо большое, помогло! Только теперь, когда я соприкасаюсь с объектом и не прекращаю движение Камера трясётся. А если сделать управление камерой с помощью мышки, это пройдёт?

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

    привет! что делать, персонаж ходит, поворачивает но не проигрываются анимации. вот код
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class PlayerController : MonoBehaviour
    {
    private Animator animator;
    private Rigidbody rigidbody;
    public float rotationspeed = 10f;
    public float speed = 2f;
    void Start()
    {
    animator = GetComponent();
    rigidbody = GetComponent();
    }
    void Update()
    {
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");
    Vector3 directionVector = new Vector3(h, 0, v);
    transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(directionVector), Time.deltaTime * 10);
    animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1).magnitude);
    rigidbody.velocity = Vector3.ClampMagnitude(directionVector, 1) * speed;
    }
    }

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

      Проверь что у тебя в Animator есть параметр с названием "speed" - не "Speed" или не "Speeed". Проверь что все правильно написано

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

      @@Maximple привет, спасибо что ответил. Проверил, стоит speed но ошибка все ещё есть

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

      Проверь что speed у тебя стоит как параметр типа float, и что на объекте на котором у тебя висит этот скрипт есть компонент аниматор

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

      @@Maximple а компонент в коде или надо в инспекторе добавить?

  • @ПопОаравоаоапоро
    @ПопОаравоаоапоро 2 года назад

    Привет я не понемаю все делаю как на видео но он стоит и нечего не делает

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

    Спасибо но еще можешь сказать почему у меня персонаж только разварачиваеться на 180 пожалуйста заметь

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

    слишком сложно для меня 😅 хотел игры создавать 🤣

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

    ИНОПРИШЕЛЕНЕЦ!!!11!!1! :0

  • @jamal52q
    @jamal52q 3 года назад

    Что делать если он двигается, но анимация бега не работает, Тоесть он бегает в анимации Idle

    • @Little_girl_Sasha
      @Little_girl_Sasha 3 года назад

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

    • @Little_girl_Sasha
      @Little_girl_Sasha 3 года назад

      @ali gad с аниматором настройки не так поставила и оно не работало