SlideShare a Scribd company logo
1 of 26
Unity3D 초급스터디
4회차 `15. 10. 24.
스터디 일정 및 커리큘럼
• 9월 12일 : 유니티 소개 및 에디터 조작법
• 9월 19일 : Sprite, Animation, Physics 기초
• 10월 10일 : Unity UI, GameManager
• 10월 24일 : Animation Controller, Timer
• 10월 31일 : 슈팅 게임 개발
• 11월 7일 : 2D 게임 완성(마녀이야기)
지난 시간
• uGUI
• Sprite packer
• Generic
• 오브젝트, 리소스 참조
• 게임매니저
• 카드 뒤집기 게임 만들기 - 셔플 알고리즘
(실습1) 두더지 게임 준비
0
(실습1) 두더지 게임 준비
• UI (Canvas)

- Ready, Go 스프라이트

- Timebar(Filled), Timebar_bg(Sliced)

- scoreText

- constant pixel size : 640x960
• 월드맵

- 배경, 두더지 생성

- 두더지들

- Camera orthographicSize = 4.5

- Game Scene Aspect : 640x960
Sliced Image
• 42x42 이미지를 482x42로 늘리면?
• 해결책 : Sliced Image
Sliced Image
• Sliced Image가 안되면?

- Sprite Editor에서 Border 설정
두더지 게임을 만들어보자!
• 우선 간단한 스펙부터 정리

- 레디 버튼을 누르면 게임 시작

- 타이머 적용 ( 시간에 따라 타이머바가 줄어듬 )

- 두더지 터치하면 애니메이션 적용

- ppo(빨간두더지) : 누르면 -50점

- ppu(파란두더지) : 누르면 100점

- 각 두더지는 t초 마다 겹치지 않는 위치에 생성되어야함
• 각 기능별로 하나씩 구현하자
레디 버튼 -> 게임시작
• 게임을 관리할 GameManager 스크립트 생성
• public GameObject readyBtn;

public GameObject go;

int isStart = false;
• public void Ready(){

readyBtn.setActive(false);

go.setActive(true);



Invoke(“GameStart”, 1f);

}
Invoke
• Invoke(“methodName”, time)

“methodName” 메소드를 time초 이후에 실행
• InvokeRepeating(“methodName”, time, repeatingTime)

메소를 time초 이후에 실행. repeatingTime마다 반복
레디 버튼 -> 게임시작
• void GameStart(){

go.setActive(false);

isStart = true;

}
• void Update(){

if(!isStart) return;

Timer();

}
타이머
• public Image timebar;

float playTime = 30f;

float time = 30f;
• void Timer(){

time -= Time.deltaTime;

timebar.fillAmount = time / playTime;



if (time < 0f) {

isStart = false;

}

}
두더지 !!
• Mole 스크립트 생성
• 하나씩 차근차근!!
• 누르면 애니메이션 적용
• Idle -> Hit
• Idle -> hit
• Animation Clip추가
• Animator Controller에서 Trigger설정
두더지 애니메이션
두더지 애니메이션
• bool isHit = false;
• void OnMouseDown(){

if (isHit)

return;



isHit = true;

this.GetComponent<Animator> ().SetTrigger ("Hit");

//* 점수 등록

}
두더지 애니메이션
• GameManager : 점수관리
• int myScore = 0;

public Text scoreText;
• public void Score(int score){

this.myScore += score;

this.scoreText.text = this.myScore.ToString();

}
두더지 점수 (GameManager)
• public GameManager manager;

float hitScore = 0f; (Inspector View에서 지정가능)
• void Start () {

manager = GameObject.Find(“GameManager").

GetComponent<GameManager> ();

}
• 점수 등록

manager.Score(hitScore);
두더지 점수 (Mole)
• GameManager에서,
• public Vector3[] positions = new Vector3[16];

// 두더지가 들어갈 위치 미리 저장

public Mole[] moles = new Moles[6];

// 일단 빨강 3마리 파랑 3마리만 넣어두겠음
두더지 생성
• GameManager에서,
• void Start(){

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 4; j++) {

positions [i * 4 + j] =

new Vector3 (-2.1f + 1.35f * j, 1.43f - 1.35f * i);

}

}

}
두더지가 들어갈 위치
• Shuffle 함수 이용
• 셔플 전

{T, T, T, T, T, T, F, F, F ,F ,F ,F ,F ,F ,F ,F ,F}
• 셔플 후

{T, F, F, T, F, T, F, F, T, T, F, F, F, T, F, F, F}
• True위치에만 두더지 생성
16개 자리 중 랜덤 위치 생성
• void ShowMoles(){

bool[] tempBool = new bool[16];

for(int i=0; i<16; i++){

tempBool[i] = (i < 6) ? true : false;

}



//2page

}
16개 자리 중 랜덤 위치 생성
• void ShowMoles(){

//2page



//random shuffle

for (int i = 0; i < 15; i++) {

int randNum = Random.Range (i+1, 16);

bool temp = tempBool [i];

tempBool [i] = tempBool [randNum];

tempBool [randNum] = temp;

}



//3page

}
16개 자리 중 랜덤 위치 생성
• void ShowMoles(){

//3page



//random positioning

for (int i = 0, moleIndex = 0; i < 16; i++) {



if (tempBool [i] == true) {

moles [moleIndex].transform.position = positions[i];

moleIndex++;

}

}

}
16개 자리 중 랜덤 위치 생성
• void GameStart(){

//….



InvokeRepeating(“ShowMoles”, 1f, 3f);

}
16개 자리 중 랜덤 위치 생성
• 참고 서적 :
(과제) 두더지 게임 완성

More Related Content

What's hot

120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseer120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseerChan-hyun Park
 
유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료Je Lyoung Kim
 
Port polio게임 소개
Port polio게임 소개Port polio게임 소개
Port polio게임 소개Seo YoungHoon
 
유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-Kiyoung Moon
 
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템WooSung Jeon
 
Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효
Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효
Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효Sunhyo Jung
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들Jubok Kim
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011devCAT Studio, NEXON
 
Port polio게임소개
Port polio게임소개Port polio게임소개
Port polio게임소개Seo YoungHoon
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술MinGeun Park
 
A Study on 2D Skeletal structure for efficient 2D game development with Spine
A Study on 2D Skeletal structure for efficient 2D game development with SpineA Study on 2D Skeletal structure for efficient 2D game development with Spine
A Study on 2D Skeletal structure for efficient 2D game development with SpineHyunwoo Kim
 
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터][NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]SeungWon Lee
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & TrickMinGeun Park
 
Make a shooting game using unity
Make a shooting game using unityMake a shooting game using unity
Make a shooting game using unityHyunwoo Kim
 
Unity cookbook 12
Unity cookbook 12Unity cookbook 12
Unity cookbook 12Jihun Soh
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Brandon Chung
 
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Changwon National University
 

What's hot (20)

Unity 시작하기
Unity 시작하기Unity 시작하기
Unity 시작하기
 
120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseer120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseer
 
유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료
 
Port polio게임 소개
Port polio게임 소개Port polio게임 소개
Port polio게임 소개
 
유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-
 
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
 
Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효
Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효
Unite 17 Education Day (미대 지망생이었던 제가)유니티 게임 개발자가 되었습니다 - 정선효
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
 
Port polio게임소개
Port polio게임소개Port polio게임소개
Port polio게임소개
 
Unity소개
Unity소개Unity소개
Unity소개
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
A Study on 2D Skeletal structure for efficient 2D game development with Spine
A Study on 2D Skeletal structure for efficient 2D game development with SpineA Study on 2D Skeletal structure for efficient 2D game development with Spine
A Study on 2D Skeletal structure for efficient 2D game development with Spine
 
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터][NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Make a shooting game using unity
Make a shooting game using unityMake a shooting game using unity
Make a shooting game using unity
 
Unity cookbook 12
Unity cookbook 12Unity cookbook 12
Unity cookbook 12
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나
 
iOS7 Sprite Kit을 이용한 게임 개발
iOS7 Sprite Kit을 이용한 게임 개발iOS7 Sprite Kit을 이용한 게임 개발
iOS7 Sprite Kit을 이용한 게임 개발
 
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
 

Similar to 브릿지 Unity3D 기초 스터디 4회

[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발MinGeun Park
 
유니티 기초 - 유니티 설치부터 스크립팅까지 익히기
유니티 기초 - 유니티 설치부터 스크립팅까지 익히기유니티 기초 - 유니티 설치부터 스크립팅까지 익히기
유니티 기초 - 유니티 설치부터 스크립팅까지 익히기주형 고
 
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...ssuser4b1f48
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)MinGeun Park
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for UnrealKyu-sung Choi
 
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)Donggi Hahm
 
SVVR아카데미 4월과정 소개_0317
SVVR아카데미 4월과정 소개_0317SVVR아카데미 4월과정 소개_0317
SVVR아카데미 4월과정 소개_0317Unitylearningcenter
 
유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)Changwon National University
 
유니티 데이드림 (DayDream) 튜토리얼
유니티 데이드림 (DayDream) 튜토리얼유니티 데이드림 (DayDream) 튜토리얼
유니티 데이드림 (DayDream) 튜토리얼Jemin Lee
 
SVVR아카데미 3월 교육과정 소개
SVVR아카데미 3월 교육과정 소개SVVR아카데미 3월 교육과정 소개
SVVR아카데미 3월 교육과정 소개Unitylearningcenter
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능Changhwan Yi
 
XNA2.0 Network Programming
XNA2.0 Network ProgrammingXNA2.0 Network Programming
XNA2.0 Network ProgrammingSangJin Kang
 
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가Hwanhee Kim
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략태성 이
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
Unity cookbook 14
Unity cookbook 14Unity cookbook 14
Unity cookbook 14Jihun Soh
 
[RLKorea] Unity ML-agents 발표
[RLKorea] Unity ML-agents 발표[RLKorea] Unity ML-agents 발표
[RLKorea] Unity ML-agents 발표Kyushik Min
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임Junhee Han
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임Junhee Han
 
프로젝트를 어떻게 진행하지
프로젝트를 어떻게 진행하지프로젝트를 어떻게 진행하지
프로젝트를 어떻게 진행하지현욱 김
 

Similar to 브릿지 Unity3D 기초 스터디 4회 (20)

[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
 
유니티 기초 - 유니티 설치부터 스크립팅까지 익히기
유니티 기초 - 유니티 설치부터 스크립팅까지 익히기유니티 기초 - 유니티 설치부터 스크립팅까지 익히기
유니티 기초 - 유니티 설치부터 스크립팅까지 익히기
 
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
 
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
 
SVVR아카데미 4월과정 소개_0317
SVVR아카데미 4월과정 소개_0317SVVR아카데미 4월과정 소개_0317
SVVR아카데미 4월과정 소개_0317
 
유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)
 
유니티 데이드림 (DayDream) 튜토리얼
유니티 데이드림 (DayDream) 튜토리얼유니티 데이드림 (DayDream) 튜토리얼
유니티 데이드림 (DayDream) 튜토리얼
 
SVVR아카데미 3월 교육과정 소개
SVVR아카데미 3월 교육과정 소개SVVR아카데미 3월 교육과정 소개
SVVR아카데미 3월 교육과정 소개
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
 
XNA2.0 Network Programming
XNA2.0 Network ProgrammingXNA2.0 Network Programming
XNA2.0 Network Programming
 
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
Unity cookbook 14
Unity cookbook 14Unity cookbook 14
Unity cookbook 14
 
[RLKorea] Unity ML-agents 발표
[RLKorea] Unity ML-agents 발표[RLKorea] Unity ML-agents 발표
[RLKorea] Unity ML-agents 발표
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
 
프로젝트를 어떻게 진행하지
프로젝트를 어떻게 진행하지프로젝트를 어떻게 진행하지
프로젝트를 어떻게 진행하지
 

브릿지 Unity3D 기초 스터디 4회

  • 2. 스터디 일정 및 커리큘럼 • 9월 12일 : 유니티 소개 및 에디터 조작법 • 9월 19일 : Sprite, Animation, Physics 기초 • 10월 10일 : Unity UI, GameManager • 10월 24일 : Animation Controller, Timer • 10월 31일 : 슈팅 게임 개발 • 11월 7일 : 2D 게임 완성(마녀이야기)
  • 3. 지난 시간 • uGUI • Sprite packer • Generic • 오브젝트, 리소스 참조 • 게임매니저 • 카드 뒤집기 게임 만들기 - 셔플 알고리즘
  • 5. (실습1) 두더지 게임 준비 • UI (Canvas)
 - Ready, Go 스프라이트
 - Timebar(Filled), Timebar_bg(Sliced)
 - scoreText
 - constant pixel size : 640x960 • 월드맵
 - 배경, 두더지 생성
 - 두더지들
 - Camera orthographicSize = 4.5
 - Game Scene Aspect : 640x960
  • 6. Sliced Image • 42x42 이미지를 482x42로 늘리면? • 해결책 : Sliced Image
  • 7. Sliced Image • Sliced Image가 안되면?
 - Sprite Editor에서 Border 설정
  • 8. 두더지 게임을 만들어보자! • 우선 간단한 스펙부터 정리
 - 레디 버튼을 누르면 게임 시작
 - 타이머 적용 ( 시간에 따라 타이머바가 줄어듬 )
 - 두더지 터치하면 애니메이션 적용
 - ppo(빨간두더지) : 누르면 -50점
 - ppu(파란두더지) : 누르면 100점
 - 각 두더지는 t초 마다 겹치지 않는 위치에 생성되어야함 • 각 기능별로 하나씩 구현하자
  • 9. 레디 버튼 -> 게임시작 • 게임을 관리할 GameManager 스크립트 생성 • public GameObject readyBtn;
 public GameObject go;
 int isStart = false; • public void Ready(){
 readyBtn.setActive(false);
 go.setActive(true);
 
 Invoke(“GameStart”, 1f);
 }
  • 10. Invoke • Invoke(“methodName”, time)
 “methodName” 메소드를 time초 이후에 실행 • InvokeRepeating(“methodName”, time, repeatingTime)
 메소를 time초 이후에 실행. repeatingTime마다 반복
  • 11. 레디 버튼 -> 게임시작 • void GameStart(){
 go.setActive(false);
 isStart = true;
 } • void Update(){
 if(!isStart) return;
 Timer();
 }
  • 12. 타이머 • public Image timebar;
 float playTime = 30f;
 float time = 30f; • void Timer(){
 time -= Time.deltaTime;
 timebar.fillAmount = time / playTime;
 
 if (time < 0f) {
 isStart = false;
 }
 }
  • 13. 두더지 !! • Mole 스크립트 생성 • 하나씩 차근차근!! • 누르면 애니메이션 적용 • Idle -> Hit
  • 14. • Idle -> hit • Animation Clip추가 • Animator Controller에서 Trigger설정 두더지 애니메이션
  • 16. • bool isHit = false; • void OnMouseDown(){
 if (isHit)
 return;
 
 isHit = true;
 this.GetComponent<Animator> ().SetTrigger ("Hit");
 //* 점수 등록
 } 두더지 애니메이션
  • 17. • GameManager : 점수관리 • int myScore = 0;
 public Text scoreText; • public void Score(int score){
 this.myScore += score;
 this.scoreText.text = this.myScore.ToString();
 } 두더지 점수 (GameManager)
  • 18. • public GameManager manager;
 float hitScore = 0f; (Inspector View에서 지정가능) • void Start () {
 manager = GameObject.Find(“GameManager").
 GetComponent<GameManager> ();
 } • 점수 등록
 manager.Score(hitScore); 두더지 점수 (Mole)
  • 19. • GameManager에서, • public Vector3[] positions = new Vector3[16];
 // 두더지가 들어갈 위치 미리 저장
 public Mole[] moles = new Moles[6];
 // 일단 빨강 3마리 파랑 3마리만 넣어두겠음 두더지 생성
  • 20. • GameManager에서, • void Start(){
 for (int i = 0; i < 4; i++) {
 for (int j = 0; j < 4; j++) {
 positions [i * 4 + j] =
 new Vector3 (-2.1f + 1.35f * j, 1.43f - 1.35f * i);
 }
 }
 } 두더지가 들어갈 위치
  • 21. • Shuffle 함수 이용 • 셔플 전
 {T, T, T, T, T, T, F, F, F ,F ,F ,F ,F ,F ,F ,F ,F} • 셔플 후
 {T, F, F, T, F, T, F, F, T, T, F, F, F, T, F, F, F} • True위치에만 두더지 생성 16개 자리 중 랜덤 위치 생성
  • 22. • void ShowMoles(){
 bool[] tempBool = new bool[16];
 for(int i=0; i<16; i++){
 tempBool[i] = (i < 6) ? true : false;
 }
 
 //2page
 } 16개 자리 중 랜덤 위치 생성
  • 23. • void ShowMoles(){
 //2page
 
 //random shuffle
 for (int i = 0; i < 15; i++) {
 int randNum = Random.Range (i+1, 16);
 bool temp = tempBool [i];
 tempBool [i] = tempBool [randNum];
 tempBool [randNum] = temp;
 }
 
 //3page
 } 16개 자리 중 랜덤 위치 생성
  • 24. • void ShowMoles(){
 //3page
 
 //random positioning
 for (int i = 0, moleIndex = 0; i < 16; i++) {
 
 if (tempBool [i] == true) {
 moles [moleIndex].transform.position = positions[i];
 moleIndex++;
 }
 }
 } 16개 자리 중 랜덤 위치 생성
  • 25. • void GameStart(){
 //….
 
 InvokeRepeating(“ShowMoles”, 1f, 3f);
 } 16개 자리 중 랜덤 위치 생성
  • 26. • 참고 서적 : (과제) 두더지 게임 완성