게임개발/Unity

24-08-22 [고양이 밥주기 게임 下 ]

몰록 2024. 8. 22. 17:05

 

 

 

6. 레벨 : 레벨 표기하기

 

이 작은 게임엔 레벨 시스템을 구현하기로 했다, 우측상단에 ui를 생성하고 exp바를 만들어줬다

 

레벨을 표기하는 숫자 위치가 겜 시작하면 자꾸 아래로 내려오는데, 무슨 문제인지 모르겠다.. 하지만 일단 넘어갔다

 

이제 점수를 얻으면 레벨이 조금씩 올라가는 시스템을 역시 GameManager 스크립트에 구현해주자

우선 레벨과 스코어를 선언해주고, 레벨바와 레벨 텍스트를 불러와준다.

이렇게 함수를 만들어주고 이 함수가 호출될때마다 점수가 올라가고, 그점수가 ui에 반영되도록 해주자. 

완성된 AddScore 함수

함수가 호출될때마다 스코어가 하나씩 추가되고(++)

레벨은 스코어 5개씩 하나가 되도록 해줬다.

변경되는 레벨은 String값으로 변환하여 텍스트에 반영시키고,

레벨바는 hp바에서 했던것처럼 스케일 조정으로 반영시킨다.(이 부분에서 산수가 들어가서 조금 햇갈리는데, 일단은 넘어갔다)

 

이제 이 함수를 호출해줘야 하는데, 그건 Cat 스크립트에서 해줄수 있다.(public 함수라서 다른 스크립트에서 불러올수 있음)

 

고양이가 배불러지면 일어나는 일들을 구현한 if문에 'GameManager.Instance.AddScore();' 를 적어서 배불러질때마다 이함수를 불러오도록 했다.

 

하지만 이대로면 배불러서 퇴장하는 와중에도 밥을 받아먹고 스코어가 계속 올라가게될수도 있기때문에, 방어 스크립트를 적어줘야 한다고 하는데, 그 방법은 bool 값 체크를 한번 하게 하는것.

 

 

배가 부른지 아닌지 체크하는 bool 변수를 선언하고

 

if문 조건에 'isFull이 false인 경우'를 추가시키고,

함수가 선언되는 동시에 isFull 을 true값으로 변환시켜서 단 한번만 호출이 일어나도록 해주는 것이다.

 

잘 작동한다.

 

 

7. 레벨 : 레벨 반영하기 

 

이번엔 레벨에 따라 게임 시스템이 변화하는 시스템을 구현한다

 

GameManager Script

고양이 생성 기능에 레벨에 따라변화하는 시스템을 if문으로 만들어줬다. 3레벨 이상부턴 직접 만들었다

 

이제 3레벨 이상부터 나올 뚱뚱한 고양이를 설정해줄 시간이다.

뚱뚱한고양이는 일반 고양이보다 더 느리고 더 많이 먹게 할것이다.

 

Cat Script

 우선 스피드값을 설정하는 함수를 만들어서 기존에 스피드 값을 대체해준다

그리고 뚱냥이와 일반 고양이는 type 함수를 만들어서 구분할것이다.

 

정수로 타입을 선언

 

public으로 선언해서 unity에서 값을 설정 가능하다. 일반 고양이는 type 1

그리고 뚱냥이는 type 2이다

그리고 start문에 타입별 속성을 바꿔준다.

 

강의에선 이렇게 하고 테스트한뒤강의가 끝났는데, 사실 강의에서 짚고 넘어가지 않은 오류들이 좀 있다..

 

1. 뚱냥이가 밥에 반응을 안함.

 

 

뚱냥이 프리팹에 콜라이더가 설정되지 않았었다. 수정완료

 

2. 뚱냥이가 배가 차기전부터 배가 찬것처럼 반응했다.

그 이유는 배가 찼을대의 반응이 에너지가 5일때 반응되기로 했기 때문이다.

 

나는 그 문제를 이렇게 if문으로 타입별로 다른값에 설정되도록 수정해서 고쳤다.

고치고 보니 그냥 energy == full 로 했어도 됬을거는 같다.

 

크아아아아아아아아아악

완성!

 

8. 숙제 : 해적 고양이 만들기

 

이번 숙제는 또다른 고양이 타입인 해적 고양이를 만드는 것. 해적 고양이는 뚱냥이와는 달리 더 빠르게 움직이는 고양이다.

이전에 해온것처럼 프리팹을 미리 만들어주고

타입 3으로 설정

 

Cat 스크립트

타입 3에따라 다른 값을 주고

 

Cat 스크립트

if문에 3에도 반응하도록 수정

 

GameManage 스크립트

그리고 생성시키는 조건까지 만들어주면 끝!

 

 

 

 

이제 이 게임을 직접 자율적으로 더 흥미롭게 만들기 위해 추가해볼 기능을 고민해봤다.

 

1. 레벨이 올라갈수록 밥을 쏘는 능력이 증가

2. 특정 레벨마다 능력을 업그레이드 하는 선택지

3. 폭탄(츄르)를 소모해서 화면안에 있는 모든 고양이를 지우는 기능