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

  Рет қаралды 47,073

Graphical Design

Graphical Design

4 жыл бұрын

В этом видео я покажу как сделать ИИ врага таким образом, чтоб у него было три состояния: патрулирование, преследование и возврат к точке.
Номер карты для поддержки - 4149629398195479
/ graphicaldesignua - мой патреон для поддержки)
t.me/joinchat/K3HCV0nUjP4X7kC... - телеграм канал в котором можете пообщаться с другими разработчиками.
unity.com/ru - ссылка на Unity

Пікірлер: 253
@sunq_dev
@sunq_dev 4 жыл бұрын
Каво???? Иду с работы и думаю, надо найти как сделать вражеский ИИ с патрулированием и чтоб от него можно было убежать для добавления к себе в игру. Пришел, ничего подобного не нашел, отложил до завтра. Перед сном, смотрю в рекомендациях твой видос вышел... кааапец. Спасибо большое за видео, ты топ
@chancetrace4532
@chancetrace4532 2 жыл бұрын
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 2 жыл бұрын
@Chance Trace Definitely, I have been using instaflixxer for since november myself =)
@aceskylar9176
@aceskylar9176 2 жыл бұрын
@Chance Trace Definitely, been using instaflixxer for since december myself :D
@xanderwestin7247
@xanderwestin7247 2 жыл бұрын
@Chance Trace definitely, I have been watching on Instaflixxer for months myself :D
@morgankamari9985
@morgankamari9985 2 жыл бұрын
@Chance Trace Definitely, I've been using Instaflixxer for since november myself =)
@wawsy
@wawsy 2 жыл бұрын
Спасибо огромное!!! Это именно то, чего мне не хватало для моей игры...
@user-ix7gq8zc3k
@user-ix7gq8zc3k 3 жыл бұрын
Очень помогло, внес огромную ясность во всю эту тему. Спасибо большое!
@lucherpro5429
@lucherpro5429 3 жыл бұрын
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 3 жыл бұрын
спс
@murdercrow6617
@murdercrow6617 2 жыл бұрын
Спс
@user-pq5cv2og4u
@user-pq5cv2og4u 2 жыл бұрын
из души душевной душевно в душевную душу
@Uniter_
@Uniter_ 2 ай бұрын
спс
@sewen_ga1s229
@sewen_ga1s229 4 жыл бұрын
Ты лучший ! Спасибо за твои спасающие уроки
@nikitafilatov6723
@nikitafilatov6723 Жыл бұрын
большое прибольшое спасибо, все просто и ясно))благодарю что ваш канал есть)
@user-dv5ue1om3m
@user-dv5ue1om3m 2 жыл бұрын
Очень понятно объяснил, спасибо за отличный и полезный урок!
@e1ectr0n
@e1ectr0n 4 жыл бұрын
Добавил ИИ в раннер, теперь ИИ скидывает меня с платформы :D,как бы новое препятствие,спасибо за уроки!👍
@user-ne2lq1zg3q
@user-ne2lq1zg3q 4 жыл бұрын
Очень прикольно и понятно.)Вот только сможешь сделать анимацию для врага как к игроку так и к врагу)
@jugo-stream
@jugo-stream 3 жыл бұрын
Спасибо. Все четко и понятно изложил, лайк однозначно.
@user-wb1yr6hg6i
@user-wb1yr6hg6i 4 жыл бұрын
Оо, то, что мне нужно, спасибо заранее
@DevFillinn
@DevFillinn Жыл бұрын
Голос красивый, и хорошо объяснил, спасибо за видео:3
@hurt7723
@hurt7723 4 жыл бұрын
Очень круто !
@kolua8683
@kolua8683 3 жыл бұрын
Я немного не понял насчет поворота врага? , что именно его поворачивает? я написал часть кода про поворот , но он не поворачиваеться в сторону игрока , всегда в одну сторону смотрит
@Malso228
@Malso228 2 жыл бұрын
Слушай а подскажи пожалуйста из за чего может трястись враг а то я не понимаю ? Уточню некоторые детали я поставил поин в нужное место и когда он доходит до него то наченает как дергатса либо его колбасит
@mrminecrafter3829
@mrminecrafter3829 2 жыл бұрын
спасибо большое автору !!!
@hasanboyhakimov9144
@hasanboyhakimov9144 2 жыл бұрын
Спасибо вам большое
@dilari2124
@dilari2124 3 жыл бұрын
Привет, вроде всё правильно сделал, но ошибка появляется, когда враг начинает патрулировать он доходит до дистанции патрулирования и его начинает трести назад он не идёт, может подскажешь в чём именно ошибка?
@user-vr5lm3ye7e
@user-vr5lm3ye7e 3 жыл бұрын
Вообще круто делаешь объясняешь так что даже я понял Ты первый кто объясняет всё и понятно
@user-vr5lm3ye7e
@user-vr5lm3ye7e 3 жыл бұрын
Если сделаю игру по твоим урокам то скиу игру сюда:)
@tenebrae3761
@tenebrae3761 4 жыл бұрын
Воооо, очень актуально, лайк.
@demonASTRx
@demonASTRx 2 жыл бұрын
Большое спасибо. Но вот незадача. Когда накидываю на NPS "rigidbody" мой главный герой перестает двигаться, в чем может быть дело? На остальных обьектах без скриптов висит RB и все норм.
@masterandroid2680
@masterandroid2680 3 жыл бұрын
Лучшее видео на эту тему)
@gm_Maker
@gm_Maker 4 жыл бұрын
Офигенно! :)
@user-qw1xt7ow6d
@user-qw1xt7ow6d 2 жыл бұрын
Отличный тутор. Сразу стало понятнее со сменой состояний. Ну и как подступиться к Navimesh
@samuraiji6522
@samuraiji6522 2 жыл бұрын
Привет, вроде с точкой поинт и скриптом все делал правильно, но враг вертикально трясется в состоянии GoBack. Не понимаю почему.
@DossBot007
@DossBot007 2 жыл бұрын
Есть косячок с этим слежением, если к примеру в момент когда бот тебя агрит, прыгаем через него и он взлетает за нами) Как это пофиксить? Заморозка по Y не помогает.
@WorldofHipHopRap
@WorldofHipHopRap 3 жыл бұрын
Спасибо большое) Очень классное обучение!) А подскажите, как сделать чтобы спрайт врага поворачивался к игроку или к точке не через Flip X a через Scale X?
@user-kb3ds5su2h
@user-kb3ds5su2h 2 жыл бұрын
transform.localScale = new Vector3(-1, 1, 1); в одну сторону transform.localScale = new Vector3(1, 1, 1); в другую сторону
@aliexpress4830
@aliexpress4830 3 жыл бұрын
Привет,у меня тут проблема.Мой враг когда патрулирует идет назад спиной вперед.Тоесть moveingRight не работает что мне делать?
@user-zy3xy2xj3o
@user-zy3xy2xj3o Жыл бұрын
Спасибо!!!! ТЫ легенда!!!
@daniil_shpilkin
@daniil_shpilkin 3 жыл бұрын
помоги пожалуйста, у меня не получается сделать так, что бы враг ходил от препятствия к препятствию. у меня получается так что, враг идет на лево и не меняет направления...
@Anciferfov
@Anciferfov 4 жыл бұрын
Почему раз ты разделяешь состояния, не используешь enum?
@IloBizon1
@IloBizon1 2 жыл бұрын
Привет. Как можно сделать такое но со врагом в воздухе? Хочу сделать вертолет, но не получается
@nikitaegle5533
@nikitaegle5533 2 жыл бұрын
Урок классный, но вопросик, как сделать так, чтобы враг не подходил в плотную и было небольшое расстояние
@YarikTurboUA
@YarikTurboUA 3 жыл бұрын
ти не уявляєш як ти мені допоміг. Вчитель з тебе топ. Дякую за інфу
@user-jv1cc6no5l
@user-jv1cc6no5l 4 жыл бұрын
Лежу такой вчера и думаю: "У меня враги бегают от препятствия к препятствию, нужно как-то ИИ разнообразить, а то выглядит тупо" Graphical Design: Пс, парень, не хочешь немного интересных решений? Я: Блин, да как ты угадываешь-то каждый раз? :D
@daniil_shpilkin
@daniil_shpilkin 3 жыл бұрын
помоги пожалуйста, у меня не получается сделать так, что бы враг ходил от препятствия к препятствию. у меня получается так что, враг идет на лево и не меняет направления...
@GraphKriss
@GraphKriss 4 ай бұрын
А как сделать нейтрального ИИ? Для окружения допустим в городе?
@user-ye8ff4rw6o
@user-ye8ff4rw6o 4 жыл бұрын
Хорошие у Вас уроки!! Сделай пожалуйста видео об, неуязвимости персонажа после нанесения урона, на определённое время. Спасибо
@ertreynscrapyard
@ertreynscrapyard 2 жыл бұрын
Поздновато я однако :) Если ещё не нашёл, попробуй в скрипте в отнимании жизней игрока в условие запихнуть таймер, мол "если вот что-то И ПРОШЛО ТАКОЕ-ТО ВРЕМЯ, то..."
@Foxmine_Studio_official
@Foxmine_Studio_official 7 ай бұрын
а что делать если в консоле пишет ошибка и там команда stoppingDistance не существует в текущем контексте ?
@skrizford
@skrizford 3 жыл бұрын
а спрайты ты где берешь если не секрет
@user-nn3du7eg7s
@user-nn3du7eg7s 4 жыл бұрын
Привет, можешь пожалуйста сделать курс по созданию 2D стратегии?)) ооочень хочу сделать, а многое не понимаю, но думаю всем будет интересно)
@posscreeptu
@posscreeptu 3 жыл бұрын
Graphical Design Такой вопрос, почему когда я запрещаю перемещение по x, и разрешаю по y то sprite начинает мерцать?
@posscreeptu
@posscreeptu 3 жыл бұрын
так и еще и плавает
@user-ff7og2by8k
@user-ff7og2by8k 4 жыл бұрын
Будет ли видео о создании машины в tds шутер?
@darksidemods3134
@darksidemods3134 4 жыл бұрын
О спасибо крутой Ии
@jrjddyzmdjdjf3730
@jrjddyzmdjdjf3730 4 жыл бұрын
Ой спасибо сильно тупил над етим захожу в Гугл и пишу "как сделать ии врагу" и вижу твой видос когда Ти разказал все на подзадачи сразу все понял.
@SnowDice123
@SnowDice123 3 жыл бұрын
Здравствуйте у меня появилась проблема враг бесконечно идёт влево и не потрулирует как решить данную проблему
@Vilvett1918
@Vilvett1918 2 жыл бұрын
Всё никак не пойму, откуда у тебя при нажатии на врага появился Speed, Point и т.д если ты в нём ничего толком не написал?
@vensentlion4944
@vensentlion4944 4 жыл бұрын
Враг патрулируют - Да, Враг идет к игроку -Да, Враг возвращается к патрулирую если герой слишком далеко - да. Собственно название видео оправдывает содержание.
@koro4egovorya519
@koro4egovorya519 3 жыл бұрын
Что делать если враг идет в право до бесконечности?
@nezors7681
@nezors7681 2 жыл бұрын
автор, скинь пожалуйста код, для большей наглядности(если можно)
@markkamill4809
@markkamill4809 4 жыл бұрын
Спасибо за видео. Подскажите как сделать так, что бы враг отслеживал где находится игрок, если игрок перепрыгнет его то враг должен повернуться за ним. В добавок к этому коду по патрулированию аи.
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Так это только поворот спрайта, с зависимости от стороны движения. Положительное и отрицательное по оси Х.
@Omegon1235
@Omegon1235 2 жыл бұрын
@@graphicaldesign2776 здравствуй автор, у меня проблема, враг доходит до точки и замирает но когда он видит игрока он начинает за ним следовать
@trulik6879
@trulik6879 2 жыл бұрын
Помогите пожалуста . Я добавил стрельбу етому боту но он не разворачиваетса и тем самым точка из которой вылетают пули смотрит в одно положение не зависимо где игрок с права или слева (когда гонитса за игроком). Просьба помогите его развернуть с кординатами
@r1t024
@r1t024 3 жыл бұрын
Итак, спасибо за урок, но возник вот такой вопрос: А как сделать возврат к исходной точке не только по оси x, но и по оси y? Буду очень благодарен если поможете, ну и сам поищу, если что-то найду, то отредачу.
@d1kay
@d1kay Жыл бұрын
не нашел?
@arisan9724
@arisan9724 4 жыл бұрын
ты луучший
@greemdim4611
@greemdim4611 3 жыл бұрын
Очень крутой урок, но можешь сделать туториал, где враг также будет патрулировать местность, а когда к нему подойдёт персонаж, то враг будет в него стрелять и отнимать у него жизни. Было бы очень круто, если сделаешь такой туториал, я просто рылся в туториалах, нашел кое что, но это не совсем то что нужно. Хотелось бы получить туториал от тебя, ты один из лучших обучающих каналов на юнити
@BeDaLeK
@BeDaLeK 3 жыл бұрын
Вы меня простите, но тут на канале есть текущий урок - где всё разложено по полочкам. Есть урок по системе здоровья. Есть уроки по стрельбе. Уроки по поведению противников. Если Вы не в состоянии объединить их вместе - может стоит задуматься о том - стоит ли Вам делать игры? По всем ситуациям из всех игр видео уроков не наделаешься - жизни не хватит. А просто копировать чужой код - от этого мало чему научишься.
@greemdim4611
@greemdim4611 3 жыл бұрын
@@BeDaLeK ладно
@greemdim4611
@greemdim4611 3 жыл бұрын
Я просто являюсь художником и неплохо рисую анимации, персонажей в векторной графике, использовал свои навыки в двух завершенных проектах, но захотелось именно самому сделать игру
@SlavonMasterJack
@SlavonMasterJack 4 жыл бұрын
Мой красавец почему-то приходит к одной точке, да так и стоит. Если его оттаскивать - то он возвращается к точке, но на патрулирование фыркает. Если оттащить его за шкварник вправо - вообще обижается и остается на месте. Проверил код - все верно. В чем может быть загвоздка?
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Все еще, в скрипте
@laukkanen568
@laukkanen568 2 жыл бұрын
Помогите пожалуйста, никак не могу понять. Урок замечательный, но враг следует за игроком по двум осям x и y. Как сделать так, чтобы он следовал только по оси x. Заранее большое спасибо!!!!
@laukkanen568
@laukkanen568 2 жыл бұрын
Всё, сам решил проблему. Мало ли кому пригодится, нужно создать дополнительный Vector2 и указать там (player.position.x, transform.position.y), тем самым оставляя ось y без изменений. И в методе MoveTowards вторым аргументом указать нашу только что созданную переменную. Для кого-то это элементарно, но для меня (я пока учусь) было не понятно...
@hilkevih9086
@hilkevih9086 Жыл бұрын
@@laukkanen568 скинешь код бро?) тоже учусь и не втыкаю немного.
@banmrp8369
@banmrp8369 3 жыл бұрын
а где можно скрипт скачать ?
@user-qi4dy8ql7m
@user-qi4dy8ql7m 4 жыл бұрын
Всё ок.
@sdeithwen1171
@sdeithwen1171 3 жыл бұрын
А можно сделать так, чтобы во время выполнения GoBack или Angry он прыгал если перед ним препятствие?
@sdeithwen1171
@sdeithwen1171 3 жыл бұрын
Если кому нужно: Просто добавьте прыжок в другой скрипт и тогда оба скрипта (Прыжок и и страж) будут работать
@UNREAL4ever
@UNREAL4ever 4 жыл бұрын
Привет, клевое видео. А можешь сделать урок типа антагонист бежит за игроком, а когда он его настигает то игрок умирает. Или как делать каст сцены
@whyde3693
@whyde3693 3 жыл бұрын
У меня 2 вопроса. 1) Не проще ли сделать состояния через enum? 2) Как сделать нормально так, чтобы враг агрился не по расстоянию до игрока а когда увидит? Чтобы этому могла помешать стенка. Используя данный способ обнаружения игрока врядли это выйдет реализовать.
@user-by3mi6ee3d
@user-by3mi6ee3d Жыл бұрын
вряд-ли мой ответ сейчас поможет, но можно попробовать через Raycast
@dexmund7490
@dexmund7490 3 жыл бұрын
как написать условие, при котором спрайт врага будет поворачиваться в сторону движения?
@qterrian4118
@qterrian4118 3 жыл бұрын
Я сделал через 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 kzbin.info/www/bejne/nmKWpJaZatmDr9E
@hellpin5008
@hellpin5008 2 жыл бұрын
У меня проблема, враг сначала идет влево, доходит до конца положенного места, идет потом направо и как только доходит до края позиции, он стопориться и ни идет ни куда, если точку двигать, то он снова оживает, но уже не может повернуть налево. Так же ии изначально нацелен на меня, если в коде добавить что в состоянии angry другие состояния отключаются.
@ruslanukr7142
@ruslanukr7142 Жыл бұрын
Если разобрался, скажи как решить
@aaroncasper4464
@aaroncasper4464 4 жыл бұрын
привет ребят, можете помочь с проблемой, я генерирую мир 2d и бывает что блок появляется прям на месте моего персонажа, и персонаж застревает в полигон коллайдере земли и как сделать так что если он ВНУТРИ коллайдер полигона, он и выйти не может и не знаю как перезагрузить уровень в таком случае ПАМИГИТИ 2 ДНЯ УЖЕ СИЖУ
@cloudy8172
@cloudy8172 4 жыл бұрын
Слушай а можешь под следующими видосами остовлять ZIP файл с кодом или в коментах(или в опиании) просто вставлять код что-бы не корячится а так канал топ
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Неа.
@vladyahnovets8867
@vladyahnovets8867 4 жыл бұрын
@@graphicaldesign2776 why?
@qiniks9279
@qiniks9279 3 жыл бұрын
@@graphicaldesign2776 Почему?)
@graphicaldesign2776
@graphicaldesign2776 3 жыл бұрын
@@qiniks9279 не в этом цель канала
@lazizabduhalimov2832
@lazizabduhalimov2832 3 жыл бұрын
Знаете ребятки смысл в том чтобы хотя бы переписать, так хоть что то запомнишь, но просто скопировав забудешь более чем половину кода
@ytl1kez143
@ytl1kez143 3 жыл бұрын
как это можно сделать в 2д игре в корой вид сверху
@user-rp9vj5hk2s
@user-rp9vj5hk2s 2 жыл бұрын
круто
@lazizabduhalimov2832
@lazizabduhalimov2832 3 жыл бұрын
Если кто сможет помогите пожалуйста: 1)Что лучше поворот врага через flip или rotate 2) При повороте врага я сделал rotete 0, 180, 0 но раз в 15 раз враг просто не поворачивается и ходит лунной походкой Майкла Джексона ( и при angry мой ИИ поворачивается и при goBack)
@Uroboros303
@Uroboros303 2 жыл бұрын
Какой язык, это с#?
@mrminecrafter3829
@mrminecrafter3829 2 жыл бұрын
крутое видео
@Baga523
@Baga523 3 жыл бұрын
Что делать если враг не переворачивается за тобой??
@user-dg4jf3vn7f
@user-dg4jf3vn7f 5 ай бұрын
Что делать он на месте прыгает
@alphasamec5348
@alphasamec5348 3 жыл бұрын
Привет, подскажи пожалуйста почему у меня страж бесконечно в лево бежит а не патрулирует? Когда меня видит, за мной бегает, с этим все норм
@graphicaldesign2776
@graphicaldesign2776 3 жыл бұрын
А что подсказать то?
@alphasamec5348
@alphasamec5348 3 жыл бұрын
@@graphicaldesign2776 Почему страж бесконечно бежит влево))
@maximkarachevasmr
@maximkarachevasmr 3 жыл бұрын
Поменяй место поинта направо у тебя места мало, он по факту где должен контролить стоит блок он в нём застревает
@maximkarachevasmr
@maximkarachevasmr 3 жыл бұрын
Ну по крайней мере я написал код верно
@user-sf5vi3hr6u
@user-sf5vi3hr6u 3 жыл бұрын
как сделать поворот врага?
@chozagame3926
@chozagame3926 4 жыл бұрын
Привет, можешь рассказать какие книги ты читал по C# или unity?
@doctorixx_
@doctorixx_ 2 жыл бұрын
"C# для маленький и тупых" от ExtremeCode
@abysswatcher5844
@abysswatcher5844 3 жыл бұрын
Помогите пожалуйста. Такая проблема, Ни одна из перегрузок метода Distance не принимает 3 аргументов. Не запускается программа. Сделал всё как на видео.
@lazizabduhalimov2832
@lazizabduhalimov2832 3 жыл бұрын
Вы не сделали как показано на видео, добавили чтото лишнее в Vector2.Distance
@abysswatcher5844
@abysswatcher5844 3 жыл бұрын
@@lazizabduhalimov2832 О, спасибо. Правда боюсь, что за 2 месяца проблема успела решиться))
@user-hc3ke1wy1j
@user-hc3ke1wy1j 3 жыл бұрын
Патрулирование Лол я один вспомнил мем про педалирование? И да спасибо за урок
@ghiant02
@ghiant02 3 жыл бұрын
здраствуйте! у меня такая проблема то-что когда мой персонаж сталкивается с каким-то обьектом(с colider box) игрок начинает кружиться по оси z, у меня Unity2D в стиле TopDown
@roundzi8047
@roundzi8047 2 жыл бұрын
Добавь на твоего персанажа Rigidbody 2D если в 2d делаешь и заблакируй ось z
@roundzi8047
@roundzi8047 2 жыл бұрын
И вообще то макстер все показал в своём ролике. Внимательнее смотреть надо
@ghiant02
@ghiant02 2 жыл бұрын
Я давно эту проблему решил просто комментарии забыл удалить
@bay-2363
@bay-2363 4 жыл бұрын
топ
@pishy_kommentu
@pishy_kommentu 3 жыл бұрын
У меня врага просто колбасит, он дёргается и проваливается под плотформы. Как это исправить? Код у меня такой же.
@user-wq9go9nc9d
@user-wq9go9nc9d 3 жыл бұрын
Сначала проверь что у тебя колайдер2д. В риджедбоди заморозь вращение оси z
@pishy_kommentu
@pishy_kommentu 3 жыл бұрын
@@user-wq9go9nc9d я просто перемещение через физику сделал и все заработало.
@grishagrishin3482
@grishagrishin3482 2 жыл бұрын
А как вообще создать папку врага в Unity ?
@drakoronus
@drakoronus 4 жыл бұрын
Так-с. Возникла какая-то странная проблема. До написания angry и goback вместо того, чтобы патрулировать, враг останавливался на координатах point.position.x + positionOfPatrol. Когда дописал angry и goback он теперь останавливается в координатах point и двигается только если игрок появляется в его поле зрения. В чём может быть дело? UPD: Я посмотрел повнимательнее. Он не просто останавливается, он всё ещё идёт, просто его скорость настолько мала, что он изменяет одну стотысячную координаты в секунду. UPD2: Я закомментировал всё, что было связано с GoBack, и теперь всё работает правильно (Ну естественно кроме того, что он теперь не возвращается на нужное место после окончания преследования игрока). UPD3: Оказалось, нужно было поместить goBack = false в if (chill == true). Теперь всё идеально. Оставлю тут этот коммент, вдруг у кого похожая проблема :Р
@drakoronus
@drakoronus 4 жыл бұрын
@@dmitriiyyyy Я уже все переделал и стер, сори
@Omegon1235
@Omegon1235 2 жыл бұрын
Привет, у меня та же проблема, но я не могу понять куда goBack = false вписывать
@Uniter_
@Uniter_ Жыл бұрын
подскажите пж что не так с кодом (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); } }
@user-ew4fu9sx5j
@user-ew4fu9sx5j 4 жыл бұрын
Благодаря тебе я сделал диплом, кекв)
@ze1st_
@ze1st_ 3 жыл бұрын
а что делать, если у меня , когда игрок выше врага, то врага дергает вверх(как я понял именно в состоянии Angry)
@ze1st_
@ze1st_ 3 жыл бұрын
а, всё. Просто кое чё поменял в МувеТовардс
@vombox9204
@vombox9204 3 жыл бұрын
не могли бы вы уточнить,что именно поменяли?
@harek1671
@harek1671 Жыл бұрын
Задумка вроде как неплохая,но код не работает. Враг всё время следит за игроком по осиY , даже если тот на другом конце карты, патрулирование вообще не происходит, возврат только к точке+дист.патрул отрабатывает ,ну и срабатывание на присутствие игрока само собой.
@mrminecrafter3829
@mrminecrafter3829 2 жыл бұрын
топ видео
@antonmiller1364
@antonmiller1364 3 жыл бұрын
GameObject.FindGameObjectsWithTag("Player").transform ne rabotaet. Po4emu?
@thesixxteenteam4736
@thesixxteenteam4736 3 жыл бұрын
Anton Miller, FindGameObjectsWithTag убери букву s
@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.
@user-co6xh7ln5q
@user-co6xh7ln5q 4 жыл бұрын
По твоим урокам игру для Google Play делаю, пока все шикарно) Но я думаю тебе стоит выкладывать скрипты под видео
@UNREAL4ever
@UNREAL4ever 4 жыл бұрын
не, смысл в программировании тогда
@maxlmo.
@maxlmo. 4 жыл бұрын
@@UNREAL4ever все таки надо скрипти, если уже все виучил и лень переписивать код с видео
@maximkarachevasmr
@maximkarachevasmr 3 жыл бұрын
@@maxlmo. ты русский то не выучил, c# явно не выучил ты
@Rikan19
@Rikan19 4 жыл бұрын
а у тебя есть готовые скрипты?
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
есть
@monsterclash6790
@monsterclash6790 4 жыл бұрын
Хмм, а если подпрыгнуть, то этот страж полетит. А как сделать так, чтобы он по оси Y не двигался?
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Запретить движение по Y, разрешить движение по X.
@monsterclash6790
@monsterclash6790 4 жыл бұрын
@@graphicaldesign2776, а какой командой это сделать в твоём коде? Извини за то, что тебя беспокою, но я начинающий программист и всему учусь у тебя. И ещё, у меня давно висит вопрос про то, как сделать переменную, чтобы можно было к ней обращаться к ней во всём проекте. Например, деньги. Вот тебе идейка для нового видоса! Ещё раз извиняюсь за беспокойство.
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Для обращения к переменной, можно использовать public. В моем скрипте нет команды по прыжкам.
@monsterclash6790
@monsterclash6790 4 жыл бұрын
@@graphicaldesign2776 ок, спасибо
@vombox9204
@vombox9204 3 жыл бұрын
Вы решли данную проблему?
@cartonig869
@cartonig869 3 жыл бұрын
Привет,как сделать так что бы за игроков играл сам бот?И использовал бафы тоже сам
@Jam867
@Jam867 2 жыл бұрын
это надо писать ИИ
@MusicStrime
@MusicStrime 3 жыл бұрын
Как сделать чтоб приследовал игрока только по х?
@user-jy8wx8rx3h
@user-jy8wx8rx3h 3 жыл бұрын
@@zz_dev мда.. галочка на z нужна, чтобы объект не крутился, чел
@user-jy8wx8rx3h
@user-jy8wx8rx3h 3 жыл бұрын
@@zz_dev Ты не умеешь читать? Чел спросил "Как сделать чтобы враг преследовал игрока только по х?" То есть двигался в направлении к игрогу только по X, а Y игнорил, что делается через функцию Vector2.MoveTowards. Твой freeze rotation z никак не касается этой темы.
@hummylisii8237
@hummylisii8237 4 жыл бұрын
А что если он упадет например в яму но с прыжка он сможет выпрыгнуть.Как это сделать)?
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Сделать еще один метод для этого.
@lazizabduhalimov2832
@lazizabduhalimov2832 3 жыл бұрын
У него уже был урок на эту тему, его надо добавить
@tyloo2677
@tyloo2677 Жыл бұрын
почему у меня бот уходит в право и совершает суицид :(
@dilask7112
@dilask7112 3 жыл бұрын
А в 3д игре работать если да то я пошол создавать гта 5
@ICECREAM-sy4dq
@ICECREAM-sy4dq 4 жыл бұрын
Как повернуть его? А то ходит и в одну сторону смотрит
@graphicaldesign2776
@graphicaldesign2776 4 жыл бұрын
Через Flip.
@alexcall5476
@alexcall5476 4 жыл бұрын
@@graphicaldesign2776 а что делать, если при использовании метода flip в методе chill всё ок, но ИИ при преследовании не меняет направление, как и при уходе в точку. А если поставить ссылку на метод flip в методы angry и goBack, то ИИ начинает вертеться.
@lazizabduhalimov2832
@lazizabduhalimov2832 3 жыл бұрын
@@alexcall5476 тут надо поменять булевые переменные chill, angry, goBack
@juuzua
@juuzua 2 жыл бұрын
"искусственный интеллект" громко сказано)
@user-df5jb1nd5f
@user-df5jb1nd5f 2 жыл бұрын
Напишите в ответы конечный код, просто я долго его писал, а он оказался неправильным = я криворукий. Короче, мне лень переписывать
Do you have a friend like this? 🤣#shorts
00:12
dednahype
Рет қаралды 43 МЛН
О, сосисочки! (Или корейская уличная еда?)
00:32
Кушать Хочу
Рет қаралды 8 МЛН
Eccentric clown jack #short #angel #clown
00:33
Super Beauty team
Рет қаралды 20 МЛН
The LEAST understood line of Roblox code... (and what it means)
12:27
Мигание врага при уроне - Unity легко
11:47
Graphical Design
Рет қаралды 11 М.
Делаю эволюцию ИИ в Unity
17:05
Onigiri
Рет қаралды 474 М.
Simple 2D Enemy Patrolling Unity tutorial
9:34
MoreBBlakeyyy
Рет қаралды 48 М.
РУКОПАШНЫЙ БОЙ в Юнити | by Brackeys
19:10
maxvell-game developer
Рет қаралды 37 М.
Ragdoll - Unity легко
15:54
Graphical Design
Рет қаралды 10 М.
Как сделать БОССА в Unity | by Brackeys
20:35
maxvell-game developer
Рет қаралды 17 М.
Do you have a friend like this? 🤣#shorts
00:12
dednahype
Рет қаралды 43 МЛН