make a shooting game using unity

72
Unity 엔진으로 슈팅게임 만들기 http://www.soganggame.ac.kr http://cafe.naver.com/newguests

Upload: acura-netics

Post on 18-Jan-2015

837 views

Category:

Software


7 download

DESCRIPTION

Make a Shooting game using Unity Unity 엔진으로 슈팅게임 만들기 강좌입니다. 새로운 환경에 따라 일부 내용이 추가되었습니다.

TRANSCRIPT

Page 1: Make a shooting game using unity

Unity엔진으로슈팅게임만들기

http://www.soganggame.ac.kr http://cafe.naver.com/newguests

Page 2: Make a shooting game using unity

• 2D Shooting Game 만들기

• 유니티 설정

• 캐릭터 생성

• 배경 생성

• 총알 생성

• 적 생성

• 플레이어 충돌

• 폭발효과 넣기

• 해상도 맞추기

목차

• 사운드 입히기

• 스코어 출력하기

• 이동영역 제한하기

• 파워업 만들기

• 재시작 만들기

• 메인 메뉴 만들기

• 크레딧 만들기

Page 3: Make a shooting game using unity

• http://unity3d.com 접속 한 뒤 우측 상단의 Download 클릭

유니티 설정 #1

Page 4: Make a shooting game using unity

• 중앙에 있는 Download Unity 4.x.x 클릭

유니티 설정 #1

Page 5: Make a shooting game using unity

• 유니티 실행화면

유니티 설정 #3

Page 6: Make a shooting game using unity

• Windows 사용자는 계정명이 영어인지 확인할 것

계정명이 한글일 경우 설치 후 100% 실행이 안되니

영어로 된 계정을 하나 생성할 것.

유니티 설정 #4

h t t p : / / g o o . g l / o D 9 M u Q첨부파일 (준비물 ) 다운로드 ! ! !

h t t p : / / g o o . g l / 9 H E C r m게임에 쓰일 스크립트 모음

Page 7: Make a shooting game using unity

• 개발환경 설정

유니티 설정 #5

File – New Project 선택Project Location에 원하는 프로젝트 명을 적어준다.

Ex)Shooting Project 등, 단 무조건영어로!Setup defaults for 에서 2D를 선택하고 Create를 누른다.

Page 8: Make a shooting game using unity

• 개발환경 설정

유니티 설정 #5

화면 우측 상단에서Layout을 2 by 3으로 설정

Project 옆에 있는 ▼三 을 누른뒤 One Column Layout을 선택해준다.

Page 9: Make a shooting game using unity

Ctrl + 1 Scene창선택

Ctrl + 2 Game 창 선택

유니티 설정 #6

Scene창 사용자가작업하는화면

Game창 작업물이 완성되어 플레이를 할 때의 화면

Hierarchy창 현재 장면의 모든 게임 오브젝트를 포함하는 창

Project창 게임에 쓰이는 스크립트나 그림 파일을 담아놓는 창

Inspector창 현재 선택 된 것의 정보를 상세하게 보여주는 창

Scene 창에서

마우스휠 줌인, 줌아웃

마우스휠클릭 이동

Alt +마우스왼쪽버튼클릭 객체를 중심으로 회전

마우스오른쪽버튼클릭 카메라를 중심으로 회전

Page 10: Make a shooting game using unity

캐릭터 생성 #1

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

GameObject – Create Other – Quad 클릭

Hierarchy 창에 Quad가 생성 된다

Quad의 Transform 설정값

Position (0, 0, 0)Rotation (0, 0, 0)Scale (2, 2, 1)

Page 11: Make a shooting game using unity

캐릭터 생성 #2

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

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

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

Page 12: Make a shooting game using unity

캐릭터 생성 #3

Texture 폴더 안에 들어가있다.

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

Quad에 그림이 입혀졌다.

Page 13: Make a shooting game using unity

캐릭터 생성 #4

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

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

흰색 바탕이 투명해졌다.

Page 14: Make a shooting game using unity

캐릭터 생성 #5

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

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

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

Page 15: Make a shooting game using unity

캐릭터 생성 #6

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

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

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

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

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

Page 16: Make a shooting game using unity

캐릭터 생성 #7

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

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

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

Page 17: Make a shooting game using unity

캐릭터 생성 #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 애니메이션 프레임의 개수용 애니메이션이 진행될 것이다.

Page 18: Make a shooting game using unity

캐릭터 생성 #9

Plane이름을 Dragon으로 변경.

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

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

GameObject – Create Empty 클릭

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

Player 안에 Dragon이 들어갔다.

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

Page 19: Make a shooting game using unity

캐릭터 생성 #10

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

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

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

Page 20: Make a shooting game using unity

캐릭터 생성 #11

스크립트란?

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

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

이와 같이 작성한다.

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

Page 21: Make a shooting game using unity

캐릭터 생성 #12

