40
Unity 3D Study 선빈동 13 하계방학 스터디 자료제작 초안 : 최인규 편집 : 김현우 (Acura Netics) #2. 2D Shooting Game 만들어보기

Unity 3d study #2

Embed Size (px)

DESCRIPTION

서강대학교 게임교육원 동아리 선빈동 13 하계방학 스터디 Unity 3D Study - #2. 2D 슈팅 게임 만들기

Citation preview

Unity 3D Study

선빈동 13 하계방학 스터디 자료제작 초안 : 최인규

편집 : 김현우 (Acura Netics)

#2. 2D Shooting Game 만들어보기

목 차

• 2D Shooting Game 만들기

– 캐릭터 생성

– 배경 생성

– 총알 생성

– 적 생성

– 플레이어 충돌

– 해상도 맞추기

– 사운드 입히기

먼저…

• Windows 사용자는 계정명을 영어로 설정해줄것 ex) 유니티 -> Unity 계정명이 한글일 경우 설치 후 100% 실행 안됨

http://cafe.naver.com/newguests/12 첨부파일 (준비물 ) 다운로드 ! ! !

캐릭터 생성 #1

• 드래곤(주인공) 만들기

GameObject – Create Other – Plane 클릭

Hierarchy 창에 Plane 생성 된다

Inspector창의

Transform 설정값

Position (0, 0, 0)

Rotation (90, 180, 0)

Scale (0.1, 0, 0.1)

캐릭터 생성 #2

Project 창에서 Create – Folder 혹은 마우스 우클릭 - Create – Folder 클릭

Texture로 이름을 짓는다. ( ※나중에 이름 변경을 원하면 윈도우:F2, 맥OS : return(엔터) 버튼으로 가능 )

예제 파일에 있는 background와 dragon을 방금 만든 Texture 폴더에 드래그로 넣는다.

캐릭터 생성 #3

Texture 폴더 안에 들어가있다.

Plane을 누른 상태에서 드래곤을 드래그 하여 Inspector의 빈 자리에 드래그 하여 넣는다.

Plane에 그림이 입혀졌다.

캐릭터 생성 #4

흰색을 투명하게 만들어보자.

Hierachy창의 Plane을 누른다. 오른쪽의 Inspector 창에 보면 맨 아래 dragon 메테리얼이 보인다. Shader 옆에 Diffuse를 누른 후 Particles – Alpha Blended 클릭

흰색 바탕이 투명해졌다.

캐릭터 생성 #5

ExamplePackage를 Project 창 안에 드래그 한다.

Project 창에서 Create – Folder 혹은 마우스 우클릭 - Create – Folder 클릭 폴더의 이름을 Script 라고 이름을 짓자.

ExamplePackage를 더블클릭하면 Import 창이 나온다. Import를 눌러 가져온다.

캐릭터 생성 #6

Plane을 누른 상태에서 CAnimation을 드래그 하여 넣는다.

Project 창의 ExamplePackage파일은 선택한 상태에서 키보드의 Delete 키를 눌러 지운다.

스크립트가 (컴포넌트로 추가된 것이) 보일 것이다.

맨 위에 재생 버튼을 눌러 실행해본다. 아무것도 안나올 것이다.

재생버튼을 다시 눌러 재생을 풀어준다.

캐릭터 생성 #7

그림이 아무리 길어도 오른쪽 끝이 1이고, 위가 1이다.

유니티에서 그림을 입히는 UV(Offset)의 범위는 다음과 같다.

Tiling은 칸을 나눈다는 뜻이고, Offset은 표시할 지점의 좌표라는 뜻이다.

캐릭터 생성 #8

화면과 동일하게 입력한다.

dragon.png를 보면 세로로는 6칸, 가로로 4칸이다. 1/6은 약 0.166이며, 1/4는 0.25다. 용을 출력 해야하기 때문에 OffsetY는 밑에서부터 5번째부터 시작하기 때문에 0.166 * 5로 해서 약 0.833이다.

Canimation 패러미터 설명

OffsetX 한번에 이동할 X좌표 크기

