Вобщем, у меня персонаж в top down 2d шутере смотрит на позицию мыши, если у него есть оружие тогда персонажу добавляют
пару градусов. Добавление этих
пару градусов сделан через метод Vector2.SignedAngle где 1 параметр это направление от позиции дуло оружие до позиции мыши, а 2 параметр то же направление до позиции мыши только уже от позиции игрока.
Так вот, если мышь находиться возле персонажа, он начинает очень быстро крутиться. Я пробовал делать ограничение что то вроде
Если дистанция от персонажа до мыши будет меньше 3-ех (например), тогда персонажу не добавляються эти пару градусов. Но выгледит это довольно криво есои присмотреться. Как можно сделать так чтобы он перестал крутиться?
В оружие есть метод AdditionalAngleGet, он как раз добавляет эти пару градусов.
public float AdditionalAngleGet(Vector2 ownerPos, Vector2 targetPos)
{
Vector2 direction1 = targetPos - ownerPos;
Vector2 direction2 = targetPos - muzzlePos;
return Vector2.SignedAngle(direction2, direction1);
}
muzzlePos—это позиция дуло оружие
targetPos—позиция цели, в данном случаи это позиция мыши.
ownerPos —позиция хозяина оружие