자동차를 이용해 택배를 옮기는 게임을 만들 것이다
처음 만드는 게임이라 모든 것이 낯설지만 새로운 도전이라 마음이 두근대기도 한다
1. Rotate, Translate, 변수, SerializeField
- 오브젝트 회전: Rotate (transform.Rotate(x,y,z))
- 오브젝트 이동: Translate (transform.Translate(x,y,z))
- 변수: int, float(대부분 뒤에 f를 추가), string 등
- 직렬화(SerializeField) Inspector에 보이게끔 추가, []을 사용해 변수명 앞에 붙이면 된다
2. Rotate는 왜 Z축을 기준으로 하는가?
transform.Rotate(0,0,-steerAmount);
회전은 특이하게 Z축을 기준으로 하던데
2D 게임에서는 Z축 회전이 화면상 "왼쪽/오른쪽으로 도는 것"처럼 보인다고 한다
Z축은 흔히 3D에서 쓰기 때문에 Z축이 움직인다는 생각은 해보지 않았는데
E버튼을 눌러 직접 돌려보면 놀랍게도 Z축이 변한다...

W를 눌러 왼쪽, 오른쪽, 위, 아래도 움직여봤는데
좌우는 X의 값이, 상하는 Y의 값이 변하였다
쉽게 생각해서
X : 좌우
Y : 상하
Z : 회전 이라고 생각하면 될 것 같다
그렇다면 3D에서는 어떨까?
X: 앞뒤로 고개를 끄덕임
Y: 좌우로 고개를 흔듦
Z: 물체가 돌음
우리의 신 지피티니(ChatGPT)에게도 물어봤는데, XY 평면 위에서 작업하기 때문이라는 답변이 나왔다
📌 3. 2D에서 Z축을 돌리는 이유Unity의 2D 모드는 사실 XY 평면 위에서 작업합니다.
즉:
🔍 비유종이 한 장(XY 평면)에 그림이 있다고 상상해보면,그 종이를 좌우/상하로 움직이는 건 X, Y축 이동이고, 그 종이를 제자리에서 돌리는 건 Z축 회전입니다. |
일단 너무 어려워서 후에 추가하도록 하겠다.
3. 카메라 비율 바꾸는 방법
그리고 전부터 생겼던 문제가 더 커져서 고치는 방법도 기재하도록 하겠다

바로 카메라의 비율이 '세로'로 되어있다는 것이다
예제를 보면 계속 가로인 채로 수정을 하셔서 Game 메뉴에서 잘 보이는데
내 프로젝트는 계속 세로인 채로여서 수정을 거쳤더니 이런 대절망의 시대가 찾아왔다 비율이 이상하다못해
컨트롤제트로도 되돌릴 수 없게 된 것이다
여기저기 도움을 요청했지만 안돼서 AI에게 부탁했더니 해결이 됐다
방법은 Game 뷰에서 Free Aspect를 16:9로 바꾸는 것이다

4. Input.GetAxis() 을 사용한 인풋 시스템
인풋 시스템: 버튼이나 키보드 입력을 정보로 바꾸는 것
유니티는 old 시스템과 new 시스템 2가지로 인풋 시스템이 나뉜다
old 시스템의 단점은 명칭을 완벽하게 알아야한다는 것 (string 참조를 걸어야한다)
axes (axis의 복수)는 -1에서 1까지 조정가능하다
Update() 안에 쓰느냐 마느냐는 '프레임에 따라 바꿀 필요가 있나?' 에 따라 결정된다
예를 들어 단순 변수 값인 steerSpeed는 메소드 밖에 쓰지만
steerAmount같은 경우처럼 계속 바뀌는 값이여야 한다면 메소드 안에 써준다
'유데미 > C# Unity 2D' 카테고리의 다른 글
| Snow Boarder - 3 (42강-완) (0) | 2025.09.25 |
|---|---|
| Snow Boarder - 2 (35-41강) (1) | 2025.08.31 |
| Snow Boarder - 1 (29-34강) (0) | 2025.08.22 |
| Delivery Driver - 3 (21-강의 완) (3) | 2025.08.20 |
| Delivery Driver - 2 (16-20강) (2) | 2025.08.16 |