MonsterCount스크립트의 함수를 호출하고있다)UnitStat 스크립트Die() 함수에 MonsterCount 스크립트의 함수가 호출되었다 -> 그냥 실수함
유닛이 죽으면 카운팅을 감소시키는 DelCounting()함수를 각각의 UnitStat 스크립트에 호출해야한다
각 유닛의 스탯 스크립트에 Die()함수가 있기 때문
Die()함수가 호출되면 유닛의 카운트도 감소되야함
각각의 UnitStat스크립트들은 추상클래스의 자식들이다
-> Die()함수 자체는 추상클래스의 부모에 정의되어있고, 자식들의 Die()함수도 부모와 동일하기 때문에, 부모의 Die()를 호출하는 방식으로 작성했다
-> 근데 부모의 UnitCount컴포넌트를 사용하기 위해서는 스크립트를 참조해야하는데,
추상클래스여서 게임 오브젝트에 할당할 수 없다
추상클래스로 만든 게 너무 까다로운 작업이 되버린 거 같았다. 오브젝트 참조가 안되는 경우가 많아서 계속
Null Reference Exception오류가 떠버렸다
부모 추상클래스에 스크립트를 가져와서 사용할 수 없다.
그럼 UnitCount를 부모가 아닌 자식에게만 스크립트를 가져오자!
-> Die()함수는 자식에게서 재정의 할 수 있다! -> override
에디터에서 직접 할당해도 되지만, 나는 스크립트 내에서 작성하여 안의 멤버 함수를 사용할 것이다
FindObjectOfType<T>() : 씬에서 해당 스크립트가 포함된 게임 오브젝트를 찾아서 가져오는 함수

메인 캐릭터 조건
- 메인 캐릭터는 공격할 수 없다 (나중에 스킬 추가 예정. 현재로써는 석상)
- 메인 캐릭터가 죽으면 애니메이션 실행 후 Lose 팝업창 활성화
캐릭터의 콜라이더 설정
-> 몬스터는 NotMonsterTile에 닿으면 이동을 멈춘다
-> 메인 캐릭터를 공격한다
MonsterAttackGizmo는 태그가 유닛인 애들만 공격하니까 태그를 유닛으로 지정

UnitStat 추상클래스를 상속받은 자식 클래스로 MainUnit 스크립트 생성
MonsterAttackGizmo 스크립트들에게 메인 캐릭터에게 데미지 함수 적용

유닛들과 동일하게 메인 유닛도 죽으면 애니메이션 호출한다
메인 유닛의 애니메이션 지정 Die trigger만 설정한다

다른 유닛들과 코드가 조금 다르다
메인 캐릭터가 죽으면 Die() 함수가 호출된다.
죽음 애니메이션을 실행한 후, 게임오브젝트는 파괴되지 않는다.
2~3초 후에 스테이지 종료창이 뜬다.
다른 유닛들은 부모의 Die()함수를 그대로 가져와서 사용했지만(base.Die()), 메인 캐릭터는 따로 재정의를 해줘야함
-> 부모의 Die()에는 게임 오브젝트 파괴도 들어있기 때문
MainUnit스크립트에서 죽음 애니메이션 실행 함수만 재정의하였다 -> 애니메이션만 나오게함
-> 게임 오브젝트가 파괴되지 않는다
원래 애니메이션만 적용할 스크립트를 만드려고 했는데, 이미 추상클래스의 부모에서 애니메이터를 다 가져오게 되있더라,,, 나중에 애니메이션만 분리해보자
Die()함수
유닛1과 유닛2에 처리한 것과 동일하게 애니메이션 적용

몬스터의 공격 애니메이션 확인용 스크립트는 따로 생성한다

몬스터가 죽는 애니메이션과 조건은 MonsterStat 스크립트에서 정의
scale 1.3 -> 1.0
기존에 level1 5개, level2 4개, 보스몬스터 1개 였는데
level1 5개, level2 3, level3 3, level4 3마리로 수정

Monster4Anime 스크립트를 할당안해줬었음
UnitSlot 스크립트에서 버튼 활성화가 잘못댐TileManager에 UnitCount스크립트를 할당하고
UnitCount스크립트에 TileManager 스크립트를 할당하는 경우가 발생,,
서로서로 참조된 상황
-> 해결되었는데, 유닛을 타일에 배치하면 HP바가 이상한 점이 생긴다
-> 뭐지?? 인스펙터창에서는 currentHealth에 문제는 없음

UnitOver() 함수 : 현재 유닛의 카운트가 전체 카운트 수와 같다면 더이상 생성 불가
-> 유닛 구매창 버튼 상호작용을 비활성화

Update()에서 호출

-> 아무래도 Update문에서 많은걸 작성하면 비효율적이고 메모리적으로 안좋을 거 같아
-> 이것도 나중에 수정해야해
기존에 코스트는 유닛 목록창에서 구매가 되자마자 바로 코스트가 차감되었다.
-> 바꿔서 타일에 배치되면 코스트가 차감되게 하자
(이렇게 해야지 구매 누른 상태로 바로 유닛을 버리게 되면 코스트가 차감되지 않는다)
기존에는 구매버튼을 누르면 (타일매니저) -> 유닛 슬롯창에 그 함수를 호출하고 코스트를 차감했다
구매버튼은 구매버튼대로 호출하고 , 따로 함수를 만들어보자

타일매니저에 함수를 호출하는 방식으로 함

차감되는 코스트 수가 이상함 -> 누적되어 차감되는듯

Cost 스크립트에서 코스트를 감소하는 함수 구현했다
매개변수로 구매하는 유닛의 코스트의 값이 들어올 거임

타일 매니저에 유닛을 배치하면 함수 호출 & 매개변수 넣기

각각의 유닛 코스트들을 스크립트를 따로 만들어서 할당해줬다
-> 각 유닛들의 코스트 정보가 UnitStat의 자식에 정의되어 있는데, 추상클래스이기 때문에 Cost가 직접 참조할 수 없음
유닛 게임 오브젝트에 이 스크립트 넣어주기


이제 유닛을 구매하자마자 코스트가 감소하지 않고, 유닛을 타일에 배치해야만 코스트가 감소한다
타일에 배치할때마다 코스트가 감소된다
최초로 타일에 배치할때만 코스트가 감소되야하고, 타일 내에서의 이동은 코스트 변동x
타일에 최초로 배치되었는지를 확인하는 bool 변수 추가

타일 매니저 쪽에 코드 추가
-> 배치되었으면 무조건 생성된 게임오브젝트의 isPlaced는 true
-> 타일 내에서 이동하면 코스트가 차감되지 않는다
