unity градус поворота в vector2 (2 значения от -1,1)
Physics2D.Raycast принимает vector2 для обозначения направления, где вверх - 0,1, вниз 0, -1, вправо 1, 0, и в лево -1, 0 Как я могу преобразовать transform.Rotation.z в Vector2, для того, чтобы луч смотрел туда же, куда и объект, Vector2.down всегда будет пускать луч вниз, независимо от поворота объекта
Ответы (3 шт):
Автор решения: MBo
→ Ссылка
Если Fi=transform.Rotation.z означает угол поворота вокруг оси Z, то
Vector2.x = cos(Fi)
Vector2.y = sin(Fi)
Автор решения: 1mpulse
→ Ссылка
Vector2 correct = Vector2.zero;
correct.x = Mathf.Cos(transform.rotation.eulerAngles.z * Mathf.Deg2Rad);
correct.y = Mathf.Sin(transform.rotation.eulerAngles.z * Mathf.Deg2Rad);
Debug.DrawRay(transform.position, correct, color: Color.blue, 1);
данный код работает
Автор решения: Yaroslav
→ Ссылка
// перевод градуса в радиану
float radian = transform.Rotation.z*Mathf.Deg2Rad;
Vector2 vector = new Vector2(Mathf.Cos(radian), Mathf.Sin(radian));
Не зная геометрии окружности далеко в геймдеве не уедешь. Что такое Sin, Cos и Pi нужно знать.