방향 설정은 2가지 방식으로 할 수 있을 것 같다.
1. 사인 코사인 사용
float angle = Random.Range(-70f, 70f);
float rad = angle * Mathf.Deg2Rad;
Vector3 dir = new Vector3(
Mathf.Sin(rad),
0,
Mathf.Cos(rad)
);
- 범위를 잡아준다. (-70 ~ 70 사이는 부채꼴 모양이 될 수 있다.)
- 디그리를 라디안으로 변환 (사인 코사인은 도가 아니라 라디안으로 계산하기 때문)
- 좌우를 판별하는 속성에는 사인을 앞뒤를 판별하는 속성에는 코사인을 계산해서 넣어준다.
2. 쿼터니언 사용
float angle = Random.Range(-70f, 70f);
Vector3 dir = Quaternion.Euler(0, angle, 0) * Vector3.back;
- Quaternion.Euler는 Degree
- 내부적으로는 사인 코사인을 사용하여 같은 값이 도출된다.
2D는 Z축이 아니라 Y축을 설정해주면 된다.
3. 다시 angle으로 돌아오기
float rad = Mathf.Atan2(x, z);
float angle = rad * Mathf.Rad2Deg;
728x90
'유니티' 카테고리의 다른 글
| 개념정리 (0) | 2025.12.27 |
|---|---|
| 서버에서 이미지 가져오기 (내부 이미지 없음) (0) | 2025.10.08 |
| Debug Util (0) | 2025.09.01 |
| Awaitable (0) | 2025.07.03 |
| Unitask / Task 비교 (1) | 2025.06.12 |