유니티 입문 TopDown(1-16 ~ 1~31)
Mathf.Atan2(direction.y, direction.x) 은 “2D 벡터 (x, y) 가 x축과 이루는 각도(라디안)” 를 계산한다. Atan2(y/x)와 다르게 사분면에 따라 각도를 반환하고 결과는 -π ~ +π 범위(라디안)이다.
Mathf.Rad2Deg을 곱해 라디안(π 라디안 = 180°)을 도(degree) 로 바꿔 준다.
float rotZ = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
즉 rotZ는 이제 -180도 ~ +180도 범위의 회전각도가 된다.
bool isLeft = Mathf.Abs(rotZ) > 90f;
Mathf.Abs(rotZ)는 각도의 절댓값(0°~180°)을 말한다.
절댓값이 90°를 넘는다는건 시계상 90° 이상 돌아갔다를 의미하며 즉 왼쪽 방향을 바라본다는 뜻이 된다. 이를 이용해 회전을 구현할 수 있다.
난 Tilemap기능이 있다는걸 오늘 처음 알았다. 직접해보니 완전 신세계다. 이 기능을 좀 더 일찍 알았더라면... 지금이라도 알아서 다행이다. 신난 기분으로 까먹지 않게 빨리 써보겠다.
Window -> 2D -> TilePalette에서 만들 수 있다.

Tilemap은 2D 게임 맵을 타일 단위로 쉽고 효율적으로 만들 수 있는 기능이다.
사용하기 위해서 Hierachy에 Grid를 만들어주자. 필요한 경우 Tilemap Collider 2D도 추가할 수 있다.

원하는 sprite를 끌어서 넣고, 같은 파일에 넣어주자. 원하는 타일을 선택 후 배치해주면 되는데 드래그로 한번에 배치할 수도 있다. 매우 편리!

뭔가 알찬 오늘이었다. 강의 코드가 이해하기 좀 어렵긴 했지만... 새로운걸 알게 된 것에 의의를 둔다. 계속해서 코드 공부를 해야 할 것 같다. 저런 코드들도 바로바로 잘 이해할 수 있는 수준까지 올라오면 좋겠다는 생각이 든다....
내일은 개인과제를 시작해볼까한다. 강의 들은걸 전부 체득하지도 못한 것 같지만 더 이상 늦출순 없다!!!