Denis Gaydak, спасибо, за обьяснение, но я понял по этому
и еще я предложил наверно использовать не отдельно направление по X и Y
а на Vector2 переписать
ну или не полностью прекращать преследование, а разделить.
если сравнялось по вертикали - то прекращать по вертикали движение. продолжая приближаться по горизонтали)
черт надеюсь не запутал. а все же пояснил где именно проблема и выпоняли.
удачи в разруливании))
я вполне разбираюсь, что к чему, но иногда очень туплю и говнокодю)
Denis Gaydak, само "перестаем догонять" как вы оформите - это дело уже за вами. простите - но учитесь. разбирайте. отлаживайте. по простому не выйдет)) по крайней мере не со мной. я за обучение через страдания и старания))
Denis Gaydak,
"как только player.transform.position.x равен enemy.ransform.position.x , enemy начинает трястись"
как это не в зависимости от догнал или нет. вы же сами именно так написали.
if(Mathf.Abs(direction_x) == minDis && Mathf.Abs(direction_y) == minDis)
{
speedMove = 0f;
}
Это типо вот так надо было реализовать?
Но это вообщем не сработало.
Help me! Dude!
pos.x += Mathf.Sign(direction_x) * speedMove * Time.deltaTime;
не сильно понял, что это, но это что-то вроде передвижения enemy за player''ом,
но if (Mathf.Abs(direction_x) < maxDis && Mathf.Abs(direction_y) < maxDis) это проверка на то, если player в "зоне видимости" enemy, то enemy его начинает преследовать.
Как решение можете ввести минимальное расстояние, на котором считается что уже "догнал" и перестать преследовать.
Сейчас попробую.