몬스터의 생성과 감소를 몬스터 카운트의 UI에 표시되게 하기
근데 이거 구조를 잘못짠 거 같다.
-> 왜냐하면, 보통 게임을 하게되면 총 적의 갯수가 나오지. 적이 나올때마다 갯수가 증가하지 않는다
-> 아래의 수정된 최종 코드가 있다

몬스터가 일정한 간격으로 랜덤위치에 생성되는데, 생성될 때마다 카운트가 증가되게 할것이다.
MonsterCount 스크립트를 따로 생성하여, 카운트의 증가, 감소 함수를 정의해두고 필요할때마다 가져다가 쓸것이다
-> 몬스터가 생성될때마다 증가함수가 호출되고, 몬스터가 죽으면 감소함수가 호출되야한다
-> 몬스터의 생성은 MonsterSpawner 스크립트 쪽이기 때문에, 이 함수를 가져다가 쓴다
-> 몬스터가 죽으면 추상 부모 클래스인 MonsterStat스크립트에서 감소함수를 호출한다
monsterCount 변수의 접근지정자를 public으로 바꾸고 monsterSpawner 스크립트에서 사용

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MonsterCount : MonoBehaviour
{
public static MonsterCount Instance; // Singleton으로 관리
private int monsterCount = 0; // 활성화된 몬스터의 수
public Text monsterCountText; // UI Text로 몬스터 카운트 표시
GameResult GameResult;
private void Awake()
{
if (Instance == null)
{
Instance = this;
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
UpdateMonsterCountUI();
GameResult = gameObject.GetComponent<GameResult>();
}
public void IncreaseCount()
{
monsterCount++;
UpdateMonsterCountUI();
}
public void DecreaseCount()
{
monsterCount--;
UpdateMonsterCountUI();
if (monsterCount <= 0)
{
EndGame();
}
}
private void UpdateMonsterCountUI()
{
if (monsterCountText != null)
{
monsterCountText.text = $"남은 몹: {monsterCount}";
}
}
private void EndGame()
{
Debug.Log("게임 종료");
Time.timeScale = 0;
GameResult.Victory();
}
}
IncreaseCount() 사용
이 부분 수정해야한다
-> 몬스터의 카운트는 증가할 필요가 없다
-> 처음부터 총 몬스터의 갯수가 있고, 죽을때마다 카운트가 감소하기만 하면 된다
-> 몬스터의 카운트가 0이 되면 종료


DecreaseCount() 사용몬스터가 유닛에게 공격받아 파괴될 경우 호출된다
MonsterStat 스크립트에서 호출한다
성공적으로 첫 시작에서 몬스터가 하나도 생성되지 않았지만, 앞으로 생성될 몬스터의 갯수가 UI에 표시된다