OffsetY 애니메이션이 시작할 위치의 y좌표

ScaleX, ScaleY 그림당 가로 세로 크기

Animation Speed 애니메이션이 되는 속도

Sprite Number 애니메이션 프레임의 개수 용 애니메이션이 진행될 것이다.

캐릭터 생성 #9

Plane이름을 Dragon으로 변경.

GameObject라는 것이 생겼을 것이다. Player로 이름을 바꿔준다.

이제 용을 방향키에 맞게 이동시켜보자.

GameObject – Create Empty 클릭

Dragon을 Player에 드래그 하여 넣는다.

Player 안에 Dragon이 들어갔다.

Player의 좌표를 0, 0, -3으로 바꾼다.

캐릭터 생성 #10

Script 폴더에서 마우스 우클릭 – Create – C# Script 클릭

MonoDevelop가 실행된다. MonoDevelop는 스크립트를 편집할 수 있는 프로그램이다.

Player라고 이름을 짓는다. 더블 클릭하여 들어간다

캐릭터 생성 #11

스크립트란?

- 사용자가 움직이거나 변형하고 싶은 물체(오브젝트)를 스크립트를 이용하여 마음대로 바꿀 수 있다.

*스크립트를 작성할 때 꼭 대소문자를 구분해줘야 한다!!!

이와 같이 작성한다.

F7을 누르면 빌드가 되고 오류가 없다면 왼쪽 밑에 성공했다는 글이 나온다.

캐릭터 생성 #12

Hierarchy 창에서 Player를 누른 상태에서 Player 스크립트를 드래그 하여 Inspector창에 넣는다. 실행을 하면 오른쪽 왼쪽 방향키에 따라 용이 좌우로 움직일 것이다. 이제 위 아래로도 움직여보자. MonoDevelop을 열어 아래와 같이 추가로 작성을 한다.

F7을 눌러 빌드를 한 후 유니티에서 실행버튼을 눌러보자. 위아래로도 움직일 것이다

배경 생성 #1

Game 창에서 화면 사이즈를 1024x768로 선택한다. 게임의 해상도를 정하는 설정이다.

GameObject – Create Other – Cube 클릭

배경 생성 #2

큐브의 정보를 위와 같이 입력한다.

Background 그림을 Cube에 드래그 하여 넣는다.

Particles – Alpha Blended Cube에서 Shader의 정보를 위와 같이 바꿔준다

배경 생성 #3

Project 창 - Script 폴더 – 마우스 우클릭 – Create – C# Script – 이름을 Background로 만든다. 더블클릭 하여 MonoDevelop를 켠다.

이와 같이 작성한다. F7을 눌러 빌드를 하여 성공을 하였는지 확인한다

배경 생성 #4

Cube를 선택한 상태에서 Background 스크립트를 드래그 하여 Cube의 Inspector 창에 넣는다. 재생을 하면 배경이 움직일 것이다.

배경 생성 #5

Project 창에 Scene이란 폴더를 만들자.

File – Save Scene 혹은 Ctrl + S를 누른다.

Assets 폴더가 나오는데, Scene 폴더가 있다. 더블클릭 하여 들어간 다음 Game이라고 저장해주자

배경 생성 #6

그럼 Project 창의 Scene 폴더 안에 Game이란 씬 파일이 생성되었다.

이처럼 각각의 씬을 만들고 저장할 수 있다.

Cube의 이름을 Background로 바꿔준다

총알 생성 #1

Player 스크립트를 연다

변수를 추가한다.

Update()안에 위와 같이 추가한다.

총알 생성 #2

Hierarchy에서 Player를 누르면 Inspector 창 안에 있는 Player 스크립트에 BULLET이 추가된 것을 볼 수 있다.

Project 창의 Bullet을 드래그 하여 None이라 써있는 자리에 넣는다

총알 생성 #3

BULLET이 들어간 모습

실행을 하고 스페이스를 누르면 불을 쏘는 것을 볼 수 있다

적 생성 #1

GameObject – Create Empty 클릭

SpawnEnemy로 이름을 바꾼다. Spawn : (알을)낳다

