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 회 복 습

Unity 3d study #2

  • 1.
    Unity 3D Study 선빈동13 하계방학 스터디 자료제작 초안 : 최인규 편집 : 김현우 (Acura Netics) #2. 2D Shooting Game 만들어보기
  • 2.
    목 차 • 2DShooting Game 만들기 – 캐릭터 생성 – 배경 생성 – 총알 생성 – 적 생성 – 플레이어 충돌 – 해상도 맞추기 – 사운드 입히기
  • 3.
    먼저… • Windows 사용자는계정명을 영어로 설정해줄것 ex) 유니티 -> Unity 계정명이 한글일 경우 설치 후 100% 실행 안됨 http://cafe.naver.com/newguests/12 첨 부 파 일 ( 준 비 물 ) 다 운 로 드 ! ! !
  • 4.
    캐릭터 생성 #1 •드래곤(주인공) 만들기 GameObject – Create Other – Plane 클릭 Hierarchy 창에 Plane 생성 된다 Inspector창의 Transform 설정값 Position (0, 0, 0) Rotation (90, 180, 0) Scale (0.1, 0, 0.1)
  • 5.
    캐릭터 생성 #2 Project창에서 Create – Folder 혹은 마우스 우클릭 - Create – Folder 클릭 Texture로 이름을 짓는다. ( ※나중에 이름 변경을 원하면 윈도우:F2, 맥OS : return(엔터) 버튼으로 가능 ) 예제 파일에 있는 background와 dragon을 방금 만든 Texture 폴더에 드래그로 넣는다.
  • 6.
    캐릭터 생성 #3 Texture폴더 안에 들어가있다. Plane을 누른 상태에서 드래곤을 드래그 하여 Inspector의 빈 자리에 드래그 하여 넣는다. Plane에 그림이 입혀졌다.
  • 7.
    캐릭터 생성 #4 흰색을투명하게 만들어보자. Hierachy창의 Plane을 누른다. 오른쪽의 Inspector 창에 보면 맨 아래 dragon 메테리얼이 보인다. Shader 옆에 Diffuse를 누른 후 Particles – Alpha Blended 클릭 흰색 바탕이 투명해졌다.
  • 8.
    캐릭터 생성 #5 ExamplePackage를Project 창 안에 드래그 한다. Project 창에서 Create – Folder 혹은 마우스 우클릭 - Create – Folder 클릭 폴더의 이름을 Script 라고 이름을 짓자. ExamplePackage를 더블클릭하면 Import 창이 나온다. Import를 눌러 가져온다.
  • 9.
    캐릭터 생성 #6 Plane을누른 상태에서 CAnimation을 드래그 하여 넣는다. Project 창의 ExamplePackage파일은 선택한 상태에서 키보드의 Delete 키를 눌러 지운다. 스크립트가 (컴포넌트로 추가된 것이) 보일 것이다. 맨 위에 재생 버튼을 눌러 실행해본다. 아무것도 안나올 것이다. 재생버튼을 다시 눌러 재생을 풀어준다.
  • 10.
    캐릭터 생성 #7 그림이아무리 길어도 오른쪽 끝이 1이고, 위가 1이다. 유니티에서 그림을 입히는 UV(Offset)의 범위는 다음과 같다. Tiling은 칸을 나눈다는 뜻이고, Offset은 표시할 지점의 좌표라는 뜻이다.
  • 11.
    캐릭터 생성 #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 애니메이션 프레임의 개수 용 애니메이션이 진행될 것이다.
  • 12.
    캐릭터 생성 #9 Plane이름을Dragon으로 변경. GameObject라는 것이 생겼을 것이다. Player로 이름을 바꿔준다. 이제 용을 방향키에 맞게 이동시켜보자. GameObject – Create Empty 클릭 Dragon을 Player에 드래그 하여 넣는다. Player 안에 Dragon이 들어갔다. Player의 좌표를 0, 0, -3으로 바꾼다.
  • 13.
    캐릭터 생성 #10 Script폴더에서 마우스 우클릭 – Create – C# Script 클릭 MonoDevelop가 실행된다. MonoDevelop는 스크립트를 편집할 수 있는 프로그램이다. Player라고 이름을 짓는다. 더블 클릭하여 들어간다
  • 14.
    캐릭터 생성 #11 스크립트란? -사용자가 움직이거나 변형하고 싶은 물체(오브젝트)를 스크립트를 이용하여 마음대로 바꿀 수 있다. *스크립트를 작성할 때 꼭 대소문자를 구분해줘야 한다!!! 이와 같이 작성한다. F7을 누르면 빌드가 되고 오류가 없다면 왼쪽 밑에 성공했다는 글이 나온다.
  • 15.
    캐릭터 생성 #12 Hierarchy창에서 Player를 누른 상태에서 Player 스크립트를 드래그 하여 Inspector창에 넣는다. 실행을 하면 오른쪽 왼쪽 방향키에 따라 용이 좌우로 움직일 것이다. 이제 위 아래로도 움직여보자. MonoDevelop을 열어 아래와 같이 추가로 작성을 한다. F7을 눌러 빌드를 한 후 유니티에서 실행버튼을 눌러보자. 위아래로도 움직일 것이다
  • 16.
    배경 생성 #1 Game창에서 화면 사이즈를 1024x768로 선택한다. 게임의 해상도를 정하는 설정이다. GameObject – Create Other – Cube 클릭
  • 17.
    배경 생성 #2 큐브의정보를 위와 같이 입력한다. Background 그림을 Cube에 드래그 하여 넣는다. Particles – Alpha Blended Cube에서 Shader의 정보를 위와 같이 바꿔준다
  • 18.
    배경 생성 #3 Project창 - Script 폴더 – 마우스 우클릭 – Create – C# Script – 이름을 Background로 만든다. 더블클릭 하여 MonoDevelop를 켠다. 이와 같이 작성한다. F7을 눌러 빌드를 하여 성공을 하였는지 확인한다
  • 19.
    배경 생성 #4 Cube를선택한 상태에서 Background 스크립트를 드래그 하여 Cube의 Inspector 창에 넣는다. 재생을 하면 배경이 움직일 것이다.
  • 20.
    배경 생성 #5 Project창에 Scene이란 폴더를 만들자. File – Save Scene 혹은 Ctrl + S를 누른다. Assets 폴더가 나오는데, Scene 폴더가 있다. 더블클릭 하여 들어간 다음 Game이라고 저장해주자
  • 21.
    배경 생성 #6 그럼Project 창의 Scene 폴더 안에 Game이란 씬 파일이 생성되었다. 이처럼 각각의 씬을 만들고 저장할 수 있다. Cube의 이름을 Background로 바꿔준다
  • 22.
    총알 생성 #1 Player스크립트를 연다 변수를 추가한다. Update()안에 위와 같이 추가한다.
  • 23.
    총알 생성 #2 Hierarchy에서Player를 누르면 Inspector 창 안에 있는 Player 스크립트에 BULLET이 추가된 것을 볼 수 있다. Project 창의 Bullet을 드래그 하여 None이라 써있는 자리에 넣는다
  • 24.
    총알 생성 #3 BULLET이들어간 모습 실행을 하고 스페이스를 누르면 불을 쏘는 것을 볼 수 있다
  • 25.
    적 생성 #1 GameObject– Create Empty 클릭 SpawnEnemy로 이름을 바꾼다. Spawn : (알을)낳다 SpawnEnemy의 좌표를 (0, 8, -3)으로 해준다.
  • 26.
    적 생성 #2 Script에서C# Script를 만들어 SpawnEnemy를 만든다 위와 같이 변수를 적는다 Enemyspawn 설정값 Enemy 생성될 적 객체 rangeX 적이 생성될 x좌표 범위 enemyTime 적이 생성되는 시간 fElapsedTime 저장될 시간 (표시시간)
  • 27.
    적 생성 #3 Instantiate(Enemy,this.gameObject.transform.position + new Vector3(_randomX, 0, 0), Quaternion.identity); 이부분이 적을 생성하는 코드이다. F7을 눌러 빌드를 한다. 오류가 없다면 왼쪽 아래에 Build Success가 나올 것이다.
  • 28.
    적 생성#4 Hierarchy 창의SpawnEnemy를 선택 후 Project창의 SpawnEnemy를 Inspector창에 드래그를 한다. Inspector창에서 RangeX와 EnemyTime의 수치를 바꿀 수 있다. Project창의 Enemy를 드래그 하여 None으로 되어있는 자리에 넣는다. 실행을 하면 적이 미사일을 쏘면서 내려오는 것을 볼 수 있다.
  • 29.
    플레이어 충돌 #1 실행을하면 헬리콥터가 쏘는 미사일에는 용이 맞지 않는 것을 볼 수 있다. 먼저 물리 설정을 해준다. Player를 누른 상태에서 Component – Physics – Rigidbody 클릭 Player에 Rigidbody가 추가되었다. Use Gravity의 체크를 해제해준다. 이것은 중력을 사용하겠다는 설정인데, 필요 없으므로 과감하게 체크 해제!
  • 30.
    플레이어 충돌 #2 이제충돌체크 설정을 하자. Component – Physics – Box Collider를 눌러준다 Player에게 BoxCollider가 추가되었다. Is Trigger를 꼭 체크를 해주어야 한다. Is Trigger는 다른 물체와 부딪혔을 때 밀리지 않고 그냥 지나가게 만들어준다. 미사일과 부딪혔을 때 밀리면 안되기 때문.
  • 31.
    플레이어 충돌 #3 Scene창에서 Box collider의 충돌 범위를 볼 수 있다. Inspector창에서 Size를 조절하면 충돌박스의 크기를 조절할 수 있다. ( 0.5, 0.5, 1)로 설정
  • 32.
    플레이어 충돌 #4 Player의Inspector창에서 Tag 옆에 Untagged를 누르면 Player라고 있을 것이다. Player를 클릭. 실행하면 Player도 헬리콥터의 미사일에 맞아서 없어지는 것을 볼 수 있다.
  • 33.
    해상도 맞추기 #5 Hierarchy의Main Camera를 누른다. Projection을 Perspective에서 Orthographic으로 바꾼다. Size는 5로 바꾼다.
  • 34.
    해상도 맞추기 #6 YAxis FieldOfView Near Clipping Plane Far Clipping Plane Y Axis Size Near Clipping Plane Far Clipping Plane 원근(Perspective) 직교(Orthographic)
  • 35.
    사운드 입히기 #1 Sound폴더를 만든다. 예제 파일에있는 BGM을 드래그 하여 넣는다
  • 36.
    사운드 입히기 #2 MainCamera를 선택 후 BGM 사운드 파일을 드래그 하여 Inspector 탭에 넣는다
  • 37.
    사운드 입히기 #3 PlayOn Awake와 Loop를 체크한다. Play On Awake는 씬이 시작될 때 재생되고, Loop는 노래가 끝나면 처음부터 다시 재생되는 기능이다.
  • 38.
    빌드 하기 #1 File에서Build Setting을 선택한다.
  • 39.
    빌드 하기 #2 BuildAnd Run을 선택하고 빌드할 파일 이름을 입력하고 저장을 누르면 빌드가 된다 빌드가 완료되면 빌드명.exe 파일과 빌드명_Data 폴더가 생긴다. 빌드명.exe를 선택하면 게임을 구동할 수 있다.
  • 40.
    END! 다 음시 간 : 3 D 게 임 만 들 기 준 비 숙 제 : 오 늘 배 웠 던 내 용 1 회 복 습