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