Решил поизучать unity и пришла идея попробовать сделать шутер с видом сверху и столкнулся с проблемой. А как заставить персонажа двигаться по направлению взгляда?В итоге пришел вот к этому.

Я делал все в Bolt но принципы схожи с C#.
Для того что бы двигаться в направлении взгляда нужно этот самый взгляд получить.
сначала я пользовался transform.rotation(get) он выдает уголь поворота в пределах от 180 до -180, потом перешел на transform.eulerAngles(get) он выдает значения от 0 до 360
Зная направление взгляда можно представить его так.

И разделить на вектора по осям x и y. Т.е. если гипотенуза ОМ равна 1 то:
OD=OM*cos(α)
MD=OM*sin(α)
и так как гипотенуза в нашем случае равна 1 то:
OD=cos(α)
MD=sin(α)
Почему именно синус или косинус?

Потому что они дают нужные нам значения от -1 до +1 в нужном нам направлении.
Теперь переведя градусы в радианы , я очень долго не мог понять почему не работает пока это не сделал) . Что перевести градусы в радианы, нужно число градусов умножить на π и разделить на 180 градусов.
Далее перемножаем со скоростью передвижения и передаем в вектор (new vector2(x,y) ) который передаем в rigidbody2D.velocity(set)
Спасибо за прочтение, это моя первая статья, поэтому простите за ошибки.
Статьи, которые помогли мне во все разобраться:
https://matematika-club.turbopages.org/matematika.club/s/articles/trigonometry/
https://poschitat.online/storony-pryamougolnogo-treugolnika
И 2 обсуждения по этой же теме:
http://www.unity3d.ru/distribution/viewtopic.php?f=105&t=21397#p151717