SpawnEnemy의 좌표를 (0, 8, -3)으로 해준다.

적 생성 #2

Script에서 C# Script를 만들어 SpawnEnemy를 만든다

위와 같이 변수를 적는다

Enemyspawn 설정값

Enemy 생성될 적 객체

rangeX 적이 생성될 x좌표 범위

enemyTime 적이 생성되는 시간

fElapsedTime 저장될 시간 (표시시간)

적 생성 #3

Instantiate(Enemy, this.gameObject.transform.position + new Vector3(_randomX, 0, 0), Quaternion.identity); 이부분이 적을 생성하는 코드이다.

F7을 눌러 빌드를 한다. 오류가 없다면 왼쪽 아래에 Build Success가 나올 것이다.

적 생성#4

Hierarchy 창의 SpawnEnemy를 선택 후 Project창의 SpawnEnemy를 Inspector창에 드래그를 한다. Inspector창에서 RangeX와 EnemyTime의 수치를 바꿀 수 있다.

Project창의 Enemy를 드래그 하여 None으로 되어있는 자리에 넣는다. 실행을 하면 적이 미사일을 쏘면서 내려오는 것을 볼 수 있다.

플레이어 충돌 #1

실행을 하면 헬리콥터가 쏘는 미사일에는 용이 맞지 않는 것을 볼 수 있다. 먼저 물리 설정을 해준다.

Player를 누른 상태에서 Component – Physics – Rigidbody 클릭

Player에 Rigidbody가 추가되었다. Use Gravity의 체크를 해제해준다. 이것은 중력을 사용하겠다는 설정인데, 필요 없으므로 과감하게 체크 해제!

플레이어 충돌 #2

이제 충돌체크 설정을 하자.

Component – Physics – Box Collider를 눌러준다

Player에게 BoxCollider가 추가되었다.

Is Trigger를 꼭 체크를 해주어야 한다.

Is Trigger는 다른 물체와 부딪혔을 때 밀리지 않고 그냥 지나가게 만들어준다. 미사일과 부딪혔을 때 밀리면 안되기 때문.

플레이어 충돌 #3

Scene 창에서 Box collider의 충돌 범위를 볼 수 있다. Inspector창에서 Size를 조절하면 충돌박스의 크기를 조절할 수 있다.

( 0.5, 0.5, 1)로 설정

플레이어 충돌 #4

Player의 Inspector창에서 Tag 옆에 Untagged를 누르면 Player라고 있을 것이다. Player를 클릭. 실행하면 Player도 헬리콥터의 미사일에 맞아서 없어지는 것을 볼 수 있다.

해상도 맞추기 #5

Hierarchy의 Main Camera를 누른다.

Projection을 Perspective에서 Orthographic으로 바꾼다. Size는 5로 바꾼다.

해상도 맞추기 #6

Y Axis

FieldOfView Near Clipping Plane

Far Clipping Plane

Y Axis

Size

Near Clipping Plane

Far Clipping Plane

원근(Perspective) 직교(Orthographic)

사운드 입히기 #1

Sound 폴더를 만든다.

예제 파일에있는 BGM을 드래그 하여 넣는다

사운드 입히기 #2

Main Camera를 선택 후 BGM 사운드 파일을 드래그 하여 Inspector 탭에 넣는다

사운드 입히기 #3

Play On Awake와 Loop를 체크한다. Play On Awake는 씬이 시작될 때 재생되고, Loop는 노래가 끝나면 처음부터 다시 재생되는 기능이다.

빌드 하기 #1

File에서 Build Setting을 선택한다.

빌드 하기 #2

Build And Run을 선택하고 빌드할 파일 이름을 입력하고 저장을 누르면 빌드가 된다 빌드가 완료되면 빌드명.exe 파일과 빌드명_Data 폴더가 생긴다.

빌드명.exe를 선택하면 게임을 구동할 수 있다.

END! 다 음 시 간 : 3 D 게 임 만 들 기 준 비 숙 제 : 오 늘 배 웠 던 내 용 1 회 복 습