1. 유닛 추가
유닛이 검사밖에 없어서 탱커와 아처를 추가해줬습니다.
현재 쓰고 있는 모델이 검사밖에 지원하지 않아서 scale을 조정하여 외관을 조금 바꿔줬습니다.
적군은 한마리로 설정하였고, 보스만 따로 만들어줬습니다.
누가봐도 탱커입니다.
활이 없어요..ㅠㅠ
탱커와 아처 모두 기존 검사와 같이 이동, 공격기능을 담당하는 스크립트를 인스펙터에 넣어주고,
체력바도 설정해줬습니다.
2. 체력바 기능
체력바는 예전에 받았던 UI팩에서 슬라이더UI로 설정해줬습니다.
체력바를 빨간색, 검은색 하나씩 만들어주고, 빨간색이 앞으로 오게 Z값을 변경해줬습니다.
현재 적용한 Sprite는 원본을 훼손하지 않기 위해 복사본으로 만들어줬습니다.
공격을 받아 체력이 닳으면 오른쪽에서 왼쪽으로 체력바가 줄어들게
센터를 왼쪽으로 설정해줬습니다.
그리고 유닛컨트롤러 스크립트에서 SpriteRender를 만들어서 해당 체력바를 가져올 수 있게 해줍니다.
그 다음 공격을 받을 때마다 현재 체력에 비례해서 체력바가 줄어들게 설정해줬습니다.
현재 체력바 스프라이트의 가로가 10, 세로가 2.5입니다.
유닛의 최대체력이 100이고,
현재 체력이 공격을 받아 50이 되면
0.5f * 10 = 5.
체력바의 가로가 10이기 때문에 5면 똑같이 절반 줄어들게 됩니다.
3. 공격 기능 일부 수정
적군이 아군 유닛을 전부 죽이고 아군타워를 공격할 때 유닛을 스폰하면 적군이 유닛과 타워 둘 다 동시에 공격하는 현상이 발생했습니다.
보통 타워를 때리다가 유닛이 나타나면 유닛을 먼저 때린다던가, 아니면 타워만 계속 때린다던가 해야할 것입니다.
현재 만들어놓은 유닛과 적군에는 스플래쉬 공격군이 없고 전부 단일딜러이기 때문에 하나씩 공격해야합니다.
이러한 부분을 수정해줬습니다.
<문제해결 방법>
1. (원인)이전에 아군이 적군을 공격하면 아군의 공격범위 리스트에 넣고 해당 리스트의 카운트가 0보다 크면 공격함수를 실행하라고 만들어줬습니다.
2. (원인)아군이 적군 타워 트리거와 접촉하게 되면 적군 타워의 Hp가 해당 아군유닛의 데미지에 비례해서 감소하도록 설정해줬습니다.
3. (해결)아군의 공격범위에 적군과 타워를 같이 넣을 수 있게 만들겁니다. 0번방부터 순서대로 공격하기 때문에 타워가 0번방이라면 그 다음에 적군이 공격범위에 들어와도 공격하지 않을 것입니다.
4. (문제점) 아군의 공격범위 리스트는 EnemyController를 가진 적군을 담아냅니다. 타워는 해당 스크립트가 없고 만약 따로 만들어준다고 해도 전과 똑같이 둘 다 공격하게 될 것입니다.
5. (해결) BaseStatus라는 스크립트를 새로 생성하여 여기서 hp와 체력바를 관리해 줄 것입니다.
이렇게 만들어주고 아군, 적군, 타워스크립트가 전부 이 스크립트를 상속받게 해줍니다.
그리고 아군과 적군의 공격범위 안에 들어갈 오브젝트는 이 BaseStatus를 가진 오브젝트입니다.
이렇게 하면 타워를 공격하다가 유닛, 적군이 스폰되어도 타워만 계속 공격하게 됩니다.
'Unity > Unity 타워디펜스게임 프로젝트' 카테고리의 다른 글
[Unity 게임프로젝트] 타워디펜스게임(7) - 캐릭터 애니메이션 적용, 배경음 적용. (0) | 2024.04.12 |
---|---|
[Unity Game Project] 타워디펜스 게임(5) - 유닛 공격과 이동기능 수정 (0) | 2024.03.24 |
[Unity 게임 프로젝트] 타워디펜스게임(4) - 유닛 복제, OnTrigger (0) | 2024.03.18 |
[Unity 게임 프로젝트] 타워디펜스게임(3) - 유닛 프리팹화, 이동구현 (0) | 2024.03.18 |
[Unity 게임 프로젝트] 타워디펜스 게임(2) - 스테이지 화면, 캐릭터 화면 UI 추가 및 유닛 추가 작업 (0) | 2024.03.08 |