Как сделать платформер на Unity #2 | Анимации и слежение камеры

Поделиться
HTML-код
  • Опубликовано: 13 янв 2021
  • В этом видео мы продолжаем создавать платформер на движке Unity.
    Добавим анимации и слежение камеры за игроком.
    Скачать пак графики для платформера:
    Яндекс. Диск - yadi.sk/d/oDaUkuSYI3m0Ew
    Гугл Диск - drive.google.com/file/d/1zARN...
    Как сделать платформер на Unity #2 | Анимации и слежение камеры
    unity, как создать игру, разработка игр, unity уроки, создание игр, unity tutorial, unity 2d, платформер, как сделать игру, unity 3d, unity3d, 2d платформер, юнити, c# уроки, c#, c# unity, 2d, с# unity уроки, как скачать юнити, c# tutorial, cube company, c# unity tutorial, как сделать свою игру, програмирование, visual studio, learn unity c#, c# for unity, как начать создавать игры, c# dersleri, unity 2d tutorial, learning c# for unity, learn c#, learn c# for unity, курс по изучение с# unity, игры, c# tutorial for beginners, создание, геймдев, игра, для начинающих, создание игр unity, game, unity2d, platformer, 2д, как создать, tutorial, анимация, как создать свою игру, создание игр для новичков, как, gamedev, разработка, разработчик игр, обучение, инди игры, программирование, юнити уроки, design, основы, sprites, indie gamedev, геймдизайн, как сделать, unity уроки для начинающих, graphical, создание платформера unity, дизайн, графика, уроки по unity, assets, урок, игровые движки, уроки, персонаж, 2d игра, games, создание 2d игры, гайд, 2d platformer, unity 2d уроки, game dev, how to make game, unity 2d платформер, move, unity 5, код, создание игры, 2d platformer unity, asset store, animation, unity 3d tutorial, game dev для начинающих, спрайты, си шарп, как создать платформер на юнити, castadude, beginner, первая игра, unreal, юнити 3д, создание игр в unity, геймдев с нуля, android, управление в платформере на юнити, brackeys, уроки по юнити, development, develop, создание платформера на юнити, платформер юнити, геймдев с чего начать, как сделать управление на юнити, создание игры на unity, как создать игру на андроид, как сделать платформер, unity2d платформер, tutorials, 2д платформер, artalasky, пиксельарт, заргеймдев, юнити2д, #уроки, для ничинающих, юнити 2д, уроки на русском, unity tutorial 2d, 2d unity, easy, курсы программирования, прыжок, unity создание игр, игра на unity, движение, jump, 2d спрайты, создать игру бесплатно, создание 2d игр, unity платформер уроки, 2d платформер на unity, игровая графика, игровой движёк, как создать игру на unity, уроки unity, упровление в unity, #unity, game design, zargamedev, графика для игр, void, войд, студия, public, паблик, unity 2д платформер, bool, privat, прайвет, вижуал, юнити анимация персонажа, работа с персонажом, animations, flip, как создать 2d платформер, unity, unity3d, android helper, tutorial, programming, c#, game dev, юнити, туториал, движение камеры в unity, движение камеры за персонажем unity 2d, как сделать движение камеры за персонажем в unity, плавное движение камеры unity, camera follow 2d, двигаем камеру за персонажем в юнити, двигаем камеру за игроком в unityпрограммирование, development, разработка игр, animation

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

  • @andriikovalskyi9871
    @andriikovalskyi9871 3 года назад +87

    Почти никого не остается на Ютубе из тех ребят, которые начинали снимать на эту тематику. Держись, главное не бросай **

  • @mrcube4162
    @mrcube4162 3 года назад +89

    Ребята код для камеры:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class CameraController : MonoBehaviour
    {
    [SerializeField] private Transform player;
    private Vector3 pos;
    private void Awake()
    {
    if (!player)
    {
    player = FindObjectOfType().transform;
    }
    }
    private void Update()
    {
    pos = player.position;
    pos.z = -10f;
    transform.position = Vector3.Lerp(transform.position, pos, Time.deltaTime);
    }
    }
    PS: Скрипт надо прикрепить к камере и дать обьекту тег Player, а то у некоторых Hero не распознает.

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

      Что делать если скрипт не работает? Всё сделал, но место игрока канвас двигается

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

      @@catssteam возможно не туда прикрепили скрипт

    • @slivsofterov4164
      @slivsofterov4164 3 года назад +15

      Крч: player = FindObjectOfType().transform;

    • @L4ke_221
      @L4ke_221 3 года назад +4

      Спасибо братан от души!

    • @sergeymer
      @sergeymer 2 года назад +4

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

  • @youngtrap44
    @youngtrap44 3 года назад +315

    Спасибо монтажору за обрезки скриптов просто 10\10

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

      Сарказм?

    • @imya2288
      @imya2288 2 года назад +48

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

    • @user-tm1ui2pe6d
      @user-tm1ui2pe6d 2 года назад +12

      @@imya2288 я могу скинуть готовый скрипт, полностью рабочий

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

      @@user-tm1ui2pe6d если можно

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

      @@user-tm1ui2pe6d и мне если можно

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

    всё получилось, видосу лайк, переходим к 3-ей части

  • @Donya_TF-TeamFersit
    @Donya_TF-TeamFersit 3 года назад +42

    Спасибо что научил делать анимации!❤

    • @WhiskasCorn
      @WhiskasCorn 6 месяцев назад +1

      Где? Даже не показал

  • @user-tl7xz9jw8u
    @user-tl7xz9jw8u 3 года назад +2

    Спасибо за видео

  • @Donya_TF-TeamFersit
    @Donya_TF-TeamFersit 3 года назад +3

    Ты лучший!

  • @user-mf1yn6ud1o
    @user-mf1yn6ud1o 2 года назад +74

    Я же не одна здесь, чтобы сделать игру для защиты проекта?

    • @bananchikyes7316
      @bananchikyes7316 2 года назад +4

      +

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

      только мне для школьного проекта надо. Можешь подсказать, что делать если работает только анимация покоя?

    • @ma_liberta
      @ma_liberta Год назад +5

      ХВХВХВХ не думала, что ещё есть такие

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

      @@ma_liberta ... ну я хпэхажахаэха да я лох

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

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

  • @user-wf9zg8dx4e
    @user-wf9zg8dx4e 2 года назад +87

    У меня все получилось, хочу объяснить частые ошибки:
    1. Камера не работает:
    Во-первых, вам нужно создать отдельный скрипт-файл(как Hero), и в нем писать код, который в этом видео. Дальше вы добавляете этот скрипт к Main Camera(чтобы ее было видно в панели с компонентами), потом нажмите маленькую стрелочку, чтобы развернуть и там будет всего два пункта(Script, но его нельзя изменить, и player). В пункте Player нажмите на круг в круге(правее всего) и выберете Hero. Если код у вас, как на видео, то должно сработать.
    2. Не работают анимации:
    Проверьте, как вы сохранили файлы(большая буква или маленькая, как называется). У меня файлы с большой буквы, поэтому код Hero выглядит так: using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class Hero : MonoBehaviour
    {
    [SerializeField] private float speed = 3f;
    [SerializeField] private int lives = 5;
    [SerializeField] private float jumpForce = 7f;
    private bool isGrounded = false;
    private Rigidbody2D rb;
    private Animator anim;
    private SpriteRenderer sprite;
    private States State
    {
    get { return (States)anim.GetInteger("state"); }
    set { anim.SetInteger("state", (int)value); }
    }
    private void Awake()
    {
    rb = GetComponent();
    anim = GetComponent();
    sprite = GetComponentInChildren();
    }
    private void Run()
    {
    if (isGrounded) State = States.Run;
    Vector3 dir = transform.right * Input.GetAxis("Horizontal");
    transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
    sprite.flipX = dir.x < 0.0f;
    }
    private void FixedUpdate()
    {
    CheckGround();
    }
    private void Update()
    {
    if (isGrounded) State = States.Idle;
    if (Input.GetButton("Horizontal"))
    Run();
    if (isGrounded && Input.GetButtonDown("Jump"))
    Jump();
    }
    private void Jump()
    {
    rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
    Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
    isGrounded = collider.Length > 1;
    if (!isGrounded) State = States.Jump;
    }
    }
    public enum States
    {
    Idle,
    Run,
    Jump
    }
    Код рабочий можете сверятся

    • @user-wf9zg8dx4e
      @user-wf9zg8dx4e 2 года назад +13

      Вот код CameraController:
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class CameraController : MonoBehaviour
      {
      [SerializeField] private Transform player;
      private Vector3 pos;
      private void Awake()
      {
      if (!player)
      player = FindObjectOfType().transform;
      }
      private void Update()
      {
      pos = player.position;
      pos.z = -10f;
      transform.position = Vector3.Lerp(transform.position, pos, Time.deltaTime);
      }
      }
      Оба кода рабочих

    • @user-wf9zg8dx4e
      @user-wf9zg8dx4e 2 года назад +11

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

    • @user-zy3xy2xj3o
      @user-zy3xy2xj3o 2 года назад +3

      @@user-wf9zg8dx4e что делать если анимация персонажа Ран работает часто чем Айдл

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

      @@user-wf9zg8dx4e можно твой телеграм или дискорд?

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

      Чувак, ты икона
      Спасибо

  • @MaximArt-so1cz
    @MaximArt-so1cz 11 месяцев назад

    спасибо что помогаешь создать игры таким же делитантам как я 😁👍

  • @user-ni9mh2lv7r
    @user-ni9mh2lv7r 3 года назад

    Чётко продолжай

  • @user-qg8me4ss5x
    @user-qg8me4ss5x 2 года назад +1

    Спасибо очень помог

  • @user-he2nh4cv7r
    @user-he2nh4cv7r 2 года назад +19

    Если у кого-то проблемы с анимациями можете попробовать сделать так:
    Попробуйте открыть таблицу с Animator’ом и в inspector в Conditions поставить State - Equals - 0. Проделайте тоже самое в run и jump, только в run выставьте Equals 1, а в jump Equals 2.
    В скрипте, в “private States State” напишите в скобках State с большой буквы.
    Мне помогло

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

      А хотел спросить, если от Any State можно сделать только одну связь, можно что-то сделать?
      Я немного переделал код, но у него выглядит так удобно
      Хотелось бы так же

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

      Спасибо помогло с анимацией прыжка, думал поседею почему не работало)

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

      какой в жопу кандитиос

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

      СПАСИБООООООООООООООООООО

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

      Заработала анимация!!! State с большой буквы нужно писать!!! Автор видео - косепор!) Из-за его ошибок столько времени теряешь и вообще желание продолжать исчезает! Сцуко!

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

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

  • @user-vd1of5tc8m
    @user-vd1of5tc8m 4 месяца назад +3

    Если у кого-то персонаж при прыжке судорожно переключает анимацию падения, то ловите таблэтку: просто создайте отдельно анимацию падения(falling), потом в Animator проведите стрелку от Any State к falling, задайте Equal = 3. Потом в методе, где проверяется находится перс на земле или нет, допишите это: if (rb.velocity.y < 0.0f) State = States.falling; и private bool isFalling = false; (это в начале строки, где мы указываем значения прыжка, скорости передвижения и тд)

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

    Класс

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

    В поддержку

  • @Pastor-1
    @Pastor-1 10 месяцев назад

    Наконец-то я потратила время не зря

  • @user-vu6dn9il7y
    @user-vu6dn9il7y 3 года назад +2

    Видос ПУШКА, спасибо большое

  • @user-xs4wx5xs2b
    @user-xs4wx5xs2b Год назад

    ТОПП, у всех камера резкая, а ток у тебя, вышла плавная, жалко что ютуб запросил

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

    Жду больше видео, и желаю много просмотров. Не сдавайся **

  • @user-rq6sx2xl7m
    @user-rq6sx2xl7m 2 года назад +8

    Спасибо за реализацию! Очень интересно, хоть и по гайду, но все же самому делать игру. Как и многих, напрягают немного обрезанные части кода, не понятно, что куда идет. Просто крупный шрифт полного окна вполне читаемо смотрится и с монтажом меньше мороки. Ну и этот тот формат видео, в котором комментаторы позарез нужны, иначе лагов много возникает в процессе!! Тем не менее, спасибо за такой труд!

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

    Спасибо,очень помогло)

  • @user-fb5je1hg9r
    @user-fb5je1hg9r 3 года назад +2

    Спасибо за урок)

  • @allrom9855
    @allrom9855 3 года назад +51

    Видео хорошее, спасибо !!! ))
    Только толи я прослушал в каком моменте было сказано, что скрипт - CameraController необходимо было повесить на MainCamera :)), толи и правда не было сказано )), так небольшое дополнение ))

    • @user-dt8pe1ux2l
      @user-dt8pe1ux2l Год назад +1

      Так это еще и отдельный скрипт я вообще это в первом написал

  • @name1584
    @name1584 2 года назад +78

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

    • @Samurai-yh8og
      @Samurai-yh8og 2 года назад +16

      Это так, я тоже начал изучать Unity. И я тупой был вообще, не понимал, почему так, вроде язык C++ и С# освоил, студентам их програмки решаю, как семечки щелкаю. А оказывается что в Unity надо запоминать все классы, методы и т.д.
      Когда несколько раз одно и тоже сделаешь, тогда начинаешь делать все быстрее, а потом уже до такого автоматизма доходит, что вот то что тут показывают в уроках можно за пару минут сделать. И вот я смотрел этот урок и чувствовал себя ничтожеством потому что делаю все аналогично, а ничего не работает. В итоге я за 2 дня только разобрался где я наошибался, зато я хорошо запомнил и смог в дальнейшем с легкостью видеть где фиксить баги. А что касается его кода, не так уж и говнокодит). Можно написать красивее, но в принципе работает же у него все. А для новичков неважно как код написан, с опытом все учаться писать красивее. Это как разговаривать на английском учиться, сначало говоришь как в детском саду, а потом с опытом разговариваешь красиво). Но вот эти обрезания, мне тоже не нравятся если честно, смотришь смотришь, а потом опа, и уже все готово (ну вы там в папочку загляните там файлик появился), а я черт подери куда-то случайно запихнул первую анимацию даже не заметив, и 2 часа думал что не так. Мне то как новичку откуда было знать что в Unity аниматор появляется том месте. Короче бред) Зато, как ты правильно сказал, заставляет разбираться самому))

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

      @@Samurai-yh8og получается видимо зря я сделал всё так как в видео, и не было никаких ошибок 🤔

    • @aaffa-ck2vd
      @aaffa-ck2vd 5 месяцев назад

      подскажите как добавить уже созданные анимации?
      У меня они есть просто не сохранились в редакторе...
      @@Samurai-yh8og

  • @mikhailvasilev233
    @mikhailvasilev233 Год назад +4

    Если камера не следит за игроком попробуйте в дереве иерархии переместить камеру ниже Hero.У меня так сработало

  • @user-gq9rc8vq1r
    @user-gq9rc8vq1r 2 года назад

    Ну ты сусанин кодовый даещь жару !!!!

  • @user-wx6sy6ui2g
    @user-wx6sy6ui2g Год назад

    Он просто любил жизнь!

  • @ERrOR2033
    @ERrOR2033 Год назад +10

    Альтернатива проверки состояния IsGrounded:
    private bool isGrounded = false; // Она уже должна быть создана выше, как в видео
    private void OnCollisionStay2D(Collision2D collision)
    {
    isGrounded = true;
    }
    private void OnCollisionExit2D(Collision2D collision)
    {
    isGrounded = false;
    }
    }

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

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

    • @user-rn7ch9xf2v
      @user-rn7ch9xf2v Год назад +1

      Огромное спасибо

  • @user-ff3li8ip2t
    @user-ff3li8ip2t Год назад +3

    При активации скрипта camera controller - игра создает невидимые текстурки и перс движется сам по себе(скользя по платформе). Что делать в таком случае?

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

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

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

    ты самый крутой ютубер

  • @user-xs4wx5xs2b
    @user-xs4wx5xs2b Год назад

    Я тебя люблю.

  • @MironikGames
    @MironikGames 3 месяца назад +8

    Что делать, если перестало разворачивать персонажа по оси x?

    • @Toxa357
      @Toxa357 27 дней назад +1

      Возможно на основном объекте плеера добавился свой Sprite Renderer и скрипт работает с ним, а не с дочерним. Знаю, что вопрос для тебя уже не актуален, пишу для потомков.

    • @retrosyyy
      @retrosyyy 20 дней назад

      @@Toxa357 спасибо

    • @rewwer2710
      @rewwer2710 19 дней назад

      @@Toxa357 а как исправить?

    • @Toxa357
      @Toxa357 19 дней назад

      @@rewwer2710 удали Sprite Renderer на основном объекте, чтоб он был только на дочернем или просто отключи его (галочку сними).

  • @user-lj9xm3yo1x
    @user-lj9xm3yo1x Год назад +2

    что делать если он у меня пишет огромное количество раз 2 ошибки:
    MissingComponentException: There is no 'Animator' attached to the "Circle" game object, but a script is trying to access it.
    You probably need to add a Animator to the game object "Circle". Or your script needs to check if the component is attached before using it.
    и
    'Hero' AnimationEvent has no function name specified!

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

    А если я сделал свои анимации, но там по 11 20 кадров, я сохранил все в гиф файлах, как я могу их использовать?

  • @deus.7335
    @deus.7335 3 года назад

    Ура

  • @sharksea1372
    @sharksea1372 2 года назад +8

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

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

    Ребят, у кого проблема с тем, что воспроизводится сразу две анимации во время бега и прыжка, то в аниматоре поставьте у анимации прыжка state = 2, а у бега state = 1

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

      непомогло

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

    можно ли поставить просто Cinemachine вместо скриптов на камеру?

  • @pr1zergodsunchained181
    @pr1zergodsunchained181 2 года назад +24

    Над 7 минутами пришлось 2 дня думать ,что исправить. С начало в комментах увидел, что state на State поменять. Ушла ошибка. Потом проблемы с анимацией, она поверх Hero появлялась и на половину ниже. Решено было переделать её заново. И в итоге Получалось ,что я последующие sprite не добавлял к новым анимациям, а сами анимации перетаскивал , а нужно было как бы на спрайт накладывать эти изображения. Может кому помог. Аналогичных вопросов в комментах не обнаружил. Зато за эти 2 дня лучше код начал понимать , а то при написании понимал 30% написанного) Андрей,33 годика.

    • @user-xh2wf2cj4f
      @user-xh2wf2cj4f 2 года назад +7

      Огромное спасибо, прям дословно мои проблемы описал, особенно про 2 дня и что касается анимации)) Никитка, 22 годика

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

      Можешь объяснить насчёт анимации? У меня такая же проблема, но я не могу понять, как это исправить.

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

      @@neverm1ndr на данный момент забросил с этим делом и сейчас не смогу вспомнить что и как...

    • @user-rr1bi6dq6q
      @user-rr1bi6dq6q Год назад +1

      Тоже самое говно. Но я решил что будет проще написать свой код. И получилось норм

    • @aaffa-ck2vd
      @aaffa-ck2vd 5 месяцев назад

      Очень нужен ответ что это значит: У меня тоже персонаж вниз уходит его анимация прыжка
      Получалось ,что я последующие sprite не добавлял к новым анимациям, а сами анимации перетаскивал , а нужно было как бы на спрайт накладывать эти изображения. Может кому помог.

  • @mozzy_street
    @mozzy_street 2 года назад +26

    Код на игрока
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class Hero : MonoBehaviour
    {
    [SerializeField] private float speed = 3f;
    [SerializeField] private int lives = 5;
    [SerializeField] private float jampForce = 0.4f;
    private bool isGrounded = false;
    private Rigidbody2D rb;
    private Animator anim;
    private SpriteRenderer sprite;
    private States State
    {
    get { return (States)anim.GetInteger("state"); }
    set { anim.SetInteger("state", (int)value); }
    }
    private void Awake()
    {
    rb = GetComponent();
    anim = GetComponent();
    sprite = GetComponentInChildren();
    }
    private void FixedUpdate()
    {
    CheckGround();
    }
    private void Update()
    {
    if (isGrounded) State = States.Idle;
    if (Input.GetButton("Horizontal"))
    Run();
    //if (Input.GetButton("Jump"))
    //Jump();
    if (isGrounded && Input.GetButton("Jump"))
    Jump();
    }
    private void Run()
    {
    if (isGrounded) State = States.Run;
    Vector3 dir = transform.right * Input.GetAxis("Horizontal");
    transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
    sprite.flipX = dir.x < 0.0f;
    }
    private void Jump()
    {
    rb.AddForce(transform.up * jampForce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
    Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
    isGrounded = collider.Length > 1;
    if (!isGrounded) State = States.Jump;
    }
    }
    public enum States
    {
    Idle,
    Run,
    Jump
    }

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

      Рабочий?

    • @user-fu8lw2gm7t
      @user-fu8lw2gm7t 2 года назад +1

      спасибо

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

      Спасибо!

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

      У меня челик не прыгает, а взлетает это нормально?

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

      @@ZariDrag0nУ меня тоже. Анимация нету

  • @zerollaxd8373
    @zerollaxd8373 3 года назад +31

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class hero : MonoBehaviour
    {
    [SerializeField] private float speed = 3f;
    [SerializeField] private int lives = 5;
    [SerializeField] private float jumpforce = 15f;
    private bool isGrounded = false;

    private Rigidbody2D rb;
    private Animator anim;
    private SpriteRenderer sprite;
    private States State
    {
    get { return (States)anim.GetInteger("state"); }
    set { anim.SetInteger("state", (int)value); }
    }
    private void Awake()
    {
    rb = GetComponent < Rigidbody2D > ();
    anim = GetComponent();
    sprite = GetComponentInChildren();
    }
    private void FixedUpdate()
    {
    CheckGround();
    }
    private void Update()
    {
    if (isGrounded) State = States.idle;
    if (Input.GetButton("Horizontal"))
    Run();
    if (isGrounded && Input.GetButtonDown("Jump"))
    Jump();
    }
    private void Run()
    {
    if (isGrounded) State = States.run;
    Vector3 dir = transform.right * Input.GetAxis("Horizontal");
    transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
    sprite.flipX = dir.x < 0.0f;
    }
    private void Jump()
    {
    rb.AddForce(transform.up * jumpforce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
    Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
    isGrounded = collider.Length > 1;
    if (!isGrounded) State = States.jump;
    }
    }
    public enum States
    {
    idle,
    run,
    jump
    }
    public class CameraController : MonoBehaviour
    {
    [SerializeField] private Transform player;
    private Vector3 pos;
    private void Awake()
    {
    if (!player)
    player = FindObjectOfType().transform;
    }
    private void Update()
    {
    pos = player.position;
    transform.position = Vector3.Lerp(transform.position, pos, Time.deltaTime);
    }
    }

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

      Полностью код?

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

      Лучший просто огромное спасибо 👍👍💪

    • @user-or5xv6zc1e
      @user-or5xv6zc1e 11 месяцев назад

      имба

  • @ERrOR2033
    @ERrOR2033 Год назад +6

    Альтернатива для камеры из другого проекта (без FindObjectOfType):
    using UnityEngine;
    public class CameraController : MonoBehaviour
    {
    [SerializeField] private Transform objTransform;
    [SerializeField] private Vector3 offset = new Vector3(0, 0, -10f);
    [SerializeField] private float camSpeed = 5f;
    private void Update()
    {
    Vector3 newCamPos = new Vector3(objTransform.position.x, objTransform.position.y, offset.z);
    transform.position = Vector3.Lerp(transform.position, newCamPos, camSpeed * Time.deltaTime);

    }
    }
    Скорость камеры можно менять (Cam Speed)
    В самом Unity на objTransform перетаскиваем игрока (Hero, родительский объект). Внимательно проверяем offset если камера улетает, он отвечает за расстояние камеры до игрока и у меня он по стандарту по оси Z и равен -10f.

    • @dud.os_play2950
      @dud.os_play2950 Год назад +2

      Спасибо тебе огромное!!! помог ппц

    • @AOH2-bw4ni
      @AOH2-bw4ni 3 месяца назад

      не робит

  • @kiruxa_tom747
    @kiruxa_tom747 2 года назад +6

    Скиньте полные коды пожалуйста! Я так просто не понимаю.

  • @user-ko7zo4dz5d
    @user-ko7zo4dz5d Год назад +4

    Была проблема в том, что position по Y для Hero и Main Camera по-разному считались, так что у меня камера сдвигалась вниз относительно персонажа
    Сделал костыль, прибавив 7.0f к "pos.y"
    Но хотелось бы выяснить причину и как с этим красиво бороться

    • @aaffa-ck2vd
      @aaffa-ck2vd 5 месяцев назад

      Пытаюсь понять выше сказанное такая же ошибка....

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

    Перестал прыгать персонаж и ошибка MissingComponentException: There is no 'Animation' attached to the "Player" game object, but a script is trying to access it. много раз, помогите уже 2 часа сижу разбираюсь

  • @user-hz1xp5hk6n
    @user-hz1xp5hk6n 2 года назад +9

    Спасибо! Отличное видео. Только вот есть один вопрос. После добавления анимации персонаж перестал поворачиваться в сторону направления.

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

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

    • @Falkot78
      @Falkot78 2 года назад +12

      В Hero появился sprite renderer его нужно удалить и реверс заработает

    • @user-hz1xp5hk6n
      @user-hz1xp5hk6n 2 года назад +1

      @@Falkot78 Спасибо! Заработало ))

    • @user-hz1xp5hk6n
      @user-hz1xp5hk6n 2 года назад +4

      Надо было с Hero удалить компонент sprite renderer

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

      @@Falkot78 Спасибо, вот я намучался... А как узнать такое то?

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

    У меня при запуске игры в Idle дерганное Idle смешанное с Jump который вообще в другом месте. Можете помочь?

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

    Сделай пожалуйста видос про то как добавить рекламу

  • @okiemes196
    @okiemes196 2 года назад +4

    При прыжке на платформу, если приземлиться не сверху а падать сбоку, код определяет что я якобы стою на земле, и могу подпрыгнуть еще раз( пытался уменьшить бокс колайдер. Но не помогает). И очень даже хорошо, было бы реалистично, якобы подтянулся на верх. Но он почему то этот прыжок делает в 3 раза сильнее. Поможет кто, решить этот вопрос?

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

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

  • @user-mu1ki2fy8d
    @user-mu1ki2fy8d Год назад +1

    У меня почему то спрайт постоянно отображается на заднем плане, а так работает все. Как убрать этот спрайт?

  • @forcesoftheevil9252
    @forcesoftheevil9252 3 года назад +4

    Спасибо за видео! Сделай урок по ИИ наносящий урон

  • @user-dc3vl2zd8z
    @user-dc3vl2zd8z 3 года назад +5

    Большое спасибо вам,но почему во время слежки камеры,у меня как то дергаются мои платформы.

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

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

  • @MrMaxim-cd7fb
    @MrMaxim-cd7fb Год назад +1

    У меня проблема, анимации не сохраняются в юнити😞
    В файлах ини есть а в юнити их нету

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

    Коммент для продвижения ролика

  • @user-fz6lr5fi9o
    @user-fz6lr5fi9o 3 года назад

    Возникла проблема анимации переключаются подряд сами по себе. Все работает но что в движении, стоя на месте и в прыжке срабатывают сразу все анимации. Подскажите что надо сделать!!

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

      Проверь, что в каждой анимации в state стоит 0,1,2

  • @Bolt-nm9fg
    @Bolt-nm9fg Год назад +7

    Идея видео класс, но минус в том что половину нужно додумывать самому

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

      Разве же это минус? наоборот научишься сам делать больше чем тебе дают

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

      Так нихуя не работает когда сам делаешь@@bijin7510

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

    Здравствуйте
    Не подскажете в чем проблема ?
    ArgumentException: GetComponent requires that the requested component 'RigidBody2D' derives from MonoBehaviour or Component or is an interface.
    UnityEngine.Component.GetComponent[T] () (at :0)
    Hero.Awake () (at Assets/Scripts/Hero.cs:19)

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

      надо на форуме искать

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

      На самом деле компонент RigidBody2D не существует а надо было "Rigidbody2D". Ты просто написал компонент в виде кэмел кэйс

  • @only4humor461
    @only4humor461 3 года назад +66

    Держите рабочий скрипт Hero:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class Hero : MonoBehaviour
    {
    [SerializeField] private float speed = 3f; // скорость движения
    [SerializeField] private int lives = 5; // скорость движения
    [SerializeField] private float jumpForce = 15f; // сила прыжка
    private bool isGrounded = false;
    private Rigidbody2D rb;
    private Animator anim;
    private SpriteRenderer sprite;
    private States State
    {
    get { return (States)anim.GetInteger("state"); }
    set { anim.SetInteger("state", (int)value); }
    }
    private void Awake()
    {
    rb = GetComponent();
    anim = GetComponent();
    sprite = GetComponentInChildren();
    }
    private void FixedUpdate()
    {
    CheckGround();
    }
    private void Update()
    {
    if (isGrounded) State = States.idle;
    if (Input.GetButton("Horizontal"))
    Run();
    if (isGrounded && Input.GetButtonDown("Jump"))
    Jump();
    }
    private void Run()
    {
    if (isGrounded) State = States.run;
    Vector3 dir = transform.right * Input.GetAxis("Horizontal");
    transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
    sprite.flipX = dir.x < 0.0f;
    }
    private void Jump()
    {
    rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
    Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
    isGrounded = collider.Length > 1;
    if (!isGrounded) State = States.jump;
    }
    }
    public enum States
    {
    idle,
    run,
    jump
    }

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

      Просто лучший

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

      Большое спасибо

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

      НЕ ПРЫГАЕТ ЧЕЛ
      У МЕНЯ

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

      @@dota2trainer559 переделай скрипт , проверь нет ли ошибок

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

      Ну так то он не работает: при прыжке анимации прыжка нет, при ходьбе анимации ходьбы нет. И выдаёт ошибку: "параметр "state" не существует"

  • @jellytyan
    @jellytyan 3 года назад +43

    Привет, отличное видео, но у меня появились баги!
    1. Когда я запускаю игру и прыгаю то у меня может 2 прыжка нормальных а потом прыжок в космос и так циклично
    2. При добавление анимации, flipX перестал работать (поправочка: починил, в Hero появился Sprite Renderer который мешал)

    • @user-yf8if7fx8m
      @user-yf8if7fx8m 3 года назад +12

      О, помог с flipX, спасибо)

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

      у меня тоже проблема как у тебя в 1 первом пункте

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

      тоже помог с flipX

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

      за 2 мое уважение

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

      @@samuraikendo5153 не за что

  • @user-jn8ni1cf2o
    @user-jn8ni1cf2o 3 года назад

    Ти про я люблю тебе

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

    Не фурычит переключение анимации все сделал по видосу и State написал с большой. Когда проигрываю анимации бега и прыжка появляется новый персонаж (потом пропадает) но при запуске игры ток анимация покоя

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

    Помогите пожалуйста, когда открываю Animator, то у меня нечего нету, нет анимаций как показано на видео. Помогите

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

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

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

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

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

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

  • @user-jc5kc7fr5k
    @user-jc5kc7fr5k Год назад

    А что делать если камера вроде как следит, но при этом платформа улетает далеко в противоположную сторону

  • @Sashagaming2280
    @Sashagaming2280 2 месяца назад +1

    Что делать если в Unity 2022 пишет ошибку в скрипте C# что error CS1007: Property accessor already defined?
    Хотя я всё делал из этого видео тутора

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

    Если стою на месте происходит анимация idle и выдает бесконечно ошибку: 'Hero' AnimationEvent has no function name specified! В чем проблема?

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

    У меня вылетел Unity, и проект не сохранился. теперь у меня нет абсолютно никакого желания делать игру дальше 👍 (по крайней мере сегодня)

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

      Позавчера у меня во время создания игры моргнул свет и пк перезапустился, тоже ничего не сохранилось, теперь каждые 5 минут ctrl s тычу

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

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

  • @user-hu7od1ue5q
    @user-hu7od1ue5q 2 года назад +1

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

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

    А как сделать, так чтобы камера быстрее двигалась?

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

    Assets/Scripts/Hero.cs(46,40): error CS0117: 'States' does not contain a definition for 'run' . Помогите, что с этим делать?

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

    А если я нажал Create Animation, случайно выбрал не ту папку, удалил те файлы с анимацией и теперь у меня нету кнопки Create Animation. Пожалуйста помогите!

  • @chel.chelovekovich
    @chel.chelovekovich 2 года назад

    После того как я начинаю бегать, анимация бега зацикливается, и другие анимации не работают. Почему? Как решить?

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

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

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

      и поворот персонажа перестал работать

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

    Привет) А у меня появился такой вопрос: Есть ли разница между тем, что бы в коде прописывать камере следовать за игроком, и просто сделать камеру дочерним нашему Hero?

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

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

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

    Где найти эту анимацию........ в архиве нет файла в формате ANIM

  • @azby8487
    @azby8487 7 месяцев назад +1

    Я ещё в Update() добавил pos.y += 2f; чтоб камера была чуть повыше персонажа.

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

    здарова! помоги пожалуйста... у меня во время анимации не поворачивается герой + не прыгает изза чекграунда

  • @user-jy8wx8rx3h
    @user-jy8wx8rx3h 3 года назад +6

    Как сделать камеру менее плавной? У меня персонаж немного перегоняет её. Сделать персонажа медленнее не вариант.

    • @user-zl8ky7oy7w
      @user-zl8ky7oy7w 3 года назад +3

      transform.position = Vector3.Lerp(transform.position, pos, 3* Time.deltaTime);
      может поздно, но вот, можно в этой строке добавить множитель к значению Time.deltaTime
      можно так же сделать множитель отдельной переменной и вынести в инспектор по желанию, чтобы подстраивать прямо в юнити

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

      @@user-zl8ky7oy7w спасибо)

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

    У тебя лучшие уроки на всём ютубе!

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

      Ага, только он украл весь туториал.

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

      ruclips.net/video/CAPVBTKk3Ww/видео.html - вот оригинал

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

      @@Derk89 так оригинальный урок на русском, и более понятно все объясняют.

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

    А что делать если не добавляется в анимацию?

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

    у меня все лишь на одной анимации прыжка, другие не показывает. Все как на видео

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

    Error:MissingComponentException: There is no 'Animator' attached to the "Hero" game object, but a script is trying to access it.

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

      Тут всё просто: проверь, BoxCollider2D и Rigidbody2D должны находится не в Sprite, а в Hero

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

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

  • @ugggg07.56
    @ugggg07.56 3 года назад +10

    Почему у меня только анимация покоя показывается а другие не включаются

    • @user-mg9xc2fw3p
      @user-mg9xc2fw3p 4 месяца назад

      возможно тебе уже не нужно но думаю другим пригодится: в Animator в parameters нужно создать поле под названием ИМЕННО state

  • @user-vn7bh5cs8z
    @user-vn7bh5cs8z 2 года назад +3

    пожалуйста помогите, анимация прыжка работает отлично, но вот анимация idle и run не переключаются между собой, у меня на земле постоянно idle.

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

    Ладно idle показал как сделать, но почему не показать run и jump, я вообще не вижу где Sprite для этого

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

    Норм, но экран зумить идея плохая

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

    Подскажите пожалуйста, почему я не могу сделать второй раз Make Transition из Any State? 2:42
    Из за этого у меня происходит только idle и все. Буду очень благодарен!!!!!!!!!!

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

      баг версии юнити, обнови до более новой

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

    Ребят подскажите пожалуйста. У меня перестал работать flipX. Так же когда я начинаю бег у меня ставится пауза, что делать?

  • @hamros9796
    @hamros9796 3 года назад +4

    Спасибо!!!!!! я соревновался с друзьями и я выиграл!!!!!!!!!!!!!!!! СПАСИБО!!!!!!!!!!!!!! спорили на 50 доларов

  • @user-ej2gy2em3x
    @user-ej2gy2em3x Год назад +1

    Не знаю, поможет это кому или нет, но при проверке анимации у меня была проблема с тем, что они в принципе не запускались(не было ответа на нажатие в animator'e, во время игры). Казалось бы, вроде и ко правильный, и сохранил все с нужной величиной букв. В чем дело?
    В аниматора, int "State" был прописан с большой буквы, а в коде - с маленькой("state"). Сравнял и в аниматоре, и в коде = заработало.

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

    Почему у меня как в конце видео пишет: error cs1513.} expected 95.2

  • @user-nj2vk3ss5i
    @user-nj2vk3ss5i 3 года назад +3

    Доброго дня! Может кто подсказать... Компонент аниматор добавил на ГГ, и в нем видно, что они работают, когда бежишь и прыгаешь, но при этом анимация остается idle. Код кучу раз перепроверил, проблема точно не в нем. Может я как то неправильно в самом аниматоре сделал ( все по видео делал).

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

      У меня так же

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

      Srite Render удали. ВЫше написано же.

    • @Weapons-Cannel
      @Weapons-Cannel 4 месяца назад

      на каком объекте удалить?
      @@okiemes196

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

    У меня почему-то при запуске - камера движеться в сторону. Как это исправить?

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

    Подскажите пожалуйста, почему персонаж перестал прыгать и запускать анимацию прыжка и бега. Буду благодарен.

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

      В коде наверное допустил ошибки