Каво???? Иду с работы и думаю, надо найти как сделать вражеский ИИ с патрулированием и чтоб от него можно было убежать для добавления к себе в игру. Пришел, ничего подобного не нашел, отложил до завтра. Перед сном, смотрю в рекомендациях твой видос вышел... кааапец. Спасибо большое за видео, ты топ
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
Лежу такой вчера и думаю: "У меня враги бегают от препятствия к препятствию, нужно как-то ИИ разнообразить, а то выглядит тупо" Graphical Design: Пс, парень, не хочешь немного интересных решений? Я: Блин, да как ты угадываешь-то каждый раз? :D
помоги пожалуйста, у меня не получается сделать так, что бы враг ходил от препятствия к препятствию. у меня получается так что, враг идет на лево и не меняет направления...
Помогите пожалуйста, никак не могу понять. Урок замечательный, но враг следует за игроком по двум осям x и y. Как сделать так, чтобы он следовал только по оси x. Заранее большое спасибо!!!!
Всё, сам решил проблему. Мало ли кому пригодится, нужно создать дополнительный Vector2 и указать там (player.position.x, transform.position.y), тем самым оставляя ось y без изменений. И в методе MoveTowards вторым аргументом указать нашу только что созданную переменную. Для кого-то это элементарно, но для меня (я пока учусь) было не понятно...
Спасибо большое) Очень классное обучение!) А подскажите, как сделать чтобы спрайт врага поворачивался к игроку или к точке не через Flip X a через Scale X?
Враг патрулируют - Да, Враг идет к игроку -Да, Враг возвращается к патрулирую если герой слишком далеко - да. Собственно название видео оправдывает содержание.
Поздновато я однако :) Если ещё не нашёл, попробуй в скрипте в отнимании жизней игрока в условие запихнуть таймер, мол "если вот что-то И ПРОШЛО ТАКОЕ-ТО ВРЕМЯ, то..."
Так-с. Возникла какая-то странная проблема. До написания angry и goback вместо того, чтобы патрулировать, враг останавливался на координатах point.position.x + positionOfPatrol. Когда дописал angry и goback он теперь останавливается в координатах point и двигается только если игрок появляется в его поле зрения. В чём может быть дело? UPD: Я посмотрел повнимательнее. Он не просто останавливается, он всё ещё идёт, просто его скорость настолько мала, что он изменяет одну стотысячную координаты в секунду. UPD2: Я закомментировал всё, что было связано с GoBack, и теперь всё работает правильно (Ну естественно кроме того, что он теперь не возвращается на нужное место после окончания преследования игрока). UPD3: Оказалось, нужно было поместить goBack = false в if (chill == true). Теперь всё идеально. Оставлю тут этот коммент, вдруг у кого похожая проблема :Р
Слушай а подскажи пожалуйста из за чего может трястись враг а то я не понимаю ? Уточню некоторые детали я поставил поин в нужное место и когда он доходит до него то наченает как дергатса либо его колбасит
Я сделал через 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(); }
помоги пожалуйста, у меня не получается сделать так, что бы враг ходил от препятствия к препятствию. у меня получается так что, враг идет на лево и не меняет направления...
Очень крутой урок, но можешь сделать туториал, где враг также будет патрулировать местность, а когда к нему подойдёт персонаж, то враг будет в него стрелять и отнимать у него жизни. Было бы очень круто, если сделаешь такой туториал, я просто рылся в туториалах, нашел кое что, но это не совсем то что нужно. Хотелось бы получить туториал от тебя, ты один из лучших обучающих каналов на юнити
Вы меня простите, но тут на канале есть текущий урок - где всё разложено по полочкам. Есть урок по системе здоровья. Есть уроки по стрельбе. Уроки по поведению противников. Если Вы не в состоянии объединить их вместе - может стоит задуматься о том - стоит ли Вам делать игры? По всем ситуациям из всех игр видео уроков не наделаешься - жизни не хватит. А просто копировать чужой код - от этого мало чему научишься.
Я просто являюсь художником и неплохо рисую анимации, персонажей в векторной графике, использовал свои навыки в двух завершенных проектах, но захотелось именно самому сделать игру
Мой красавец почему-то приходит к одной точке, да так и стоит. Если его оттаскивать - то он возвращается к точке, но на патрулирование фыркает. Если оттащить его за шкварник вправо - вообще обижается и остается на месте. Проверил код - все верно. В чем может быть загвоздка?
Я немного не понял насчет поворота врага? , что именно его поворачивает? я написал часть кода про поворот , но он не поворачиваеться в сторону игрока , всегда в одну сторону смотрит
Привет, вроде всё правильно сделал, но ошибка появляется, когда враг начинает патрулировать он доходит до дистанции патрулирования и его начинает трести назад он не идёт, может подскажешь в чём именно ошибка?
Большое спасибо. Но вот незадача. Когда накидываю на NPS "rigidbody" мой главный герой перестает двигаться, в чем может быть дело? На остальных обьектах без скриптов висит RB и все норм.
Есть косячок с этим слежением, если к примеру в момент когда бот тебя агрит, прыгаем через него и он взлетает за нами) Как это пофиксить? Заморозка по Y не помогает.
Спасибо за видео. Подскажите как сделать так, что бы враг отслеживал где находится игрок, если игрок перепрыгнет его то враг должен повернуться за ним. В добавок к этому коду по патрулированию аи.
Слушай а можешь под следующими видосами остовлять ZIP файл с кодом или в коментах(или в опиании) просто вставлять код что-бы не корячится а так канал топ
@@zz_gandon Ты не умеешь читать? Чел спросил "Как сделать чтобы враг преследовал игрока только по х?" То есть двигался в направлении к игрогу только по X, а Y игнорил, что делается через функцию Vector2.MoveTowards. Твой freeze rotation z никак не касается этой темы.
Помогите пожалуста . Я добавил стрельбу етому боту но он не разворачиваетса и тем самым точка из которой вылетают пули смотрит в одно положение не зависимо где игрок с права или слева (когда гонитса за игроком). Просьба помогите его развернуть с кординатами
Итак, спасибо за урок, но возник вот такой вопрос: А как сделать возврат к исходной точке не только по оси x, но и по оси y? Буду очень благодарен если поможете, ну и сам поищу, если что-то найду, то отредачу.
Задумка вроде как неплохая,но код не работает. Враг всё время следит за игроком по осиY , даже если тот на другом конце карты, патрулирование вообще не происходит, возврат только к точке+дист.патрул отрабатывает ,ну и срабатывание на присутствие игрока само собой.
@@graphicaldesign2776 а что делать, если при использовании метода flip в методе chill всё ок, но ИИ при преследовании не меняет направление, как и при уходе в точку. А если поставить ссылку на метод flip в методы angry и goBack, то ИИ начинает вертеться.
У меня 2 вопроса. 1) Не проще ли сделать состояния через enum? 2) Как сделать нормально так, чтобы враг агрился не по расстоянию до игрока а когда увидит? Чтобы этому могла помешать стенка. Используя данный способ обнаружения игрока врядли это выйдет реализовать.
У меня проблема, враг сначала идет влево, доходит до конца положенного места, идет потом направо и как только доходит до края позиции, он стопориться и ни идет ни куда, если точку двигать, то он снова оживает, но уже не может повернуть налево. Так же ии изначально нацелен на меня, если в коде добавить что в состоянии angry другие состояния отключаются.
здраствуйте! у меня такая проблема то-что когда мой персонаж сталкивается с каким-то обьектом(с colider box) игрок начинает кружиться по оси z, у меня Unity2D в стиле TopDown
Помогите пожалуйста. Такая проблема, Ни одна из перегрузок метода Distance не принимает 3 аргументов. Не запускается программа. Сделал всё как на видео.
@@graphicaldesign2776 а как исправить проблему с ИИ, когда я в его коде закинул ссылку на метод flip в метод chill, angry, goBack, он начинает адово вертеться. Можете сказать, куда нужно закинуть ссылку на метод, чтобы ИИ нормально разворачивался в любом состоянии
привет ребят, можете помочь с проблемой, я генерирую мир 2d и бывает что блок появляется прям на месте моего персонажа, и персонаж застревает в полигон коллайдере земли и как сделать так что если он ВНУТРИ коллайдер полигона, он и выйти не может и не знаю как перезагрузить уровень в таком случае ПАМИГИТИ 2 ДНЯ УЖЕ СИЖУ
@@graphicaldesign2776, а какой командой это сделать в твоём коде? Извини за то, что тебя беспокою, но я начинающий программист и всему учусь у тебя. И ещё, у меня давно висит вопрос про то, как сделать переменную, чтобы можно было к ней обращаться к ней во всём проекте. Например, деньги. Вот тебе идейка для нового видоса! Ещё раз извиняюсь за беспокойство.
А почему нельзя публичные поля сделать приватными, и использовать SerializeField? Эти публичные поля просто зашквар какой-то, тем более с маленькой буквы
А как сделать чтобы когда перс был выше чем враг, тот включал режим патрулирования. А то я как то запутался и не получается). Я, если что, только недавно начал игры делать, камнями не бросайте сильно)
Каво???? Иду с работы и думаю, надо найти как сделать вражеский ИИ с патрулированием и чтоб от него можно было убежать для добавления к себе в игру. Пришел, ничего подобного не нашел, отложил до завтра. Перед сном, смотрю в рекомендациях твой видос вышел... кааапец. Спасибо большое за видео, ты топ
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
@Chance Trace Definitely, I have been using instaflixxer for since november myself =)
@Chance Trace Definitely, been using instaflixxer for since december myself :D
@Chance Trace definitely, I have been watching on Instaflixxer for months myself :D
@Chance Trace Definitely, I've been using Instaflixxer for since november myself =)
Спасибо огромное!!! Это именно то, чего мне не хватало для моей игры...
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);
}
спс
Спс
из души душевной душевно в душевную душу
спс
14 ошибок блять
Лежу такой вчера и думаю: "У меня враги бегают от препятствия к препятствию, нужно как-то ИИ разнообразить, а то выглядит тупо"
Graphical Design: Пс, парень, не хочешь немного интересных решений?
Я: Блин, да как ты угадываешь-то каждый раз? :D
помоги пожалуйста, у меня не получается сделать так, что бы враг ходил от препятствия к препятствию.
у меня получается так что, враг идет на лево и не меняет направления...
Добавил ИИ в раннер, теперь ИИ скидывает меня с платформы :D,как бы новое препятствие,спасибо за уроки!👍
Голос красивый, и хорошо объяснил, спасибо за видео:3
Очень помогло, внес огромную ясность во всю эту тему. Спасибо большое!
Ты лучший ! Спасибо за твои спасающие уроки
большое прибольшое спасибо, все просто и ясно))благодарю что ваш канал есть)
Помогите пожалуйста, никак не могу понять. Урок замечательный, но враг следует за игроком по двум осям x и y. Как сделать так, чтобы он следовал только по оси x. Заранее большое спасибо!!!!
Всё, сам решил проблему. Мало ли кому пригодится, нужно создать дополнительный Vector2 и указать там (player.position.x, transform.position.y), тем самым оставляя ось y без изменений. И в методе MoveTowards вторым аргументом указать нашу только что созданную переменную. Для кого-то это элементарно, но для меня (я пока учусь) было не понятно...
@@laukkanen568 скинешь код бро?) тоже учусь и не втыкаю немного.
Спасибо. Все четко и понятно изложил, лайк однозначно.
Очень прикольно и понятно.)Вот только сможешь сделать анимацию для врага как к игроку так и к врагу)
Очень круто !
Спасибо большое) Очень классное обучение!) А подскажите, как сделать чтобы спрайт врага поворачивался к игроку или к точке не через Flip X a через Scale X?
transform.localScale = new Vector3(-1, 1, 1); в одну сторону
transform.localScale = new Vector3(1, 1, 1); в другую сторону
Вообще круто делаешь объясняешь так что даже я понял Ты первый кто объясняет всё и понятно
Если сделаю игру по твоим урокам то скиу игру сюда:)
ти не уявляєш як ти мені допоміг. Вчитель з тебе топ. Дякую за інфу
автор, скинь пожалуйста код, для большей наглядности(если можно)
спасибо большое автору !!!
Привет, можешь пожалуйста сделать курс по созданию 2D стратегии?)) ооочень хочу сделать, а многое не понимаю, но думаю всем будет интересно)
Очень понятно объяснил, спасибо за отличный и полезный урок!
Враг патрулируют - Да, Враг идет к игроку -Да, Враг возвращается к патрулирую если герой слишком далеко - да. Собственно название видео оправдывает содержание.
Хорошие у Вас уроки!! Сделай пожалуйста видео об, неуязвимости персонажа после нанесения урона, на определённое время. Спасибо
Поздновато я однако :)
Если ещё не нашёл, попробуй в скрипте в отнимании жизней игрока в условие запихнуть таймер, мол "если вот что-то И ПРОШЛО ТАКОЕ-ТО ВРЕМЯ, то..."
Спасибо вам большое
Лучшее видео на эту тему)
Так-с. Возникла какая-то странная проблема. До написания angry и goback вместо того, чтобы патрулировать, враг останавливался на координатах point.position.x + positionOfPatrol. Когда дописал angry и goback он теперь останавливается в координатах point и двигается только если игрок появляется в его поле зрения. В чём может быть дело?
UPD:
Я посмотрел повнимательнее. Он не просто останавливается, он всё ещё идёт, просто его скорость настолько мала, что он изменяет одну стотысячную координаты в секунду.
UPD2:
Я закомментировал всё, что было связано с GoBack, и теперь всё работает правильно (Ну естественно кроме того, что он теперь не возвращается на нужное место после окончания преследования игрока).
UPD3:
Оказалось, нужно было поместить goBack = false в if (chill == true). Теперь всё идеально.
Оставлю тут этот коммент, вдруг у кого похожая проблема :Р
@@dmitriiyyyy Я уже все переделал и стер, сори
Привет, у меня та же проблема, но я не могу понять куда goBack = false вписывать
Привет. Как можно сделать такое но со врагом в воздухе?
Хочу сделать вертолет, но не получается
А как сделать нейтрального ИИ? Для окружения допустим в городе?
Цель ему менять.
Слушай а подскажи пожалуйста из за чего может трястись враг а то я не понимаю ? Уточню некоторые детали я поставил поин в нужное место и когда он доходит до него то наченает как дергатса либо его колбасит
как написать условие, при котором спрайт врага будет поворачиваться в сторону движения?
Я сделал через 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();
}
@@qterrian4118 Привет, можешь скинуть этот ролик ? Никак не могу найти
@@shema6395 th-cam.com/video/h13scc5tPyo/w-d-xo.html
помоги пожалуйста, у меня не получается сделать так, что бы враг ходил от препятствия к препятствию.
у меня получается так что, враг идет на лево и не меняет направления...
Можешь пожалуйста скинуть ссылку на материал, через который ты сделал врага?
Отличный тутор. Сразу стало понятнее со сменой состояний. Ну и как подступиться к Navimesh
Воооо, очень актуально, лайк.
Очень крутой урок, но можешь сделать туториал, где враг также будет патрулировать местность, а когда к нему подойдёт персонаж, то враг будет в него стрелять и отнимать у него жизни. Было бы очень круто, если сделаешь такой туториал, я просто рылся в туториалах, нашел кое что, но это не совсем то что нужно. Хотелось бы получить туториал от тебя, ты один из лучших обучающих каналов на юнити
Вы меня простите, но тут на канале есть текущий урок - где всё разложено по полочкам. Есть урок по системе здоровья. Есть уроки по стрельбе. Уроки по поведению противников. Если Вы не в состоянии объединить их вместе - может стоит задуматься о том - стоит ли Вам делать игры? По всем ситуациям из всех игр видео уроков не наделаешься - жизни не хватит. А просто копировать чужой код - от этого мало чему научишься.
@@BeDaLeK ладно
Я просто являюсь художником и неплохо рисую анимации, персонажей в векторной графике, использовал свои навыки в двух завершенных проектах, но захотелось именно самому сделать игру
Мой красавец почему-то приходит к одной точке, да так и стоит. Если его оттаскивать - то он возвращается к точке, но на патрулирование фыркает. Если оттащить его за шкварник вправо - вообще обижается и остается на месте. Проверил код - все верно. В чем может быть загвоздка?
Все еще, в скрипте
Спасибо!!!! ТЫ легенда!!!
Я немного не понял насчет поворота врага? , что именно его поворачивает? я написал часть кода про поворот , но он не поворачиваеться в сторону игрока , всегда в одну сторону смотрит
Привет, вроде всё правильно сделал, но ошибка появляется, когда враг начинает патрулировать он доходит до дистанции патрулирования и его начинает трести назад он не идёт, может подскажешь в чём именно ошибка?
Ой спасибо сильно тупил над етим захожу в Гугл и пишу "как сделать ии врагу" и вижу твой видос когда Ти разказал все на подзадачи сразу все понял.
Большое спасибо.
Но вот незадача. Когда накидываю на NPS "rigidbody" мой главный герой перестает двигаться, в чем может быть дело? На остальных обьектах без скриптов висит RB и все норм.
GameObject.FindGameObjectsWithTag("Player").transform ne rabotaet. Po4emu?
Anton Miller, FindGameObjectsWithTag убери букву s
Урок классный, но вопросик, как сделать так, чтобы враг не подходил в плотную и было небольшое расстояние
У меня Enemy стоит на месте... Проигрывается только анимация бега и всё... Всё делал как на видео.
Есть косячок с этим слежением, если к примеру в момент когда бот тебя агрит, прыгаем через него и он взлетает за нами) Как это пофиксить? Заморозка по Y не помогает.
Патрулирование
Лол я один вспомнил мем про педалирование?
И да спасибо за урок
Спасибо за видео. Подскажите как сделать так, что бы враг отслеживал где находится игрок, если игрок перепрыгнет его то враг должен повернуться за ним. В добавок к этому коду по патрулированию аи.
Так это только поворот спрайта, с зависимости от стороны движения. Положительное и отрицательное по оси Х.
@@graphicaldesign2776 здравствуй автор, у меня проблема, враг доходит до точки и замирает но когда он видит игрока он начинает за ним следовать
Слушай а можешь под следующими видосами остовлять ZIP файл с кодом или в коментах(или в опиании) просто вставлять код что-бы не корячится а так канал топ
Неа.
@@graphicaldesign2776 why?
@@graphicaldesign2776 Почему?)
@@qiniks9279 не в этом цель канала
Знаете ребятки смысл в том чтобы хотя бы переписать, так хоть что то запомнишь, но просто скопировав забудешь более чем половину кода
А можно сделать так, чтобы во время выполнения GoBack или Angry он прыгал если перед ним препятствие?
Если кому нужно: Просто добавьте прыжок в другой скрипт и тогда оба скрипта (Прыжок и и страж) будут работать
Привет, вроде с точкой поинт и скриптом все делал правильно, но враг вертикально трясется в состоянии GoBack. Не понимаю почему.
Офигенно! :)
Что делать если враг идет в право до бесконечности?
Привет,у меня тут проблема.Мой враг когда патрулирует идет назад спиной вперед.Тоесть moveingRight не работает что мне делать?
Почему в каждом видео все поля всегда публичные. Их надо объявлять через SerializeField это же база...
О спасибо крутой Ии
Как сделать чтоб приследовал игрока только по х?
@@zz_gandon мда.. галочка на z нужна, чтобы объект не крутился, чел
@@zz_gandon Ты не умеешь читать? Чел спросил "Как сделать чтобы враг преследовал игрока только по х?" То есть двигался в направлении к игрогу только по X, а Y игнорил, что делается через функцию Vector2.MoveTowards. Твой freeze rotation z никак не касается этой темы.
Помогите пожалуста . Я добавил стрельбу етому боту но он не разворачиваетса и тем самым точка из которой вылетают пули смотрит в одно положение не зависимо где игрок с права или слева (когда гонитса за игроком).
Просьба помогите его развернуть с кординатами
Всё никак не пойму, откуда у тебя при нажатии на врага появился Speed, Point и т.д если ты в нём ничего толком не написал?
Здравствуйте у меня появилась проблема враг бесконечно идёт влево и не потрулирует как решить данную проблему
а где можно скрипт скачать ?
Почему раз ты разделяешь состояния, не используешь enum?
Оо, то, что мне нужно, спасибо заранее
Итак, спасибо за урок, но возник вот такой вопрос: А как сделать возврат к исходной точке не только по оси x, но и по оси y? Буду очень благодарен если поможете, ну и сам поищу, если что-то найду, то отредачу.
не нашел?
Graphical Design Такой вопрос, почему когда я запрещаю перемещение по x, и разрешаю по y то sprite начинает мерцать?
так и еще и плавает
Задумка вроде как неплохая,но код не работает. Враг всё время следит за игроком по осиY , даже если тот на другом конце карты, патрулирование вообще не происходит, возврат только к точке+дист.патрул отрабатывает ,ну и срабатывание на присутствие игрока само собой.
Как повернуть его? А то ходит и в одну сторону смотрит
Через Flip.
@@graphicaldesign2776 а что делать, если при использовании метода flip в методе chill всё ок, но ИИ при преследовании не меняет направление, как и при уходе в точку. А если поставить ссылку на метод flip в методы angry и goBack, то ИИ начинает вертеться.
@@alexcall5476 тут надо поменять булевые переменные chill, angry, goBack
У меня 2 вопроса.
1) Не проще ли сделать состояния через enum?
2) Как сделать нормально так, чтобы враг агрился не по расстоянию до игрока а когда увидит? Чтобы этому могла помешать стенка. Используя данный способ обнаружения игрока врядли это выйдет реализовать.
вряд-ли мой ответ сейчас поможет, но можно попробовать через Raycast
ты луучший
У меня проблема, враг сначала идет влево, доходит до конца положенного места, идет потом направо и как только доходит до края позиции, он стопориться и ни идет ни куда, если точку двигать, то он снова оживает, но уже не может повернуть налево. Так же ии изначально нацелен на меня, если в коде добавить что в состоянии angry другие состояния отключаются.
Если разобрался, скажи как решить
"искусственный интеллект" громко сказано)
Привет, клевое видео. А можешь сделать урок типа антагонист бежит за игроком, а когда он его настигает то игрок умирает. Или как делать каст сцены
Будет ли видео о создании машины в tds шутер?
здраствуйте!
у меня такая проблема то-что когда мой персонаж сталкивается с каким-то обьектом(с colider box) игрок начинает кружиться по оси z, у меня Unity2D в стиле TopDown
Добавь на твоего персанажа Rigidbody 2D если в 2d делаешь и заблакируй ось z
И вообще то макстер все показал в своём ролике. Внимательнее смотреть надо
Я давно эту проблему решил просто комментарии забыл удалить
подскажите пж что не так с кодом
(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);
}
}
Благодаря тебе я сделал диплом, кекв)
Привет, можешь рассказать какие книги ты читал по C# или unity?
"C# для маленький и тупых" от ExtremeCode
а что делать, если у меня , когда игрок выше врага, то врага дергает вверх(как я понял именно в состоянии Angry)
а, всё. Просто кое чё поменял в МувеТовардс
не могли бы вы уточнить,что именно поменяли?
крутое видео
Что делать если враг не переворачивается за тобой??
круто
Приветствую , очень крутые уроки!
Хотел бы узнать кто-то знает как сделать так , что б враг разворачивался в ту сторону , в которую идет?
привет ты разобрался с разворотом противника?
@@MegaAlexprim привет, может ты разобрался?
@@ПавелКурзо я забил на этот урок.
Эм
Это легко
Помогите пожалуйста. Такая проблема, Ни одна из перегрузок метода Distance не принимает 3 аргументов.
Не запускается программа. Сделал всё как на видео.
Вы не сделали как показано на видео, добавили чтото лишнее в Vector2.Distance
@@lazizabduhalimov2832 О, спасибо. Правда боюсь, что за 2 месяца проблема успела решиться))
почему у меня бот уходит в право и совершает суицид :(
Как сделать тоже самое, только в 3д игре??
Почему у меня мерцает игрок, когда проходит через объекты на заднем фоне или когда задний фон - это какая-то фотография?
Фотография? Ты о чем?
@@graphicaldesign2776 задний фон, спасибо, я понял в чём дело, нужно просто поднять уровень слоя персонажа
@@graphicaldesign2776 а как исправить проблему с ИИ, когда я в его коде закинул ссылку на метод flip в метод chill, angry, goBack, он начинает адово вертеться. Можете сказать, куда нужно закинуть ссылку на метод, чтобы ИИ нормально разворачивался в любом состоянии
@@alexcall5476 в Update
@@graphicaldesign2776 а куда именно, я ставлю в метод update во все if.
а спрайты ты где берешь если не секрет
привет ребят, можете помочь с проблемой, я генерирую мир 2d и бывает что блок появляется прям на месте моего персонажа, и персонаж застревает в полигон коллайдере земли и как сделать так что если он ВНУТРИ коллайдер полигона, он и выйти не может и не знаю как перезагрузить уровень в таком случае ПАМИГИТИ 2 ДНЯ УЖЕ СИЖУ
Хмм, а если подпрыгнуть, то этот страж полетит. А как сделать так, чтобы он по оси Y не двигался?
Запретить движение по Y, разрешить движение по X.
@@graphicaldesign2776, а какой командой это сделать в твоём коде? Извини за то, что тебя беспокою, но я начинающий программист и всему учусь у тебя. И ещё, у меня давно висит вопрос про то, как сделать переменную, чтобы можно было к ней обращаться к ней во всём проекте. Например, деньги. Вот тебе идейка для нового видоса! Ещё раз извиняюсь за беспокойство.
Для обращения к переменной, можно использовать public.
В моем скрипте нет команды по прыжкам.
@@graphicaldesign2776 ок, спасибо
Вы решли данную проблему?
Привет, подскажи пожалуйста почему у меня страж бесконечно в лево бежит а не патрулирует? Когда меня видит, за мной бегает, с этим все норм
А что подсказать то?
@@graphicaldesign2776 Почему страж бесконечно бежит влево))
Поменяй место поинта направо у тебя места мало, он по факту где должен контролить стоит блок он в нём застревает
Ну по крайней мере я написал код верно
топ видео
а у тебя есть готовые скрипты?
есть
Что делать он на месте прыгает
как это можно сделать в 2д игре в корой вид сверху
А почему нельзя публичные поля сделать приватными, и использовать SerializeField? Эти публичные поля просто зашквар какой-то, тем более с маленькой буквы
А как вообще создать папку врага в Unity ?
Привет,как сделать так что бы за игроков играл сам бот?И использовал бафы тоже сам
это надо писать ИИ
А что если он упадет например в яму но с прыжка он сможет выпрыгнуть.Как это сделать)?
Сделать еще один метод для этого.
У него уже был урок на эту тему, его надо добавить
По твоим урокам игру для Google Play делаю, пока все шикарно) Но я думаю тебе стоит выкладывать скрипты под видео
не, смысл в программировании тогда
@@UNREAL4ever все таки надо скрипти, если уже все виучил и лень переписивать код с видео
@@maxlmo. ты русский то не выучил, c# явно не выучил ты
А как сделать чтобы когда перс был выше чем враг, тот включал режим патрулирования. А то я как то запутался и не получается). Я, если что, только недавно начал игры делать, камнями не бросайте сильно)
Нуу, я короче уже сам всё сделал , оказывается просто попутал кое - где)
Напишите в ответы конечный код, просто я долго его писал, а он оказался неправильным = я криворукий. Короче, мне лень переписывать
как сделать поворот врага?
топ