티스토리 뷰

Unity

Dodge game - 총알 피하기 게임(1)

XXIN-dev 2020. 7. 6. 20:37

Dodge game를 만들어 보자. 해당 Game은 '레트로의 유니티 게임 프로그래밍 에센스'를 참고해서 만들었다. 

 

01. Scene 구성

>  Plane(바닥) 생성

Hierarchy에서 불러온 Plane

Hierarchy 창에서 Create > 3D object > Plane 선택 Plane의 Transform은 (0, 0, 0)으로 초기화해준다. Main Camera가 (0, 0, 0) 값을 가지고 있기 때문에 Transform이 다른 곳에 있다면 번거로워질 수도 있다.

 

>  Plane에 색 입히기

Project에서 Plane에 넣어줄 색 Material 생성

Project 창에서 Create > Material 선택하고 Albedo로 물체의 기본색을 결정한다. Plane Color를 드래그해서 Scene창의 Plane에 넣어주면 색이 Plane Color로 바뀐다.

 

> Cube(벽) 생성

Hierarchy 창에서 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도 돌려줬다.

 

현재까지 완성된 Scene의 모습

Hierarchy 창에서 Create > Create Empty 생성해서 해당 Object 하위에 Plane과 Cube를 넣으면, Plane과 Cube가 해당 Object로 묶인다. 계속해서 Object를 생성하면 Hierarchy가 지저분해질 수 있기에 비슷한 애들은 묶어주는 게 좋다.

 


02. Main Camera 설정

 

> Main Camera 위치, 배경색 변경

Main Camera Inspector 창

Main Camera Position이 처음에 (0, 0, 0)으로 되어있다면 Plane과 Position이 동일해서 Game 화면에서 play 하는 모습이 보이지 않는다. 카메라를 y축으로 15, z축으로 -10 이동시킨 곳에서 x축으로 60 정도 회전시키면 Plane이 잘 보인다.

 


03. Player 생성

 

> Player Object 생성

Player Inspector 창

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

 

현재까지 완성된 화면를 Game창으로 봄

 

현재까지 완성된 화면이다. (2)에서는 Player Object를 움직이는 Script를 작성해보자.

링크
최근에 올라온 글
최근에 달린 댓글