Hierarchy 창에서 Player를 누른 상태에서 Player 스크립트를 드래그 하여 Inspector창에 넣는다.실행을 하면 오른쪽 왼쪽 방향키에 따라 용이 좌우로 움직일 것이다.

이제 위 아래로도 움직여보자. MonoDevelop을 열어 아래와 같이 추가로 작성을 한다.

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

Page 22: Make a shooting game using unity

배경 생성 #1

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

GameObject – Create Other – Cube 클릭

Page 23: Make a shooting game using unity

배경 생성 #2

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

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

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

Page 24: Make a shooting game using unity

배경 생성 #3

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

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

Page 25: Make a shooting game using unity

배경 생성 #4

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

Page 26: Make a shooting game using unity

배경 생성 #5

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

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

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

Page 27: Make a shooting game using unity

배경 생성 #6

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

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

Cube의 이름을 Background로 바꿔준다

Page 28: Make a shooting game using unity

총알 생성 #1Player 스크립트를 연다

변수를 추가한다.

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

Page 29: Make a shooting game using unity

총알 생성 #2

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

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

Page 30: Make a shooting game using unity

총알 생성 #3

BULLET이 들어간 모습

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

Page 31: Make a shooting game using unity

적 생성 #1

GameObject – Create Empty 클릭

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

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

Page 32: Make a shooting game using unity

적 생성 #2

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

위와 같이 변수를 적는다

Enemyspawn 설정값Enemy 생성될 적 객체rangeX 적이 생성될 x좌표 범위enemyTime 적이 생성되는 시간fElapsedTime 저장될 시간 (표시시간)

Page 33: Make a shooting game using unity

적 생성 #3

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

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

Page 34: Make a shooting game using unity

적 생성#4

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

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

Page 35: Make a shooting game using unity

플레이어 충돌 #1

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

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

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

Page 36: Make a shooting game using unity

플레이어 충돌 #2

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

Component – Physics 2D – Box Collider(2D)를 눌러준다

Player에게 BoxCollider2D가 추가되었다.

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

Is Trigger는 다른 물체와 부딪혔을 때 밀리지 않고 그냥 지나가게 만들어준다.

미사일과 부딪혔을 때 밀리면 안되기 때문.

Page 37: Make a shooting game using unity

플레이어 충돌 #3

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

( 0.5, 0.5, 1)로 설정

Page 38: Make a shooting game using unity

플레이어 충돌 #4

Player의 Inspector창에서 Tag 옆에 Untagged를 누르면 Player라고 있을 것이다.Player를 클릭.

실행하면 Player도 헬리콥터의 미사일에 맞아서 없어지는 것을 볼 수 있다.

Page 39: Make a shooting game using unity

폭발효과 #1

GameObject – Create Other – Quad 클릭CAnimation스크립트와 미리 만들어 둔 dragon 매터리얼을 드래그해서 추가한다

Transfor과 Canimation의 값을 왼쪽과 같이 바꿔준다

Page 40: Make a shooting game using unity

폭발효과 #2

Script 폴더에 C# Script를 추가해준다. 이름은 Effect로 정해주고 아래의 내용을 입력한다.

Page 41: Make a shooting game using unity

폭발효과 #3

Quad를 선택하고 Effect를 드래그해서 넣어준다.

Page 42: Make a shooting game using unity

폭발효과 #5

Project 아래에 있는 Create를 누르고 Prefab을 선택해준다. 그 다음, Quad 오브젝트를 Effect 프리팹에 드래그한다.그다음 Quad 오브젝트를 삭제한다.

Page 43: Make a shooting game using unity

폭발효과 #6

Crash 스크립트를 열고 내용을 오른쪽과 같이 수정한다.

Page 44: Make a shooting game using unity

폭발효과 #7

Bullet와 EnemyBullet에서Crash스크립트의 Effect Obj를

앞서 만든 Effect프리팹으로 설정한다.그리고 3D Sound체크를 해제한다.

Sound폴더에 BOOM.wav파일을 추가한다.

Page 45: Make a shooting game using unity

폭발효과 #8

방금 추가한 BOOM 사운드를 Effect 프리팹에 드래그 한다그리고 Play On Awake에 체크를 해준다 (자동으로 재생되게 함)

Page 46: Make a shooting game using unity

해상도 맞추기 #1

Hierarchy의 Main Camera를 누른다.

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

Page 47: Make a shooting game using unity

해상도 맞추기 #2

Y Axis

FieldOfViewNearClippingPlane

FarClippingPlane

Y Axis

Size

NearClippingPlane

FarClippingPlane

원근(Perspective) 직교(Orthographic)

Page 48: Make a shooting game using unity

사운드 입히기 #1

Sound 폴더를 만든다.

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

Page 49: Make a shooting game using unity

사운드 입히기 #2

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

Page 50: Make a shooting game using unity

사운드 입히기 #3

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

Page 51: Make a shooting game using unity

스코어 출력하기

Hierarchy에 있는 GUI Text의 이름을 Score로 변경

