이 자료는 지난 2013년 Unite Korea의 지국환씨의 Flappy bird 만들기 튜토리얼을 바탕으로 만든 2014년 창원시 스마트 모바일 앱 지원센터의 "게임 및 웹 앱 개발과정"에서 진행한 세미나 자료입니다.
유니티 버전 4.3에서 작성되었습니다.
이 자료의 튜토리얼을 바탕으로 하나하나 제작해가며 Flappy Bird를 만드는 기쁨을 누리시기 바랍니다.
관련 이미지와 소스는 아래 블로그에 있습니다.
http://ivis.cwnu.ac.kr/tc/dongupak/245
2. Flappy Bird 란?
• 베트남의 Dong Nguyen이 만든 iOS, 안드로이드용 모바
일 게임
• 중독성이 강하고 아주 단순한 점프액션게임의 한 종류
3. Flappy Bird 란?
• 관련 동영상
• http://www.youtube.com/watch?v=fQoJZuBwrkU
• http://www.youtube.com/watch?v=sf2nFL9Z3v0
• http://www.youtube.com/watch?
v=UZXWp83gtog
4. 순서
• 배경화면 만들기
• FlappyBrid 와 Cactus 만들기
• 충돌반응(GameManager)
• 소리효과
• GUI(점수)
• Intro,GameOver Scene
5. 리소스 받기
• 유니티 Project 만들기
• FlappyBird라는 이름의 프로젝트를 만들자
•
http://ivis.cwnu.ac.kr/tc/dongupak/245
• 홈페이지에 올려 놓은 Resource 파일을 받아 Project 창에
Import한다
• 리소스에는 게임 텍스쳐. 사운드, 애니메이션, iTween이라는
Tweening script가 있다.
8. 배경화면 만들기
리소스 파일의 Assets/Textures/ForLoop에서
bg_2파일을 bgBack에, Ground 파일을
bgGround에 각각 맵핑을 합니다
Position: 위치
Rotation:회전각
Scale:크기
Transparent/Diffuse:하얀색으로 덮힌부분을 처
리해줌
Tilling: 축의 방향으로 이미지의 갯수를 생성
Offset:축의 방향으로 위치를 잡아 해당 지점의 위
치부터 보여줌
9. 배경화면 만들기
리소스 파일의 Assets/Textures/ForLoop에서
bg_2파일을 BG_back에 Ground 파일을
BG_ground에
각각 맵핑을 합니다
14. 배경화면 만들기(ScrollMove)
Project 창에
Create-> C# Script 생성
*ScrollMove.cs
//targetOffset 은 시간에 따라
속력을 곱하므로 시간에 따라
Offset 값이 바뀜
ScrollMove.cs를
bgBack,bgGround
오브젝트에 연결시켜줌
27. Flappy Bird(Bird.cs)
//점프 파워
//새 이미지
// Awake 함수는 스크립트 객체의 라이프타임 동안
단 한번만 호출 게임이 시작 할 때 객체를 초기화 시키는
// 마우스를 클릭했을 경우 점프가 발동
기능
// 새가 점프했을 경우 새의 LookDirection을 변화시켜 Y축으로
회전시켜주는 기능
32. GameManager?
• 게임의 전반적인 동작을 로직하고 관리하는 게임구동의 핵
심적인 역할
• 게임의 준비, 종료, 시작을 모두 처리함.
• 게임이 준비상태인지, 게임중인지, 종료되었는지를 체크하
는 상태변수를 이용하여 각 상태에 따른 화면의 제어와 객체
의 제어를 수행한다
33. 충돌반응(GameManager.cs)
//장애물 오브젝트
ready 변수는 차후 게임이 종료되었는가를
구분하는 변수로 쓰이게 됩니다.
//InvokeRepeating : 메소드를 일정 시간마다
호출시켜주는 함수
ready 변수를 쓰는이유?? 메소드 호출의 중복을 막기위한
코드 또한 차후 게임 진행요소에 기여함
48. 충돌반응(게임시작,종료)
마우스 클릭이 발생하고 ready가 true일때
UseGravity가 활성화되어 게임이 시작된다
GameManger.cs
게임의 종료를 알려주는 변수
게임을 종료시키는
GameOver() 메서드에서는
MakcCactus 메서드의 Invoke를 중지시켜 더
이상 선인장이 화면에 나타나지 않게한다
49. 충돌반응(게임시작,종료)
Game
Play
Game
Ready
Game
End
ready = true
end = false
ready = false
end = false
ready = false
end = true
52. 충돌반응(게임시작,종료)
Bird.cs GameManager.cs
Cactus와 충돌되었을 때 GameManager의
GameOver() 메서드를 호출한다.
호출
Game
Play
Game
End
ready = false
end = false
ready = false
end = true