본문 바로가기

유니티

오브젝트 랜덤 범위 방향 설정 (2.5D , 3D 방식)

방향 설정은 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