1max1 писал(а):Я честно говоря не понимаю зачем тебе точка по центру нужна, ведь самая короткая дистанция это именно перпендикуляр...Синтаксис:Используется csharpVector3 AB = B - A; // A и В позиции волков, это понятно
// Vector3 C_prime = A + AB / 2; // Это нам не надо
Vector3 C = Vector3.Cross(AB, Vector3.forward).normalize; // Наш перпендикуляр
Raycaster.DrawLine(zaika.position, zaika.position +- C * 100, Color.black); // Значение 100 тут чисто для дебага
Ага, сейчас линия перпендикулярна. Супер! Только проблема возникает в другом теперь, если перенести шар за линию, то перпендикуляр должен направлять в другую сторону.
Всё это ведь происходит в Update, и так или иначе волки со временем встанут в ряд. А там уже получается будет проблема, если вычислять перпендикуляром.
В таком случае всё таки приходится вернутся к формуле:
Синтаксис:
Используется csharp
var angle = ( Vector3.Angle(zaika.position, wolf.position) + Vector3.Angle(zaika.position, wolf1.position) ) / 2.
Превращать из угла в направление, и уже бежать по направлению.