티스토리 뷰
Dodge game를 만들어 보자. 해당 Game은 '레트로의 유니티 게임 프로그래밍 에센스'를 참고해서 만들었다.
01. Scene 구성
> Plane(바닥) 생성
Hierarchy 창에서 Create > 3D object > Plane 선택 Plane의 Transform은 (0, 0, 0)으로 초기화해준다. Main Camera가 (0, 0, 0) 값을 가지고 있기 때문에 Transform이 다른 곳에 있다면 번거로워질 수도 있다.
> Plane에 색 입히기
Project 창에서 Create > Material 선택하고 Albedo로 물체의 기본색을 결정한다. Plane Color를 드래그해서 Scene창의 Plane에 넣어주면 색이 Plane Color로 바뀐다.
> Cube(벽) 생성
Plane 생성과 동일한 방법으로 Create > 3D object > Cube 해준다. Transform은 (0, 0 ,0)이면 Plane과 겹쳐서 존재하기 때문에 (0, 0.5, 0)으로 설정해주고 x축 방향으로 Scale를 20만큼 늘려줬다. 그리고 각 벽의 위치는 Plane의 끝에 두면 된다.
* Object ... 복사하기
- Mac : Command⌘ + D
- Windows : Ctrl + D
벽의 위치는 Plane과 잘 맞닿을 정도로만 지정,
# 1번 Cube Position = (0, 0.5, 10)
# 2번 Cube Position = (0, 0.5, -10)
# 3번 Cube Position = (10, 0.5, 0) + Rotation(0, 90, 0)
# 4번 Cube Position = (-10, 0.5, 0) + Rotation(0, 90, 0)
3번과 4번 벽은 y축으로 90도 돌려줬다.
Hierarchy 창에서 Create > Create Empty 생성해서 해당 Object 하위에 Plane과 Cube를 넣으면, Plane과 Cube가 해당 Object로 묶인다. 계속해서 Object를 생성하면 Hierarchy가 지저분해질 수 있기에 비슷한 애들은 묶어주는 게 좋다.
02. Main Camera 설정
> Main Camera 위치, 배경색 변경
Main Camera Position이 처음에 (0, 0, 0)으로 되어있다면 Plane과 Position이 동일해서 Game 화면에서 play 하는 모습이 보이지 않는다. 카메라를 y축으로 15, z축으로 -10 이동시킨 곳에서 x축으로 60 정도 회전시키면 Plane이 잘 보인다.
03. Player 생성
> Player Object 생성
Create > 3D object > Capsule로 생성하고 이름을 알아보기 쉽게 Player로 지정한다. (아까 만든 Cube도 이름을 Wall로 해주면 좋다) Position(0, 1, 0)으로 하면 Plane 위에 서 있게 된다. Plane Color와 동일하게 Player Color를 생성하고 Player에 넣어주었다.
* Tag를 Player로 지정
- Tag : 충돌이 생길 경우 해당 Object를 확인하기 위해서 Tag를 지정해준다.
* Rigidbody Component 추가
- Rigidbody : Object가 물리와 중력의 영향을 받게 함
Player는 다른 물체와 충돌이 있을 때 다른 방향으로 회전을 해서도, 높이가 변경돼서도 안됨 :: Rigidbody Constraints
# Freeze Position : Object의 Position이 해당 축으로는 움직일 수 없게
# Freeze Rotation : Object가 해당 축으로는 회전할 수 없게
► y축 Freeze Position + x, z축 Freeze Rotation
현재까지 완성된 화면이다. (2)에서는 Player Object를 움직이는 Script를 작성해보자.
'Unity' 카테고리의 다른 글
Dodge Game - 총알 피하기 게임(최종) (0) | 2020.08.02 |
---|---|
Dodge Game - 총알 피하기 게임(4) (0) | 2020.08.01 |
Dodge game - 총알 피하기 게임(3) (0) | 2020.07.09 |
Dodge game - 총알 피하기 게임(2) (0) | 2020.07.07 |