ИИ врага "Страж" / AI Enemy - Unity легко

Поділитися
Вставка
  • Опубліковано 3 січ 2025

КОМЕНТАРІ • 255

  • @sunq_live
    @sunq_live 4 роки тому +63

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

    • @chancetrace4532
      @chancetrace4532 3 роки тому

      You prolly dont care but if you are bored like me during the covid times then you can watch all the latest movies on kaldrostream. I've been watching with my girlfriend recently xD

    • @hendrixquinton9592
      @hendrixquinton9592 3 роки тому

      @Chance Trace Definitely, I have been using instaflixxer for since november myself =)

    • @aceskylar9176
      @aceskylar9176 3 роки тому

      @Chance Trace Definitely, been using instaflixxer for since december myself :D

    • @xanderwestin7247
      @xanderwestin7247 3 роки тому

      @Chance Trace definitely, I have been watching on Instaflixxer for months myself :D

    • @morgankamari9985
      @morgankamari9985 3 роки тому

      @Chance Trace Definitely, I've been using Instaflixxer for since november myself =)

  • @cartonoff
    @cartonoff 3 роки тому +10

    Спасибо огромное!!! Это именно то, чего мне не хватало для моей игры...

  • @lucherpro5429
    @lucherpro5429 4 роки тому +35

    public float speed;
    public int positionOfPatrol;
    public Transform point;
    bool moveingRight;
    Transform player;
    public float stoppingDistance;
    bool chill = false;
    bool angry = false;
    bool goBack = false;
    void Start()
    {
    player = GameObject.FindGameObjectWithTag("Player").transform;
    }
    void Update()
    {
    if (Vector2.Distance(transform.position, point.position) < positionOfPatrol && angry == false )
    {
    chill = true;
    }
    if (Vector2.Distance(transform.position, player.position) < stoppingDistance)
    {
    angry = true;
    chill = false;
    goBack = false;
    }
    if (Vector2.Distance(transform.position, player.position) > stoppingDistance)
    {
    goBack = true;
    angry = false;
    }
    if (chill == true)
    {
    Chill();
    }
    else if (angry == true)
    {
    Angry();
    }
    else if (goBack == true)
    {
    Goback();
    }
    }
    void Chill()
    {
    if (transform.position.x > point.position.x + positionOfPatrol)
    {
    moveingRight = false;
    }
    else if (transform.position.x < point.position.x - positionOfPatrol)
    {
    moveingRight = true;
    }
    if (moveingRight)
    {
    transform.position = new Vector2(transform.position.x + speed * Time.deltaTime, transform.position.y);
    }
    else
    {
    transform.position = new Vector2(transform.position.x - speed * Time.deltaTime, transform.position.y);
    }
    }

    void Angry()
    {
    transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
    }
    void Goback()
    {
    transform.position = Vector2.MoveTowards(transform.position, point.position, speed * Time.deltaTime);
    }
    public float speed;
    public int positionOfPatrol;
    public Transform point;
    bool moveingRight;
    Transform player;
    public float stoppingDistance;
    bool chill = false;
    bool angry = false;
    bool goBack = false;
    void Start()
    {
    player = GameObject.FindGameObjectWithTag("Player").transform;
    }
    void Update()
    {
    if (Vector2.Distance(transform.position, point.position) < positionOfPatrol && angry == false )
    {
    chill = true;
    }
    if (Vector2.Distance(transform.position, player.position) < stoppingDistance)
    {
    angry = true;
    chill = false;
    goBack = false;
    }
    if (Vector2.Distance(transform.position, player.position) > stoppingDistance)
    {
    goBack = true;
    angry = false;
    }
    if (chill == true)
    {
    Chill();
    }
    else if (angry == true)
    {
    Angry();
    }
    else if (goBack == true)
    {
    Goback();
    }
    }
    void Chill()
    {
    if (transform.position.x > point.position.x + positionOfPatrol)
    {
    moveingRight = false;
    }
    else if (transform.position.x < point.position.x - positionOfPatrol)
    {
    moveingRight = true;
    }
    if (moveingRight)
    {
    transform.position = new Vector2(transform.position.x + speed * Time.deltaTime, transform.position.y);
    }
    else
    {
    transform.position = new Vector2(transform.position.x - speed * Time.deltaTime, transform.position.y);
    }
    }

    void Angry()
    {
    transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
    }
    void Goback()
    {
    transform.position = Vector2.MoveTowards(transform.position, point.position, speed * Time.deltaTime);
    }

    • @NegaT1V174
      @NegaT1V174 4 роки тому +1

      спс

    • @murdercrow6617
      @murdercrow6617 3 роки тому +1

      Спс

    • @Cepega11
      @Cepega11 2 роки тому +1

      из души душевной душевно в душевную душу

    • @Uniter_
      @Uniter_ 9 місяців тому

      спс

    • @Bumark342-m4k
      @Bumark342-m4k 5 місяців тому

      14 ошибок блять

  • @e1ectr0n
    @e1ectr0n 4 роки тому +5

    Добавил ИИ в раннер, теперь ИИ скидывает меня с платформы :D,как бы новое препятствие,спасибо за уроки!👍

  • @ОлегПоливода-е1л
    @ОлегПоливода-е1л 4 роки тому +12

    Очень прикольно и понятно.)Вот только сможешь сделать анимацию для врага как к игроку так и к врагу)

  • @DevFillinn
    @DevFillinn 2 роки тому +2

    Голос красивый, и хорошо объяснил, спасибо за видео:3

  • @ИванКапустин-н3ю
    @ИванКапустин-н3ю 4 роки тому +1

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

  • @hurt7723
    @hurt7723 4 роки тому +6

    Очень круто !

  • @nikitafilatov6723
    @nikitafilatov6723 Рік тому

    большое прибольшое спасибо, все просто и ясно))благодарю что ваш канал есть)

  • @YarikTurboUA
    @YarikTurboUA 4 роки тому +1

    ти не уявляєш як ти мені допоміг. Вчитель з тебе топ. Дякую за інфу

  • @laukkanen568
    @laukkanen568 2 роки тому +2

    Помогите пожалуйста, никак не могу понять. Урок замечательный, но враг следует за игроком по двум осям x и y. Как сделать так, чтобы он следовал только по оси x. Заранее большое спасибо!!!!

    • @laukkanen568
      @laukkanen568 2 роки тому +1

      Всё, сам решил проблему. Мало ли кому пригодится, нужно создать дополнительный Vector2 и указать там (player.position.x, transform.position.y), тем самым оставляя ось y без изменений. И в методе MoveTowards вторым аргументом указать нашу только что созданную переменную. Для кого-то это элементарно, но для меня (я пока учусь) было не понятно...

    • @hilkevih9086
      @hilkevih9086 2 роки тому

      @@laukkanen568 скинешь код бро?) тоже учусь и не втыкаю немного.

  • @МаксимАверин-б5з
    @МаксимАверин-б5з 4 роки тому +18

    Лежу такой вчера и думаю: "У меня враги бегают от препятствия к препятствию, нужно как-то ИИ разнообразить, а то выглядит тупо"
    Graphical Design: Пс, парень, не хочешь немного интересных решений?
    Я: Блин, да как ты угадываешь-то каждый раз? :D

    • @daniil_shpilkin
      @daniil_shpilkin 3 роки тому

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

  • @sewen_ga1s229
    @sewen_ga1s229 4 роки тому +3

    Ты лучший ! Спасибо за твои спасающие уроки

  • @сергейкурило-б8ш
    @сергейкурило-б8ш 4 роки тому +3

    Хорошие у Вас уроки!! Сделай пожалуйста видео об, неуязвимости персонажа после нанесения урона, на определённое время. Спасибо

    • @ertreynscrapyard
      @ertreynscrapyard 3 роки тому

      Поздновато я однако :)
      Если ещё не нашёл, попробуй в скрипте в отнимании жизней игрока в условие запихнуть таймер, мол "если вот что-то И ПРОШЛО ТАКОЕ-ТО ВРЕМЯ, то..."

  • @Алексей_РУ
    @Алексей_РУ 3 роки тому

    Вообще круто делаешь объясняешь так что даже я понял Ты первый кто объясняет всё и понятно

    • @Алексей_РУ
      @Алексей_РУ 3 роки тому

      Если сделаю игру по твоим урокам то скиу игру сюда:)

  • @jugo-stream
    @jugo-stream 3 роки тому +1

    Спасибо. Все четко и понятно изложил, лайк однозначно.

  • @Ноунейм-г7й
    @Ноунейм-г7й 4 роки тому +7

    Привет, можешь пожалуйста сделать курс по созданию 2D стратегии?)) ооочень хочу сделать, а многое не понимаю, но думаю всем будет интересно)

  • @MaximSiamenau
    @MaximSiamenau 3 роки тому

    Отличный тутор. Сразу стало понятнее со сменой состояний. Ну и как подступиться к Navimesh

  • @masterandroid2680
    @masterandroid2680 3 роки тому +1

    Лучшее видео на эту тему)

  • @greemdim4611
    @greemdim4611 4 роки тому +1

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

    • @BeDaLeK
      @BeDaLeK 4 роки тому +1

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

    • @greemdim4611
      @greemdim4611 4 роки тому

      @@BeDaLeK ладно

    • @greemdim4611
      @greemdim4611 4 роки тому

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

  • @nezors7681
    @nezors7681 3 роки тому +5

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

  • @mrminecrafter3829
    @mrminecrafter3829 3 роки тому +1

    спасибо большое автору !!!

  • @GraphKriss
    @GraphKriss Рік тому +1

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

  • @ФаридЮсубов-с8ф
    @ФаридЮсубов-с8ф 3 роки тому

    Очень понятно объяснил, спасибо за отличный и полезный урок!

  • @WorldofHipHopRap
    @WorldofHipHopRap 3 роки тому +5

    Спасибо большое) Очень классное обучение!) А подскажите, как сделать чтобы спрайт врага поворачивался к игроку или к точке не через Flip X a через Scale X?

    • @Алексей-ю5ц4р
      @Алексей-ю5ц4р 3 роки тому +2

      transform.localScale = new Vector3(-1, 1, 1); в одну сторону
      transform.localScale = new Vector3(1, 1, 1); в другую сторону

  • @vensentlion4944
    @vensentlion4944 4 роки тому +2

    Враг патрулируют - Да, Враг идет к игроку -Да, Враг возвращается к патрулирую если герой слишком далеко - да. Собственно название видео оправдывает содержание.

  • @hasanboyhakimov9144
    @hasanboyhakimov9144 3 роки тому +1

    Спасибо вам большое

  • @drakoronus
    @drakoronus 4 роки тому +5

    Так-с. Возникла какая-то странная проблема. До написания angry и goback вместо того, чтобы патрулировать, враг останавливался на координатах point.position.x + positionOfPatrol. Когда дописал angry и goback он теперь останавливается в координатах point и двигается только если игрок появляется в его поле зрения. В чём может быть дело?
    UPD:
    Я посмотрел повнимательнее. Он не просто останавливается, он всё ещё идёт, просто его скорость настолько мала, что он изменяет одну стотысячную координаты в секунду.
    UPD2:
    Я закомментировал всё, что было связано с GoBack, и теперь всё работает правильно (Ну естественно кроме того, что он теперь не возвращается на нужное место после окончания преследования игрока).
    UPD3:
    Оказалось, нужно было поместить goBack = false в if (chill == true). Теперь всё идеально.
    Оставлю тут этот коммент, вдруг у кого похожая проблема :Р

    • @drakoronus
      @drakoronus 4 роки тому

      @@dmitriiyyyy Я уже все переделал и стер, сори

    • @Omegon1235
      @Omegon1235 3 роки тому

      Привет, у меня та же проблема, но я не могу понять куда goBack = false вписывать

  • @RazvlekaykaBY
    @RazvlekaykaBY Рік тому

    У меня Enemy стоит на месте... Проигрывается только анимация бега и всё... Всё делал как на видео.

  • @daniil_shpilkin
    @daniil_shpilkin 3 роки тому +2

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

    • @pishy_kommentu
      @pishy_kommentu 3 роки тому

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

  • @cloudy8172
    @cloudy8172 4 роки тому +2

    Слушай а можешь под следующими видосами остовлять ZIP файл с кодом или в коментах(или в опиании) просто вставлять код что-бы не корячится а так канал топ

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому +2

      Неа.

    • @vladyahnovets8867
      @vladyahnovets8867 4 роки тому

      @@graphicaldesign2776 why?

    • @qiniks9279
      @qiniks9279 4 роки тому

      @@graphicaldesign2776 Почему?)

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому +2

      @@qiniks9279 не в этом цель канала

    • @lazizabduhalimov2832
      @lazizabduhalimov2832 4 роки тому +1

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

  • @dexmund7490
    @dexmund7490 4 роки тому +3

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

    • @qterrian4118
      @qterrian4118 4 роки тому +2

      Я сделал через Flip(). Из уроков про перса.(Flip() возьми из уроков про перса )
      bool isFacingRight = true;
      void Update ()
      {
      if (transform.position.x < player.position.x && ! isFacingRight) Flip();
      else if (transform.position.x > player.position.x && isFacingRight) Flip();
      }

    • @shema6395
      @shema6395 3 роки тому

      @@qterrian4118 Привет, можешь скинуть этот ролик ? Никак не могу найти

    • @qterrian4118
      @qterrian4118 3 роки тому

      @@shema6395 ua-cam.com/video/h13scc5tPyo/v-deo.html

  • @tenebrae3761
    @tenebrae3761 4 роки тому +2

    Воооо, очень актуально, лайк.

  • @MusicStrime
    @MusicStrime 4 роки тому +4

    Как сделать чтоб приследовал игрока только по х?

    • @Шарарам-г4л
      @Шарарам-г4л 3 роки тому

      @@zz_gandon мда.. галочка на z нужна, чтобы объект не крутился, чел

    • @Шарарам-г4л
      @Шарарам-г4л 3 роки тому

      @@zz_gandon Ты не умеешь читать? Чел спросил "Как сделать чтобы враг преследовал игрока только по х?" То есть двигался в направлении к игрогу только по X, а Y игнорил, что делается через функцию Vector2.MoveTowards. Твой freeze rotation z никак не касается этой темы.

  • @Malso228
    @Malso228 3 роки тому +1

    Слушай а подскажи пожалуйста из за чего может трястись враг а то я не понимаю ? Уточню некоторые детали я поставил поин в нужное место и когда он доходит до него то наченает как дергатса либо его колбасит

  • @IloBizon1
    @IloBizon1 2 роки тому +1

    Привет. Как можно сделать такое но со врагом в воздухе?
    Хочу сделать вертолет, но не получается

  • @kolua8683
    @kolua8683 3 роки тому +1

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

  • @БексултанАбдураимов-к9б

    Спасибо!!!! ТЫ легенда!!!

  • @antonmiller1364
    @antonmiller1364 4 роки тому +3

    GameObject.FindGameObjectsWithTag("Player").transform ne rabotaet. Po4emu?

    • @thesixxteenteam4736
      @thesixxteenteam4736 4 роки тому +4

      Anton Miller, FindGameObjectsWithTag убери букву s

  • @ICECREAM-sy4dq
    @ICECREAM-sy4dq 4 роки тому +4

    Как повернуть его? А то ходит и в одну сторону смотрит

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      Через Flip.

    • @alexcall5476
      @alexcall5476 4 роки тому

      @@graphicaldesign2776 а что делать, если при использовании метода flip в методе chill всё ок, но ИИ при преследовании не меняет направление, как и при уходе в точку. А если поставить ссылку на метод flip в методы angry и goBack, то ИИ начинает вертеться.

    • @lazizabduhalimov2832
      @lazizabduhalimov2832 4 роки тому

      @@alexcall5476 тут надо поменять булевые переменные chill, angry, goBack

  • @SlavonMasterJack
    @SlavonMasterJack 4 роки тому +1

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

  • @gm_Maker
    @gm_Maker 4 роки тому +2

    Офигенно! :)

  • @banmrp8369
    @banmrp8369 3 роки тому +2

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

  • @harek1671
    @harek1671 2 роки тому

    Задумка вроде как неплохая,но код не работает. Враг всё время следит за игроком по осиY , даже если тот на другом конце карты, патрулирование вообще не происходит, возврат только к точке+дист.патрул отрабатывает ,ну и срабатывание на присутствие игрока само собой.

  • @markkamill4809
    @markkamill4809 4 роки тому +1

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

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      Так это только поворот спрайта, с зависимости от стороны движения. Положительное и отрицательное по оси Х.

    • @Omegon1235
      @Omegon1235 3 роки тому

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

  • @nikitaegle5533
    @nikitaegle5533 3 роки тому

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

  • @dilari2124
    @dilari2124 4 роки тому +1

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

  • @koro4egovorya519
    @koro4egovorya519 4 роки тому +1

    Что делать если враг идет в право до бесконечности?

  • @kanon4222
    @kanon4222 Рік тому

    Почему в каждом видео все поля всегда публичные. Их надо объявлять через SerializeField это же база...

  • @jrjddyzmdjdjf3730
    @jrjddyzmdjdjf3730 4 роки тому

    Ой спасибо сильно тупил над етим захожу в Гугл и пишу "как сделать ии врагу" и вижу твой видос когда Ти разказал все на подзадачи сразу все понял.

  • @DossBot007
    @DossBot007 3 роки тому

    Есть косячок с этим слежением, если к примеру в момент когда бот тебя агрит, прыгаем через него и он взлетает за нами) Как это пофиксить? Заморозка по Y не помогает.

  • @demonASTRx
    @demonASTRx 2 роки тому

    Большое спасибо.
    Но вот незадача. Когда накидываю на NPS "rigidbody" мой главный герой перестает двигаться, в чем может быть дело? На остальных обьектах без скриптов висит RB и все норм.

  • @sdeithwen1171
    @sdeithwen1171 4 роки тому +1

    А можно сделать так, чтобы во время выполнения GoBack или Angry он прыгал если перед ним препятствие?

    • @sdeithwen1171
      @sdeithwen1171 4 роки тому

      Если кому нужно: Просто добавьте прыжок в другой скрипт и тогда оба скрипта (Прыжок и и страж) будут работать

  • @oleksandrkolomiiets9978
    @oleksandrkolomiiets9978 4 роки тому +2

    Приветствую , очень крутые уроки!
    Хотел бы узнать кто-то знает как сделать так , что б враг разворачивался в ту сторону , в которую идет?

    • @MegaAlexprim
      @MegaAlexprim 4 роки тому

      привет ты разобрался с разворотом противника?

    • @ПавелКурзо
      @ПавелКурзо 4 роки тому

      @@MegaAlexprim привет, может ты разобрался?

    • @MegaAlexprim
      @MegaAlexprim 4 роки тому

      @@ПавелКурзо я забил на этот урок.

    • @doctorixx_
      @doctorixx_ 3 роки тому

      Эм

    • @doctorixx_
      @doctorixx_ 3 роки тому

      Это легко

  • @hellpin5008
    @hellpin5008 3 роки тому

    У меня проблема, враг сначала идет влево, доходит до конца положенного места, идет потом направо и как только доходит до края позиции, он стопориться и ни идет ни куда, если точку двигать, то он снова оживает, но уже не может повернуть налево. Так же ии изначально нацелен на меня, если в коде добавить что в состоянии angry другие состояния отключаются.

    • @ruslanukr7142
      @ruslanukr7142 2 роки тому

      Если разобрался, скажи как решить

  • @trulik6879
    @trulik6879 3 роки тому +1

    Помогите пожалуста . Я добавил стрельбу етому боту но он не разворачиваетса и тем самым точка из которой вылетают пули смотрит в одно положение не зависимо где игрок с права или слева (когда гонитса за игроком).
    Просьба помогите его развернуть с кординатами

  • @ПавелБайнов-ш3я
    @ПавелБайнов-ш3я 4 роки тому

    Будет ли видео о создании машины в tds шутер?

  • @SnowDice123
    @SnowDice123 3 роки тому

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

  • @ЦойВероника-л7н

    Что делать он на месте прыгает

  • @samuraiji6522
    @samuraiji6522 3 роки тому

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

  • @Rikan19
    @Rikan19 4 роки тому +1

    а у тебя есть готовые скрипты?

  • @UNREAL4ever
    @UNREAL4ever 4 роки тому

    Привет, клевое видео. А можешь сделать урок типа антагонист бежит за игроком, а когда он его настигает то игрок умирает. Или как делать каст сцены

  • @Люмт3
    @Люмт3 3 роки тому

    Напишите в ответы конечный код, просто я долго его писал, а он оказался неправильным = я криворукий. Короче, мне лень переписывать

  • @skrizford
    @skrizford 3 роки тому

    а спрайты ты где берешь если не секрет

  • @topazich_main
    @topazich_main 2 роки тому

    Как сделать тоже самое, только в 3д игре??

  • @juuzua
    @juuzua 3 роки тому

    "искусственный интеллект" громко сказано)

  • @Uniter_
    @Uniter_ 2 роки тому

    подскажите пж что не так с кодом
    (58,10): error CS0102: The type 'PatrulSlug' already contains a definition for 'Chill'
    (78,10): error CS0102: The type 'PatrulSlug' already contains a definition for 'Angry'
    (82,10): error CS0102: The type 'PatrulSlug' already contains a definition for 'GoBack'\
    вот код:
    public float speed;
    public int positionOfPatrol;
    public Transform point;
    bool moveInRight;
    Transform Player;
    public float stoppingDistance = 10;
    bool Chill = false;
    bool Angry = false;
    bool GoBack = false;
    void Start()
    {
    Player = gameObject.FindGameObjectWithTag("Player").transform;
    }
    void Update()
    {
    if (Vector2.Distance(transform.position, point.position) < positionOfPatrol && Angry == false)
    {
    Chill = true;
    }
    if (Vector2.Distance(transform.position = Player.position) < stoppingDistance)
    {
    angry = true;
    }
    if (Vector2.Distance(transform.position = Player.position) > stoppingDistance)
    {
    GoBack = true;
    }
    if (chill == true)
    {
    chill();
    }
    else if (angry == true)
    {
    Angry();
    Chill = false;
    goBack = false;
    }
    else if (goBack == true)
    {
    GoBack();
    angry = false;
    }
    }
    void Chill()
    {
    if (transform.position.x < point.position.x + positionOfPatrol)
    {
    moveInRight= false;
    }
    else if (transform.position.x > point.position.x + positionOfPatrol)
    {
    moveInRight= true;
    }
    if (moveInRight )
    {
    transform.position = new Vector2(transform.position.x + speed * Time.deltaTime, transform.position.y);
    }
    else
    {
    transform.position = new Vector2(transform.position.x - speed * Time.deltaTime, transform.position.y);
    }
    }
    void Angry()
    {
    transform.position = Vector2.MoveTowards(transform.position, Player.position, speed * Time.deltaTime);
    }
    void GoBack()
    {
    transform.position = Vector2.MoveTowards(transform.position, point.position, speed * Time.deltaTime);
    }
    }

  • @tyloo2677
    @tyloo2677 Рік тому

    почему у меня бот уходит в право и совершает суицид :(

  • @r1t024
    @r1t024 3 роки тому

    Итак, спасибо за урок, но возник вот такой вопрос: А как сделать возврат к исходной точке не только по оси x, но и по оси y? Буду очень благодарен если поможете, ну и сам поищу, если что-то найду, то отредачу.

    • @d1kay
      @d1kay 2 роки тому

      не нашел?

  • @aliexpress4830
    @aliexpress4830 4 роки тому

    Привет,у меня тут проблема.Мой враг когда патрулирует идет назад спиной вперед.Тоесть moveingRight не работает что мне делать?

  • @darksidemods3134
    @darksidemods3134 4 роки тому +1

    О спасибо крутой Ии

  • @Vilvett1918
    @Vilvett1918 2 роки тому

    Всё никак не пойму, откуда у тебя при нажатии на врага появился Speed, Point и т.д если ты в нём ничего толком не написал?

  • @ghiant02
    @ghiant02 3 роки тому

    здраствуйте!
    у меня такая проблема то-что когда мой персонаж сталкивается с каким-то обьектом(с colider box) игрок начинает кружиться по оси z, у меня Unity2D в стиле TopDown

    • @roundzi8047
      @roundzi8047 3 роки тому

      Добавь на твоего персанажа Rigidbody 2D если в 2d делаешь и заблакируй ось z

    • @roundzi8047
      @roundzi8047 3 роки тому

      И вообще то макстер все показал в своём ролике. Внимательнее смотреть надо

    • @ghiant02
      @ghiant02 3 роки тому

      Я давно эту проблему решил просто комментарии забыл удалить

  • @posscreeptu
    @posscreeptu 4 роки тому

    Graphical Design Такой вопрос, почему когда я запрещаю перемещение по x, и разрешаю по y то sprite начинает мерцать?

    • @posscreeptu
      @posscreeptu 4 роки тому

      так и еще и плавает

  • @Baga523
    @Baga523 3 роки тому

    Что делать если враг не переворачивается за тобой??

  • @abysswatcher5844
    @abysswatcher5844 4 роки тому

    Помогите пожалуйста. Такая проблема, Ни одна из перегрузок метода Distance не принимает 3 аргументов.
    Не запускается программа. Сделал всё как на видео.

    • @lazizabduhalimov2832
      @lazizabduhalimov2832 4 роки тому

      Вы не сделали как показано на видео, добавили чтото лишнее в Vector2.Distance

    • @abysswatcher5844
      @abysswatcher5844 4 роки тому

      @@lazizabduhalimov2832 О, спасибо. Правда боюсь, что за 2 месяца проблема успела решиться))

  • @кточтотин
    @кточтотин 4 роки тому

    Патрулирование
    Лол я один вспомнил мем про педалирование?
    И да спасибо за урок

  • @ytl1kez143
    @ytl1kez143 3 роки тому

    как это можно сделать в 2д игре в корой вид сверху

  • @Anciferfov
    @Anciferfov 4 роки тому

    Почему раз ты разделяешь состояния, не используешь enum?

  • @whyde3693
    @whyde3693 3 роки тому

    У меня 2 вопроса.
    1) Не проще ли сделать состояния через enum?
    2) Как сделать нормально так, чтобы враг агрился не по расстоянию до игрока а когда увидит? Чтобы этому могла помешать стенка. Используя данный способ обнаружения игрока врядли это выйдет реализовать.

    • @txson_inc
      @txson_inc 2 роки тому

      вряд-ли мой ответ сейчас поможет, но можно попробовать через Raycast

  • @alexcall5476
    @alexcall5476 4 роки тому

    Почему у меня мерцает игрок, когда проходит через объекты на заднем фоне или когда задний фон - это какая-то фотография?

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      Фотография? Ты о чем?

    • @alexcall5476
      @alexcall5476 4 роки тому

      @@graphicaldesign2776 задний фон, спасибо, я понял в чём дело, нужно просто поднять уровень слоя персонажа

    • @alexcall5476
      @alexcall5476 4 роки тому

      @@graphicaldesign2776 а как исправить проблему с ИИ, когда я в его коде закинул ссылку на метод flip в метод chill, angry, goBack, он начинает адово вертеться. Можете сказать, куда нужно закинуть ссылку на метод, чтобы ИИ нормально разворачивался в любом состоянии

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      @@alexcall5476 в Update

    • @alexcall5476
      @alexcall5476 4 роки тому

      @@graphicaldesign2776 а куда именно, я ставлю в метод update во все if.

  • @ze1st_
    @ze1st_ 3 роки тому

    а что делать, если у меня , когда игрок выше врага, то врага дергает вверх(как я понял именно в состоянии Angry)

    • @ze1st_
      @ze1st_ 3 роки тому

      а, всё. Просто кое чё поменял в МувеТовардс

    • @vombox9204
      @vombox9204 3 роки тому

      не могли бы вы уточнить,что именно поменяли?

  • @КириллКаримов-в1ю
    @КириллКаримов-в1ю 4 роки тому

    По твоим урокам игру для Google Play делаю, пока все шикарно) Но я думаю тебе стоит выкладывать скрипты под видео

    • @UNREAL4ever
      @UNREAL4ever 4 роки тому

      не, смысл в программировании тогда

    • @maxlmo.
      @maxlmo. 4 роки тому

      @@UNREAL4ever все таки надо скрипти, если уже все виучил и лень переписивать код с видео

    • @syliix0
      @syliix0 4 роки тому +1

      @@maxlmo. ты русский то не выучил, c# явно не выучил ты

  • @grishagrishin3482
    @grishagrishin3482 3 роки тому

    А как вообще создать папку врага в Unity ?

  • @РАСКАЛЬПРО
    @РАСКАЛЬПРО 3 роки тому

    как сделать поворот врага?

  • @arisan9724
    @arisan9724 4 роки тому +1

    ты луучший

  • @monsterclash6790
    @monsterclash6790 4 роки тому

    Хмм, а если подпрыгнуть, то этот страж полетит. А как сделать так, чтобы он по оси Y не двигался?

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      Запретить движение по Y, разрешить движение по X.

    • @monsterclash6790
      @monsterclash6790 4 роки тому

      @@graphicaldesign2776, а какой командой это сделать в твоём коде? Извини за то, что тебя беспокою, но я начинающий программист и всему учусь у тебя. И ещё, у меня давно висит вопрос про то, как сделать переменную, чтобы можно было к ней обращаться к ней во всём проекте. Например, деньги. Вот тебе идейка для нового видоса! Ещё раз извиняюсь за беспокойство.

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      Для обращения к переменной, можно использовать public.
      В моем скрипте нет команды по прыжкам.

    • @monsterclash6790
      @monsterclash6790 4 роки тому

      @@graphicaldesign2776 ок, спасибо

    • @vombox9204
      @vombox9204 3 роки тому

      Вы решли данную проблему?

  • @alphasamec5348
    @alphasamec5348 4 роки тому

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

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      А что подсказать то?

    • @alphasamec5348
      @alphasamec5348 4 роки тому

      @@graphicaldesign2776 Почему страж бесконечно бежит влево))

    • @syliix0
      @syliix0 4 роки тому

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

    • @syliix0
      @syliix0 4 роки тому

      Ну по крайней мере я написал код верно

  • @lazizabduhalimov2832
    @lazizabduhalimov2832 4 роки тому

    Если кто сможет помогите пожалуйста: 1)Что лучше поворот врага через flip или rotate
    2) При повороте врага я сделал rotete 0, 180, 0 но раз в 15 раз враг просто не поворачивается и ходит лунной походкой Майкла Джексона ( и при angry мой ИИ поворачивается и при goBack)

  • @cartonig869
    @cartonig869 3 роки тому

    Привет,как сделать так что бы за игроков играл сам бот?И использовал бафы тоже сам

    • @Jam867
      @Jam867 3 роки тому +2

      это надо писать ИИ

  • @Uroboros303
    @Uroboros303 3 роки тому

    Какой язык, это с#?

  • @hummylisii8237
    @hummylisii8237 4 роки тому

    А что если он упадет например в яму но с прыжка он сможет выпрыгнуть.Как это сделать)?

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому +2

      Сделать еще один метод для этого.

    • @lazizabduhalimov2832
      @lazizabduhalimov2832 4 роки тому

      У него уже был урок на эту тему, его надо добавить

  • @UATeam662
    @UATeam662 4 роки тому

    привет всё сделал правильн и выкидывает ету шыбку
    UnassignedReferenceException: The variable point of NewBehaviourScript1 has not been assigned.
    You probably need to assign the point variable of the NewBehaviourScript1 script in the inspector.
    UnityEngine.Transform.get_position () in :0
    NewBehaviourScript1.Update () (at Assets/New Folder/NewBehaviourScript1.cs:30)

  • @ze1st_
    @ze1st_ 3 роки тому

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

    • @ze1st_
      @ze1st_ 3 роки тому

      Нуу, я короче уже сам всё сделал , оказывается просто попутал кое - где)

  • @The_Mavrik
    @The_Mavrik 4 роки тому

    А если таких ИИ 100 штук на 1 уровне, то будет слишком затратно, чтоб каждый ии каждый update проверял дистанцию

    • @kroniecraft8339
      @kroniecraft8339 4 роки тому

      Зачем 100? Не представляю себе как 100 таких в 1лвл запихнуть

    • @lazizabduhalimov2832
      @lazizabduhalimov2832 4 роки тому

      Это ии похожий на врагов в Katana Zero а там максимум 15врагов в 1 уровне

  • @МишаКречетов-у2у
    @МишаКречетов-у2у 2 роки тому

    круто

  • @chozagame3926
    @chozagame3926 4 роки тому +2

    Привет, можешь рассказать какие книги ты читал по C# или unity?

    • @doctorixx_
      @doctorixx_ 3 роки тому

      "C# для маленький и тупых" от ExtremeCode

  • @mrminecrafter3829
    @mrminecrafter3829 3 роки тому

    крутое видео

  • @aaroncasper4464
    @aaroncasper4464 4 роки тому

    привет ребят, можете помочь с проблемой, я генерирую мир 2d и бывает что блок появляется прям на месте моего персонажа, и персонаж застревает в полигон коллайдере земли и как сделать так что если он ВНУТРИ коллайдер полигона, он и выйти не может и не знаю как перезагрузить уровень в таком случае ПАМИГИТИ 2 ДНЯ УЖЕ СИЖУ

  • @МаксимСоколовский-ц6г

    Благодаря тебе я сделал диплом, кекв)