본문 바로가기

2D_FlappyBird

(08_25) 2D FlappyBird 만들기 마지막 (장애물, 점수, 빌드 구현)

목차


장애물 구현

 

두개가 한세트니까 빈게임오브젝트로 묶자

 

빈게임오브젝트로 Obstacle 로명명하고

transform -> Reset!

 

53,54 번을 넣자

각각 Up Down 이라고 작성하자!

Sorting Layer

바꿔야 보임!

 

 

빈게임 오브젝트는 안보이니까, 아이콘 붙여준 모습

 

각각에 Coliider 붙여주기

 

코드 생성한 모습

상태머신을 static 영역으로 올려준 모습

 

다시 Obstacle.cs

Playing 일 때만 실행 되게 하자!

근데 이게 문제가 되는게,

죽어서 게임이 끝나면, 씬을 다시 시작한다고 해도

상태가 Ready 로 시작을 하지 않는다.

동적으로 씬을 다시 시작해줘도, 이미 Static 영역으로 가 있기 때문이다.

 

그래서 Start 에서 다시 호출 해준다


일정시간에 따라서 랜덤한 위치로 오브젝트가 오게 해보자!

 

Update() 문에서

currentTime += Time.deltaTime; 해주고


 

근데, 이게 계속 실행되니까, 

계속 생성 되니까, DestroyZone 을 한번 만들어 보자!

 

2D 슈팅에서 다 했던거임

 

2D -> Square 생성

 

콜리젼으로 했지만,

Trigger 로 해도 됨!

 

그리고, collision.transform.parent.gameObject 로 해주지 않으면,

부모인 빈 게임오브젝트는 사라지지 않는다. 그러니까 저렇게 해주자


지나가면 점수 얻게 하는 기능

Square 하나 만들어주고, Collider 를 붙여준다

이렇게 해서 Exit 로 해주자

Obstacle 을 프리팹으로 저장한 후, 이렇게 콜라이더를 넣어준다

 

Text 생성!

복붙해서 2개 만들고,

옆에 Text 에 보면 저런식으로 HTML 처럼 써서 색을 바꿀 수도 있다

빈게임 오브젝트 ScoreManager 생성

 

ScoreManager.cs 생성 후 코드 작성 해보자

보통 외부에 안보여 줄 변수

언더바를 쓰고 하는건 보통 외부에 안보여줄려고 그러는 것이다.

 

Get Set Property!

 

Ui 관해서 쓸거니까

네임스페이스 붙여주고

 

Public 으로 두개 넣어줌

 

text 에도 나오게 코드를 넣어준다.

 

Start 에서 TopScore 가 바로 나오게 해준다.

Score 는 0으로 다시 시작하게 해주고

 

GetInt("FlappyBird", 0)

이건, SetInt 에서 "FlappyBird" 에 키를 저장한 값을 불러오는건데,

Default 로 0 을 쓰겠다는거임

 

 

이걸 싱글톤으로 만들자

 

Trigger2D 로

 Exit 하면, Score++ 되게 해준다!

 


(참고) 20년 개발의 신 테크트리


씬 바꿔도 파일 안날라가게 구현

씬을 하나 더 생성
넣어주고

ScoreManager 에 네임스페이스 넣자

 

이렇게 만듦

테스트만 해볼거임!

 

그리고 Start 부분부터 DontDestroyOnLoad 를 쓰면 계속 남아있게 할 수 있다

이 UI 들은 어떻게?

자식으로 넣어서 가져오면 됨!

 

안드로이드로 빌드하는 방법!

이거 되면 Switch Platform !

 

Platform 은 하나하나가 다 엔진임!

 

바로 빌드 누르지 말고 Player Settings 를 누른다!

Player
이거 바꾸자

여기서 중요하게 해야하는것

Portrait 는 세로

LandScape 는 가로

Portrait 만 하자! 세로로만!


Settings 목록에 관한 간단한 설명 및 빌드하기

여기에 유니티 막 언리얼 이런거 나옴

시작할 때 어떤엔진으로 만들었는지 그런거 나오게 하는 것들

 

오픈으로 되어있는 그래픽 잘 돌아가게 해주는것?

 

패키지 네임

 

안드로이드 최소 실행되게하는 버전 넣기

 

모노는 다들 할 수 있게 오픈으로 해놓는것

Mono -> IL (InterMediate Language)

중간 언어로써, 다른 OS 를 쓰기 직전에 그때그때에 맞게 설정해주는것.

장점 : 한번 만들어 넣으면 다른 OS 에 다 넣을 수 있음

단점 : 느림

 

CPP -> 만들기 전에 어떤 OS 에서 쓸건지 알아야함. 

장점: 빠름 

 

다 따로따로 만들어줘야함

그래서 1소스 멀티Use 가 안됨..

C 나 C++ 은 이렇게 되서 빠름
VM 과 .Net 이 깔리면

바로 앱을 실행 시키지 않고, 중간 언어계통으로 만들어놓음. 그게 IL 임 Intermeditate Language

그 다음 무슨 OS 를 쓰는지 보고 그때그때 바꿔줌...

이걸 JIT (Just In Time) 이라고 함

 

 

그래서 1번째 꺼보다 더 느림. 장단점이 있음

그래서 C 나 C++ 이 더 빠른거임 => 그래서 속도가 생명인 하드웨어에서 씀

 

그래서 IL -> CPP 으로 쓰겠냐는 말임 이건.
ARM 칩셋 밑에는 Intel 칩셋
Input.GetAxis 이런거 쓰는거 그 Input Manager 임

제페토는 new 로 쓴다고 함!


빌드하면 됨!

'2D_FlappyBird' 카테고리의 다른 글

(8_24) 2D FlappyBird 만들기 둘째 날 (FSM)  (0) 2022.08.24
(8_23) 2D FlappyBird 만들기 첫날  (0) 2022.08.24