public RectTransform front;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Food"))
{
if (energy < full)
{
energy += 1.0f; // 먹이 먹을시 증가
front.localScale = new Vector3(energy / full, 1.0f, 1.0f); // 게이지 채워지는 부분
Destroy(collision.gameObject); // 먹은 먹이 오브젝트 제거
if (energy == 5.0f)
{
if (!isFull)
{
isFull = true;
hungryCat.SetActive(false); // 배고픈 고양이 사라짐
fullCat.SetActive(true); // 배부른 고양이 생김
Destroy(gameObject, 3.0f); // 3초후 삭제
GameManager.Instance.AddScore();
}
}
}
}
}
void MakeCat()
{
Instantiate(normalCat); // 기본 고양이는 항상 등장
if (level == 1)
{
int p = Random.Range(0, 10);
if (p < 2) Instantiate(normalCat);
}
else if (level == 2)
{
int p = Random.Range(0, 10);
if (p < 5) Instantiate(normalCat);
}
else if (level == 3)
{
Instantiate(fatCat); // 뚱뚱한 고양이 등장
}
else if (level >= 4)
{
int p = Random.Range(0, 10);
if (p < 5) Instantiate(normalCat);
Instantiate(pirateCat); // 해적 고양이 등장
}
}
Make Cat() 함수를 이용해서 레벨이 오를수록 새로운 고양이 종류가 등장한다
public void AddScore()
{
score++; // 점수 1증가
level = score / 5;
levelTxt.text = level.ToString(); // 현재 레벨 표시
levelFront.localScale = new Vector3((score - level * 5) / 5.0f, 1f, 1f);
// 레벨 내에서의 게이지 채우기
}
이전 강의에서 배운 내용들이 점점 익숙해지고, 레벨업 시스템까지 구현해보니 게임의 완성도가 조금은 올라간 걸 느꼇다.
덕분에 게임 개발에 흥미가 더 붙었고, 다음 강의가 더 기대된다.