Script -> Create -> C# Script 생성 Score로 이름 변경 후 아래 내용 입력

Page 52: Make a shooting game using unity

스코어 출력하기

Player 스크립트의public GameObject bullet; 아래에public int KillEnemyCount = 0; 을 추가한다.

GUI Text안의 내용을 왼쪽과 같이 바꿔준다.

Page 53: Make a shooting game using unity

이동 영역 제한하기

기존의 Update() 안에 있던 float dirX와 dirY의 내용을 아래와 같이 수정해준다.

Page 54: Make a shooting game using unity

파워 업 만들기

적을 11마리 이상 죽이면 플레이어가 발사하는 총알이 2배가 될 수 있도록 만들어 볼 것이다.

Player 스크립트의public GameObject bullet; 아래에public GameObject bullet2; 을 추가한다.

하단 Update() 에 있는 (Input.GetKeyDown ~ 의내용을 왼쪽과 같이 바꿔준다.

Page 55: Make a shooting game using unity

파워 업 만들기

Hierarchy에 있는 Player에 Bullet2가 생긴 것을 볼 수있다.

Bullet2에 Bullet 프리팹을 드래그 해서 넣어준다.

Page 56: Make a shooting game using unity

재시작 만들기

좌 상단의 메뉴에서 File클릭 후 Save Scene as… 클릭 후 Scene폴더에 파일 이름을 InGame으로 저장

클릭 후 - RestartButton이라고 이름을 변경

Page 57: Make a shooting game using unity

재시작 만들기

Add Component – Mesh – TextMesh

RestartButton이라는 이름의 스크립트를 생성 후 다음과 같이 코드 작성

클릭 후 - RestartButton이라고 이름을 변경

Page 58: Make a shooting game using unity

재시작 만들기

Player스크립트에 다음과 같이 변수 선언

Page 59: Make a shooting game using unity

재시작 만들기

그리고 Update코드를 다음과 같이 수정한다. 밑줄 그은 부분만

Page 60: Make a shooting game using unity

재시작 만들기

스크립트 Crash부분에 다음과 같이 코드를 추가 한다.

마지막으로 RestartButton 스크립트를 Background(혹은 Cube)에 드래그 앤 드랍

Page 61: Make a shooting game using unity

재시작 만들기

이렇게 생긴 버튼이 생기고 클릭하면 게임을 다시 시작함

Page 62: Make a shooting game using unity

메인 메뉴 만들기

File에서 New Scene 클릭

새롭게 만들어진 씬

좌 상단의 메뉴에서 File클릭 후 Save Scene as…클릭 후 Scene폴더에 파일 이름을 MainMenu로 저장

3번 배경만들기와 동일하게 배경을 만들고 이름을 Background로 변경한다.

Page 63: Make a shooting game using unity

메인 메뉴 만들기

GameObject를 2개 생성하고 각각 이름을 CreditButton과InGameButton 으로 변경시켜준다.

두 개의 오브젝트에 왼쪽과 같이Add Component – Mesh – TextMesh 추가 시켜준다.

Page 64: Make a shooting game using unity

메인 메뉴 만들기

스크립트 생성 후 SceneControl이라 이름 변경하고 아래와 같이 작성

이후 Background 오브젝트에 스크립트를 드래그 앤 드랍.7번 해상도 맞추기처럼 카메라를 변경 해준다.

Page 65: Make a shooting game using unity

크레딧 만들기

File에서 New Scene 클릭

새롭게 만들어진 씬

좌 상단의 메뉴에서 File클릭 후 Save Scene as…클릭 후 Scene폴더에 파일 이름을 Credit로 저장

3번 배경만들기와 동일하게 배경을 만들고 이름을 Background로 변경한다.

Page 66: Make a shooting game using unity

크레딧 만들기

생성하고 이름을 BackButton 으로 변경시켜준다.

두 개의 오브젝트에 왼쪽과 같이Add Component – Mesh – TextMesh 추가 시켜준다.

Page 67: Make a shooting game using unity

크레딧 만들기

스크립트 생성 후 BackButton이라 이름 변경하고 아래와 같이 작성

이후 Background 오브젝트에 BackButton 스크립트를 드래그 앤 드랍한다.

Page 68: Make a shooting game using unity

크레딧 만들기

클릭 후 - Credit라고 이름 변경

Credit이라는 스크립트를 만들어서 아래와 같이 작성

이후 Credit 오브젝트에 스크립트를 드래그 앤 드랍

Page 69: Make a shooting game using unity

빌드 하기 #1

File에서 Build Setting을 선택한다.

Page 70: Make a shooting game using unity

빌드 하기 #2

왼쪽과 같은 창이 뜨면Scene폴더의 InGame과 MainMenu를 드래그해서 놓아준다.순서는 MainMenu가 제일 위에 오게끔 한다.

Page 71: Make a shooting game using unity

빌드 하기 #3

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

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

Page 72: Make a shooting game using unity

END! P r e s e n t e d b y