삼각함수!!
삼각함수는 게임에서 위치 계산, 움직임 구현, 카메라 제어, 물리 엔진 등에서 다양하게 활용한다
이 글에서는 삼각함수의 간단한 개념과 게임 개발에서 삼각함수가 어떻게 쓰이는지 알아보고 간단한 예제를 만들어 보려고 한다~~
삼각함수
삼각함수는 수학에서 삼각형의 각과 변의 관계를 나타내는 함수로, 특히 직각삼각형을 다룰 때 매우 유용하다
- 사인, 코사인, 탄젠트의 세 가지 기본 함수로 구성된다
- 사인과 코사인의 그래프
빗변이 1인 직각삼각형에서 코사인은 x좌표가 되고 사인은 y좌표가 된다
그렇다면 0 90 180 270 도 4가지 각도로 사인과 코사인을 봤을 때
0도 | 90도 | 180도 | 270 | |
Sin | 0 | 1 | 0 | -1 |
Cos | 1 | 0 | -1 | 0 |
-1 ~ 1 사이를 반복적으로 왔다갔다하게 된다
이 그래프처럼
유니티에서는 삼각함수를 어떻게 활용하고 있을까?
빗변이 1인 직각삼각형을 기준으로 단위원을 그려보자!!!
빗변을 단위화한 벡터로 봤을 때 벡터의 종점 좌표는 (Cos, Sin)이 된다 즉 유니티의 Mathf.Sin과 Mathf.Cos 함수에 원하는 각도를 넣어 벡터의 방향을 알게된다. 그 방향을 이용해서 오브젝트를 제어할 수 있게 된다
특히 삼각함수의 주기성과 반복성으로 오브젝트를 다양한 움직임, 궤적, 애니메이션등을 구현할 수 있따
생각나는 건 탄막 게임에서 적이 탄막을 생성할 때 쓰거나 공전하는 거처럼 뱅글뱅글 돌리기도 가능하다~~
이번엔 탄막게임에서 보스가 사용하는 몇가지 패턴을 만들어 보자~~
유니티 첫 2d 게임 만들 때 이런 탄막 패턴 코드를 복붙해서 사용했던 경험이 있는데
그때 코드들을 내 손으로 만들어보니 신기방기했다
1. 직선 패턴
2. 부채꼴 패턴
3. 동그라미 패턴
4. 동그라미 발사 패턴
5. 난사 패턴
6. 하트 패턴
마지막 하트패턴은 파라매트릭 방정식을 참고해서 구현했다
끝!!