я сделал так, чтобы поворот по оси z для объекта(в моем случае метеорита) сохранялся в переменную, а дальше высчитывается синус этого угла и косинус, чтобы передвигать объект по осям х и у.
[SerializeField]float dir;
public float speed;
float move_x;
float move_y;
private void Start()
{
dir = transform.rotation.eulerAngles.z; //запихиваем поворот по оси z в переменную dir
transform.Translate(0, -10, 0); //не обращайте внимания на эту строчку, она не важна сейчас
move_x = Mathf.Cos(dir); //вот высчитываем син/кос переменной dir
move_y = Mathf.Sin(dir);
}
private void Update()
{
transform.Translate(move_x * speed * Time.deltaTime, move_y * speed * Time.deltaTime, 0); //перемещаем объект
}
по идее должно все работать, ведь объект всегда смотрит в центр(уже из-за другого скрипта), но почему-то юнити говорит, что косинус 180 это не -1, а -0.59
Я что-то не так сделал?