본문 바로가기

Unity

[Unity] Chap02. 유니티로 첫 게임 만들기

2-1. 프로젝트 만들기

1) 2D 프로젝트 "UniSideGame" 생성

툴 바 : 게임 오브젝트 다루기 도구(이동, 회전, 크기 변경 등) //이건 transform을 다루는 건가?
씬 뷰 | 게임 뷰 : 상단의 탭에서 뷰(씬 ↔ 게임) 전환 가능
계층 뷰 : 씬 뷰에 포함된 것을 목록으로 표시
인스펙터 뷰 : 씬 뷰에서 선택된 오브젝트의 정보 표시
프로젝트 뷰 : 에셋(자원) 표시

* frame : 1초에 그리는 횟수, unity는 1초에 50번을 표준으로 함

 

 


2-2. 게임 화면 만들기

2) Assets 폴더 구성하기
Images : 게임 내에서 사용되는 이미지 에셋
Player : 플레이어 캐릭터 데이터 에셋, 이미지나 스크립트 등
Scenes : 씬 데이터 에셋, SampleScene이 기본으로 있음

 

3) 씬 뷰에 오브젝트 배치하기
back, ground, player_stop의 3가지 오브젝트를 배치함
이때 씬 뷰에 배치된 오브젝트 3가지가 계층 뷰 목록에 나타남

+ 하얀색 박스가 게임 화면의 테두리

 

4) Component 살펴보기
[Transform]

Position(위치) : 오브젝트의 위치 X, Y, Z 좌표
Rotation(회전) : 각 축 방향을 중심으로 한 회전
→ Z축 값을 변경하면 X, Y의 회전 각도가 변경
Scale(크기) : X, Y, Z의 표시 배율을 나타냄

[Sprite Renderer]
Sprite(이미지)
: 이미지 에셋
Color(색상)
: 기본 색상은 흰색
Flip(뒤집기)
: 상하좌우 반전
Sorting Layer(레이어 정렬)
:
오브젝트 그룹(Layer) 지정
Order in Layer(레이어 순서)
:
레이어가 씬에 표시되는 순서(값이 클수록 앞에 표시)
+ 여기서는 back(0), ground(2), Player(3)으로 설정

 

5) 이미지 조작하기
ground를 선택한 후 Sprite 삭제 : 계층 뷰에는 남아있지만 씬 뷰에는 표시되지 않음
→ 씬 뷰에는 존재하지만 표시되지 않을 수 있기 때문에 포함된 오브젝트를 보려면 계층 뷰를 살펴보는 것이 좋음
오브젝트 선택 시에도 계층 뷰에서 하는 것이 좋음


+ 인스펙터 뷰 Lock : 다른 오브젝트를 선택해도 잠금해둔 오브젝트를 표시함

 

6) 무효화&표시하지 않기&선택 차단
무효화 : 인스펙터 뷰에 체크 박스를 해제하면 게임 오브젝트가 비활성화 됨(ground)
표시하지 않기 : 계층 뷰의 눈 아이콘을 클릭하면 씬 뷰에서 오브젝트가 사라짐(Player)
→ 이는 편집 중에 일시적으로 숨기기 위함
선택 차단 : 계층 뷰의 손 아이콘을 클릭하면 해당 오브젝트를 선택할 수 없음

 

7) Scene 저장하기
씬 저장 → Build Settings → Scenes In Build에 추가





+ back, ground, Player가 포함된 Stage1 생성

 

 


2-3. 플레이어 캐릭터 만들기

pivot : center                                                                                                      pivot : bottom

8) 이미지에 피벗 설정하기
Pivot : 이미지의 기준, 기본 설정은 center
→ transform을 조작할 때 피벗이 원점(기준)이 됨

+ 위에서는 플레이어 오브젝트의 발을 기준으로 이동을 해야하기 때문에 bottom으로 설정

 

9) 플레이어 오브젝트에 컴포넌트 attach
[Rigidbody 2D] : 중력

Body Type : Dynamic, Kinematic, Static
→ 물리 영향O, 외부의 힘 영향X, 물리 영향X
Material : 다른 물체와 충돌 시 상호작용
→ 튕겨 나오는 상태, 미끄러지는 상태 등
Simulated : 물리 시뮬레이션
Use Auto Mass : collider의 크기에 따라 물체의 질량 계산
Mass : 물체의 질량 설정
→ Use Auto Mass 활성화 시 설정 불가
Linear Drag : 어느정도 시간 후에 멈출지 설정
Angular Drag : 어느정도 시간 후에 회전할지 설정
Gravity Scale : 중력 설정(1G == 지구 표면과 같은 중력)
Collision Detection : 충돌을 판정하는 방법 설정
→ Discrete(빠른 속도로 움직일 경우 장애물과 겹쳐지거나 통과 가능), Continuous(장애물에 충돌 시 접촉)
Sleeping Mode : 일정시간 움직임이 없는 물체는 충돌 판정 등을 실행하지 않는 휴식 상태가 됨
→ Never Sleep : 항상 물리 계산 실행
Start Awake : 초기 상태, 휴식 상태가 아닌 값으로 실행
→ Start Sleep : 초기 값은 물리 계산 X, 충돌 등에 의해 물리 계산 시작
Interpolate : 물리 계산이 갱신될 때 동작 보간을 선택
→ None(보간X), Interpolate(직전 프레임에 따라), Extrapolate(다음 프레임에 따라)
Constraints : 동작의 제한 설정
→ Freeze Position(X, Y의 움직임 제한 == 상하좌우 움직임 금지), Freeze Rotation(Z의 움직임 제한 == 회전 금지)

 

10) 충돌 판정 컴포넌트 attach
[Box Collider 2D] : Box 모양의 충돌 판정(ground)
[Capsule Collider 2D] : Capsule 모양의 충돌 판정(Player)

+ Edit Collider로 충돌 범위 조정 가능
+ Edge Collider 2D, Polygon Collider 2D 등의 다양한 충돌 판정 컴포넌트 존재

 

 

 

*교재 : 누구나 할 수 있는 유니티 2D 게임 제작